<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://emagtech.com/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://emagtech.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dfeng</id>
		<title>Emagtech Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://emagtech.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dfeng"/>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=Special:Contributions/Dfeng"/>
		<updated>2026-08-29T02:28:00Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.23.17</generator>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-21T18:25:23Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Time Domain Simulation Of Periodic Structures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png|thumb|300px|The Yee cell geometry and definition of the electric and magnetic field components]]&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and &amp;amp;Phi; is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png|thumb|350px|Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]]]]&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Using &amp;quot;\mathbf&amp;quot; below because it tricks the wiki to rendering with PNG instead of html--&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = f_0 \mathbf{\sin} \theta_0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD102.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Anisotropic Materials ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png|thumb|250px|[[FDTD Module]]'s Anisotropic Material dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
=== FDTD Mesh Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png|thumb|400px|[[FDTD Module]]'s Mesh Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
=== The FDTD Simulation Engine Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png|thumb|300px|[[FDTD Module]]'s Engine Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\exp[-(\pi f_{\delta} \tau)^2] = \exp[-(\pi \Delta f \tau)^2] = \delta &lt;br /&gt;
\quad \Rightarrow \quad &lt;br /&gt;
\tau = \frac{\sqrt{-\ln\delta}}{\pi f_{max}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD64(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\exp[ -[\pi(f_{\delta} - f_0)\tau] ^2 ] = \exp \left[ -\left(\pi \frac{\Delta f}{2} \tau\right)^2 \right] = \delta&lt;br /&gt;
\quad \Rightarrow \quad&lt;br /&gt;
\tau = \frac{2\sqrt{-\ln \delta}}{\pi \Delta f}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD65.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\tilde{F}(f) = \int_{-\infty}^{\infty} f(t) e^{-j2\pi f t} \, dt &lt;br /&gt;
\quad \approx \quad&lt;br /&gt;
\Delta t \sum_{n=0}^N f(n\Delta t) e^{-j2 \pi n f \Delta t}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD68.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{inc}}(r,t) = (E_{\theta}^{inc} \hat{\theta} + E_{\phi}^{inc} \hat{\phi}) &lt;br /&gt;
f \left[ (t-t_0) - \frac{\mathbf{\hat{k} \cdot r} - l_0}{c}  \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD69.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp;(N.F.)_{Sinusoidal}  = \frac{2}{T} = \frac{2}{N \Delta t} \\&lt;br /&gt;
&amp;amp;(N.F.)_{Gaussian}  = \frac{ e^{(\pi f_0 \tau)^2} }{ \sqrt{\pi} \tau } = \frac{1}{\sqrt{\pi} \tau \delta^{1/4}} \\&lt;br /&gt;
&amp;amp;(N.F.)_{Modulated}  = \frac{2}{\sqrt{\pi} \tau}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD70.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out36_tn.png]] [[Image:fdtd_out37_tn.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out38_tn.png]] [[Image:fdtd_out39_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant &amp;amp;phi;-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle &amp;amp;phi; as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-21T18:24:35Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Differential Form of Maxwell's Equations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png|thumb|300px|The Yee cell geometry and definition of the electric and magnetic field components]]&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and &amp;amp;Phi; is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Using &amp;quot;\mathbf&amp;quot; below because it tricks the wiki to rendering with PNG instead of html--&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = f_0 \mathbf{\sin} \theta_0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD102.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Anisotropic Materials ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png|thumb|250px|[[FDTD Module]]'s Anisotropic Material dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
=== FDTD Mesh Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png|thumb|400px|[[FDTD Module]]'s Mesh Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
=== The FDTD Simulation Engine Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png|thumb|300px|[[FDTD Module]]'s Engine Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\exp[-(\pi f_{\delta} \tau)^2] = \exp[-(\pi \Delta f \tau)^2] = \delta &lt;br /&gt;
\quad \Rightarrow \quad &lt;br /&gt;
\tau = \frac{\sqrt{-\ln\delta}}{\pi f_{max}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD64(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\exp[ -[\pi(f_{\delta} - f_0)\tau] ^2 ] = \exp \left[ -\left(\pi \frac{\Delta f}{2} \tau\right)^2 \right] = \delta&lt;br /&gt;
\quad \Rightarrow \quad&lt;br /&gt;
\tau = \frac{2\sqrt{-\ln \delta}}{\pi \Delta f}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD65.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\tilde{F}(f) = \int_{-\infty}^{\infty} f(t) e^{-j2\pi f t} \, dt &lt;br /&gt;
\quad \approx \quad&lt;br /&gt;
\Delta t \sum_{n=0}^N f(n\Delta t) e^{-j2 \pi n f \Delta t}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD68.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{inc}}(r,t) = (E_{\theta}^{inc} \hat{\theta} + E_{\phi}^{inc} \hat{\phi}) &lt;br /&gt;
f \left[ (t-t_0) - \frac{\mathbf{\hat{k} \cdot r} - l_0}{c}  \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD69.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp;(N.F.)_{Sinusoidal}  = \frac{2}{T} = \frac{2}{N \Delta t} \\&lt;br /&gt;
&amp;amp;(N.F.)_{Gaussian}  = \frac{ e^{(\pi f_0 \tau)^2} }{ \sqrt{\pi} \tau } = \frac{1}{\sqrt{\pi} \tau \delta^{1/4}} \\&lt;br /&gt;
&amp;amp;(N.F.)_{Modulated}  = \frac{2}{\sqrt{\pi} \tau}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD70.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out36_tn.png]] [[Image:fdtd_out37_tn.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out38_tn.png]] [[Image:fdtd_out39_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant &amp;amp;phi;-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle &amp;amp;phi; as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=Main_Page"/>
				<updated>2013-06-17T15:20:45Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to the EM.Cube Wiki!'''&lt;br /&gt;
&lt;br /&gt;
[[File:splash-emcube.jpg|thumb|link=http://www.emagtech.com/|500px]]&lt;br /&gt;
== What's Here? ==&lt;br /&gt;
Here are some links to help you get started:&lt;br /&gt;
* [[Getting_Started_with_EM.CUBE|EM.CUBE: Getting Started]]&lt;br /&gt;
* [[CubeCAD|CubeCAD: 3D CAD Modeling]]&lt;br /&gt;
* [[EM.Tempo|EM.Tempo: FDTD Module]]&lt;br /&gt;
* [[EM.Picasso|EM.Picasso: Planar Module]]&lt;br /&gt;
* [[EM.Libera|EM.Libera: MoM3D Module]]&lt;br /&gt;
* [[EM.Illumina|EM.Illumina: Physical Optics Module]]&lt;br /&gt;
* [[EM.Terrano|EM.Terrano: Propagation Module]]&lt;br /&gt;
* [[Hybrid Modeling using Multiple Simulation Engines|Hybrid Modeling]]&lt;br /&gt;
* [[Data Visualization and Processing]]&lt;br /&gt;
* [[Parametric Modeling, Sweep &amp;amp; Optimization]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  title=Most Popular Articles&lt;br /&gt;
  type=hot&lt;br /&gt;
  count=8&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  title=Newest Articles&lt;br /&gt;
  type=new&lt;br /&gt;
  count=8&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-14T20:52:59Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Time Domain Simulation Of Periodic Structures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and &amp;amp;Phi; is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Using &amp;quot;\mathbf&amp;quot; below because it tricks the wiki to rendering with PNG instead of html--&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = f_0 \mathbf{\sin} \theta_0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD102.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Anisotropic Materials ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png|thumb|250px|[[FDTD Module]]'s Anisotropic Material dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
=== FDTD Mesh Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png|thumb|400px|[[FDTD Module]]'s Mesh Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
=== The FDTD Simulation Engine Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png|thumb|300px|[[FDTD Module]]'s Engine Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\exp[-(\pi f_{\delta} \tau)^2] = \exp[-(\pi \Delta f \tau)^2] = \delta &lt;br /&gt;
\quad \Rightarrow \quad &lt;br /&gt;
\tau = \frac{\sqrt{-\ln\delta}}{\pi f_{max}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD64(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\exp[ -[\pi(f_{\delta} - f_0)\tau] ^2 ] = \exp \left[ -\left(\pi \frac{\Delta f}{2} \tau\right)^2 \right] = \delta&lt;br /&gt;
\quad \Rightarrow \quad&lt;br /&gt;
\tau = \frac{2\sqrt{-\ln \delta}}{\pi \Delta f}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD65.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\tilde{F}(f) = \int_{-\infty}^{\infty} f(t) e^{-j2\pi f t} \, dt &lt;br /&gt;
\quad \approx \quad&lt;br /&gt;
\Delta t \sum_{n=0}^N f(n\Delta t) e^{-j2 \pi n f \Delta t}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD68.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{inc}}(r,t) = (E_{\theta}^{inc} \hat{\theta} + E_{\phi}^{inc} \hat{\phi}) &lt;br /&gt;
f \left[ (t-t_0) - \frac{\mathbf{\hat{k} \cdot r} - l_0}{c}  \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD69.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp;(N.F.)_{Sinusoidal}  = \frac{2}{T} = \frac{2}{N \Delta t} \\&lt;br /&gt;
&amp;amp;(N.F.)_{Gaussian}  = \frac{ e^{(\pi f_0 \tau)^2} }{ \sqrt{\pi} \tau } = \frac{1}{\sqrt{\pi} \tau \delta^{1/4}} \\&lt;br /&gt;
&amp;amp;(N.F.)_{Modulated}  = \frac{2}{\sqrt{\pi} \tau}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD70.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out36_tn.png]] [[Image:fdtd_out37_tn.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out38_tn.png]] [[Image:fdtd_out39_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant &amp;amp;phi;-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle &amp;amp;phi; as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Terrano</id>
		<title>EM.Terrano</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Terrano"/>
				<updated>2013-06-14T20:41:59Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Wedge Diffraction From Edges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Taking out this picture for now for consistency&lt;br /&gt;
[[File:urban.png]]--&amp;gt;&lt;br /&gt;
EM.Terrano is a physics-based, site-specific, wave propagation modeling tool that enables engineers to quickly determine how radio waves propagate in urban, natural or mixed environments. The rapid growth of wireless communications along with the high costs associated with the design and deployment of effective wireless infrastructures underline a persistent need for computer aided communication network planning tools. Wireless engineers have long used simplistic statistical prediction models based on measurements that often exhibit considerable errors especially in areas having mixed building sizes.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Terrano has helped wireless engineers around the globe model the physical channel and the mechanisms by which radio signals propagate from transmitters to receivers. EM.Terrano’s advanced ray tracing simulator finds the dominant propagation paths specific to the site in question. It calculates the true signal characteristics at the actual locations using physical databases of the buildings and terrain at a given site, not those of a statistically average or representative environment. EM.Terrano’s ray tracer is based on the shoot-and-bounce-rays (SBR) method, which utilizes geometrical optics (GO) in combination with uniform theory of diffraction (UTD) models of building edges.&lt;br /&gt;
&lt;br /&gt;
The new EM.Terrano 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has created the opportunity to inject a host of new powerful features such as a highly customizable terrain generator, DEM terrain import, complex building constructions, and versatile interior wall arrangements for indoor propagation modeling. As a result of this seamless interface with EM.Cube's other modules, you can now model complex antenna systems in [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]], and generate antenna radiation patterns than can be used to model directional transmitters and receivers at the two ends of your propagation channel. Conversely, you can analyze a propagation scene in EM.Terrano and import the rays received at a certain receiver location as coherent plane wave sources to [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]]. You can also model periodic wall or ground structures using the periodic simulation capability of [[EM.Picasso]] or [[EM.Tempo]] and generate macromodels for their reflection and transmission coefficients as functions of the ray incidence angles. You can then define buildings or terrains in your propagation scene that are governed by such macromodels.&lt;br /&gt;
&lt;br /&gt;
== A Wireless Propagation Primer ==&lt;br /&gt;
Every wireless communication system involves a transmitter that transmits some sort of signal (voice, video, data, etc.), a receiver that receives and detects the transmitted signal, and a channel in which the signal is transmitted into the air and travels from the location of the transmitter to the location of the receiver. The channel is the physical medium in which the electromagnetic waves propagate. The successful design of a communication system depends on an accurate link budget analysis that determines whether the receiver receives adequate signal power to detect it against the background noise. The simplest channel is the free space. Real communication channels, however, are more complicated and involve a large number of wave scatterers. For example, in an urban environment, the obstructing buildings, vehicles and vegetation reflect, diffract or attenuate the propagating radio waves. As a result, the receiver receives a distorted signal that contains several components with different power levels and different time delays arriving from different angles.&lt;br /&gt;
&lt;br /&gt;
The different rays arriving at a receiver location create constructive and destructive interference patterns. This is known as the multipath effect. This together with the shadowing effects caused by building obstructions lead to channel fading. In many wireless applications, the total received power by the receiver is all that matters. In some others, the angle of arrival of the rays as well as their polarization are of immense interest. A fully polarimetric, coherent ray tracer like EM.Cube's Shooting-and-Bouncing-Rays (SBR) solver lets you compute and resolve all the rays received by a receiver including their power levels, time delays and angles of arrival.&lt;br /&gt;
&lt;br /&gt;
=== Free Space Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
In a free-space line-of-sight (LOS) communication system, the signal propagates directly from the transmitter to the receiver without encountering any obstacles (scatterers). Electromagnetic waves propagate in the form of spherical waves with a functional dependence of e&amp;lt;sup&amp;gt;j(&amp;amp;omega;&amp;lt;/sup&amp;gt;&amp;lt;sup&amp;gt;t-k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;R)&amp;lt;/sup&amp;gt;/R, where R is the distance between the transmitter and receiver, &amp;lt;math&amp;gt;\omega = 2\pi f&amp;lt;/math&amp;gt;, f is the signal frequency, &amp;lt;math&amp;gt;k_0 = \tfrac{\omega}{c} = \tfrac{2\pi}{\lambda}&amp;lt;/math&amp;gt;, c is the speed of light, and &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength at the operational frequency. By the time the signal arrives at the location of the receiver, it undergoes two changes. It is attenuated and its power drops by a factor of 1/R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, and additionally, it experiences a phase shift of &amp;lt;math&amp;gt;\tfrac{2\pi R}{\lambda_0}&amp;lt;/math&amp;gt;, which is equivalent to a time delay of R/c. The signal attenuation from the transmitter to the receiver is usually quantified by '''Path Loss''' defined as the ratio of the received signal power (P&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;) to the transmitted signal power (P&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;). Assuming isotropic transmitting and receiving radiators (i.e. radiating uniformly in all directions), the Path Loss in a free-space line-of-sight communication system is given by Friis’ formula:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = \left( \frac{\lambda_0}{4\pi R} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above formula assumes that the receiving antenna is polarization-matched. Normally, there is a polarization mismatch between the transmitting and receiving antennas. In the case of directional transmitting and receiving antennas, Friis’ formula takes the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = G_T G_R \left( \frac{\lambda_0}{4\pi R} \right)^2 ( \mathbf{ \hat{u}_T \cdot \hat{u}_R } )&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''u&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;''' and '''u&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''' are the unit polarization vectors of the transmitting and receiving antennas, and G&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt; and G&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; are their gains, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:los.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Line-of-Sight (LOS) Propagation Scenario.&lt;br /&gt;
&lt;br /&gt;
=== Multipath Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
Free-space line-of-sight communications is an ideal scenario that is typically used to model aerial or space applications. In ground-based systems, the presence of the ground as a very large reflecting surface affects the signal propagation to a large extent. Along the path from a transmitter to a receiver, the signal may also encounter many obstacles and scatterers such as buildings, vegetation, etc. In an urban canyon environment with many buildings of different heights and other scatterers, a line of sight between the transmitter and receiver can hardly be established. In such cases, the propagating signals bounce back and forth among the building surfaces. It is these reflected or diffracted signals that are often received and detected by the receiver. Such environments are referred to as “multipath”. The group of rays arriving at a specific receiver location experience different attenuations and different time delays. This gives rise to constructive and destructive interference patterns that cause fast fading. As a receiver moves locally, the receiver power level fluctuates sizably due to these fading effects.&lt;br /&gt;
&lt;br /&gt;
The use of statistical models for prediction of fading effects is widely popular among communication system designers. These models are either based on measurement data or derived from simplistic analytical frameworks. The statistical models often exhibit considerable errors especially in areas having mixed building sizes. In such cases, one needs to perform a physics-based, site-specific analysis of the propagation environment to accurately identify and establish all the possible signal paths from the transmitter to the receiver. This involves an electromagnetic analysis of the scene with all of its geometrical and physical details.  &lt;br /&gt;
&lt;br /&gt;
Link budget analysis for a multipath channel is a challenging task due to the large size of the computational domains involved. Typical propagation scenes usually involve length scales on the order of thousands of wavelengths. To calculate the path loss between the transmitter and receiver, one must solve Maxwell's equations in an extremely large space. Full-wave numerical techniques like the Finite Difference Time Domain (FDTD) method, which require a fine discretization of the computational domain, are therefore impractical for solving large-scale propagation problems. The practical solution is to use asymptotic techniques such as SBR, which utilize analytical techniques over large distances rather than a brute force discretization of the entire computational domain. Such asymptotic techniques, of course, have to compromise modeling accuracy for practical computation feasibility.&lt;br /&gt;
&lt;br /&gt;
[[File:multi1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A multipath propagation scene showing all the rays arriving at a particular receiver.&lt;br /&gt;
&lt;br /&gt;
=== The SBR Method ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] provides an asymptotic ray tracing simulation engine that is based on a technique known as Shooting-and-Bouncing-Rays (SBR). In this technique, propagating spherical waves are modeled as ray tubes or beams that emanate from a source, travel in space, bounce from obstacles and are collected by the receiver. As rays propagate away from their source (transmitter), they begin to spread (or diverge) over distance. In other words, the cross section or footprint of a ray tube expands as a function of the distance from the source. EM.Cube uses an accurate equi-angular ray generation scheme to that produces almost identical ray tubes in all directions to satisfy energy and power conservation requirements.&lt;br /&gt;
&lt;br /&gt;
When a ray hits an obstructing surface, one or more of the following phenomena may happen:&lt;br /&gt;
&lt;br /&gt;
# Reflection from the locally flat surface&lt;br /&gt;
# Transmission through the locally flat surface&lt;br /&gt;
# Diffraction from an edge between two conjoined locally flat surfaces&lt;br /&gt;
&lt;br /&gt;
EM.Cube discretizes all the objects of the scene into flat triangular facets. Obviously, rectangular and cubic objects preserve their geometric shapes through this discretization. Objects with curved surfaces such as cylinders, cones or spheres, are approximated by &amp;amp;quot;polymesh&amp;amp;quot; representations. The geometric fidelity of the resulting mesh depends on the specified mesh edge length. When a ray hits a triangular facet, the propagating spherical wave is approximated as a plane wave at the specular point. The reflection and transmission coefficients of the surface are calculated at the operational frequency and at the particular ray incident angle. &lt;br /&gt;
&lt;br /&gt;
A new reflected ray is generated at the specular point, which starts traveling and bouncing around in the scene. If the obstructing surface is penetrable, a second transmitted ray is generated and added to the scene. If the ray hits the edge of an obstacle, it is diffracted from that edge. This leads to the creation of a cone of new rays, which greatly complicate the computational problem. The Uniform Theory of Diffraction (UTD) is used to calculate the wedge diffraction coefficients at the edges of scattering blocks. Note that reflection, transmission and diffraction coefficients are all dependent on the polarization of the incident plane wave.&lt;br /&gt;
&lt;br /&gt;
A receiver may receive a large number of rays: direct line-of-sight rays from the transmitter, rays reflected or diffracted off the ground or terrain, rays reflected or diffracted from buildings or rays transmitted through buildings. Each received ray is characterized by its power, delay and angles of arrival, which are the spherical coordinate angles &amp;amp;theta; and &amp;amp;phi; of the incoming ray. The actual signal received and detected by the receiver is the superposition of all these rays with different power levels and different time delays. Most of the time, you will be interested in the coverage map of an area, which shows how much power is received by a grid of receivers spread over the area from a given fixed transmitter.&lt;br /&gt;
&lt;br /&gt;
=== Ray Reflection &amp;amp; Transmission ===&lt;br /&gt;
&lt;br /&gt;
[[File:reflect.png|thumb|350px|The Incident, Reflected and Transmitted Rays at the Interface Between Two Dielectric Media]]&lt;br /&gt;
&lt;br /&gt;
The incident, reflected and transmitted rays are each characterized by a triplet of unit vectors:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}, \hat{u}_{\perp}, \hat{k} } )&amp;lt;/math&amp;gt; representing the incident parallel polarization vector, incident perpendicular polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}', \hat{u}_{\perp}', \hat{k}' } )&amp;lt;/math&amp;gt; representing the reflected parallel polarization vector, reflected perpendicular polarization vector and reflected propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}'', \hat{u}_{\perp}'', \hat{k}'' } )&amp;lt;/math&amp;gt; representing the transmitted parallel polarization vector, transmitted perpendicular polarization vector and transmitted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The reflected ray is assumed to originate from a virtual image source point. The three triplets constitute three orthonormal basis systems. Below, it is assumed that the two dielectric media have permittivities &amp;amp;epsilon;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;epsilon;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, and permeabilities &amp;amp;mu;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;mu;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, respectively. A lossy medium with a conductivity &amp;amp;sigma; can be modeled by a complex permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = &amp;amp;epsilon;'&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; –j&amp;amp;sigma;/&amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. Assuming '''n''' to be the unit normal to the interface plane between the two media, and Z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;Omega; , the incident polarization vectors as well as all the reflected and transmitted vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp} = \frac{\hat{k} \times \hat{n}}{|\hat{k} \times \hat{n}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|} = \hat{u}_{\perp} \times \hat{k} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflected unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}' = \hat{k} - 2(\hat{k} \cdot \hat{n}) \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}' = \hat{u}_{\perp}' \times \hat{k}' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The transmitted unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}'' = \hat{n} \times a - \sqrt{1-a \cdot a} \; \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}'' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}'' = \hat{u}_{\perp}'' \times \hat{k}'' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{a} = (k_1/k_2) \mathbf{\hat{k} \times \hat{n}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_1 = k_0 \sqrt{\varepsilon_1 \mu_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_2 = k_0 \sqrt{\varepsilon_2 \mu_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_1 = Z_0 \sqrt{\mu_1 / \varepsilon_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_2 = Z_0 \sqrt{\mu_2 / \varepsilon_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sin\theta'' = \frac{k_1}{k_2}\sin\theta \text{ if } \sin\theta \le k_2/k_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml4.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml5.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflection coefficients at the interface are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penetration Through Thin Walls Or Surfaces ===&lt;br /&gt;
&lt;br /&gt;
[[File:thinwalltrans.png|thumb|350px|The Incident and Transmitted Rays through a Thin Wall]]&lt;br /&gt;
&lt;br /&gt;
In &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;, we assume that an incident ray gives rise to two rays, one is reflected at the specular point, and the other is transmitted almost in the same direction as the incident ray. The reflected ray is assumed to originate from a virtual image source point. Similar to the case of reflection and transmission at the interface between two dielectric media, here too we have three triplets of unit vectors, which all form orthonormal basis systems.&lt;br /&gt;
&lt;br /&gt;
The transmission coefficients are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\|} = \frac{(1-{\Gamma_{\|}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\|}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\perp} = \frac{(1-{\Gamma_{\perp}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\perp}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml21.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wedge Diffraction From Edges ===&lt;br /&gt;
&lt;br /&gt;
[[File:diffract.png|thumb|350px|The Incident Ray and Diffract Ray Cone at the Edge of a Building]]&lt;br /&gt;
&lt;br /&gt;
For the purpose of calculation of diffraction from building edges, we define a &amp;amp;quot;Wedge&amp;amp;quot; as having two faces, the 0-face and the ''n''-face. The wedge angle is a = (2-''n'')p, where the parameter ''n'' is required for the calculation of diffraction coefficients. All the diffracted rays lie on a cone with its vertex at the diffraction point and a wedge angle equal to the angle of incidence in the opposite direction. A diffracted ray is assumed to originate from a virtual image source point. Three triplets of unit vectors are defined as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_0, \hat{u}_l, \hat{t})}&amp;lt;/math&amp;gt; representing the unit vector normal to the edge and lying in the plane of the 0-face, the unit vector normal to the 0-face, and the unit vector along the edge, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f, \hat{u}_b, \hat{t})}&amp;lt;/math&amp;gt; representing the incident forward polarization vector, incident backward polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f', \hat{u}_b', \hat{t}')}&amp;lt;/math&amp;gt; representing the diffracted forward polarization vector, diffracted backward polarization vector and diffracted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The three triplets constitute three orthonormal basis systems. The propagation vector '''k'''' of the diffracted ray has to be constructed based on the diffraction cone as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{\hat{k}'} = \cos\phi_w \mathbf{\hat{u}_0} + \sin\phi_w \mathbf{\hat{u}_l} + &lt;br /&gt;
\mathbf{(\hat{k} \cdot \hat{t}) \hat{t}}, \quad 0 \le \phi_w \le \alpha&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the resolution of the angle &amp;amp;theta;&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt; is chosen to be the same as the resolution of the incident ray.&lt;br /&gt;
&lt;br /&gt;
The other unit vectors for the incident and diffracted rays are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f = \frac{\hat{k} \times \hat{t}}{|\hat{k} \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b = \hat{k} \times \hat{u}_f } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f' = \frac{\hat{k}' \times \hat{t}}{|\hat{k}' \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b' = \hat{k}' \times \hat{u}_f' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml9.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The diffraction coefficients are calculated in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_s = \frac{-e^{-j\pi/4}}{2n \sqrt{2\pi k} \sin\beta_0'}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \cot \left(\frac{\pi + (\phi-\phi')}{2n}\right) F[kLa^+(\phi-\phi')] +&lt;br /&gt;
  \cot \left(\frac{\pi - (\phi-\phi')}{2n}\right) F[kLa^-(\phi-\phi')] + \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; R_{0 \perp} \cot \left(\frac{\pi - (\phi+\phi')}{2n}\right) F[kLa^-(\phi+\phi')] +&lt;br /&gt;
  R_{n \perp} \cot \left(\frac{\pi + (\phi+\phi')}{2n}\right) F[kLa^+(\phi+\phi')]&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_h = \frac{-e^{-j\pi/4}}{2n \sqrt{2\pi k} \sin\beta_0'}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \cot \left(\frac{\pi + (\phi-\phi')}{2n}\right) F[kLa^+(\phi-\phi')] +&lt;br /&gt;
  \cot \left(\frac{\pi - (\phi-\phi')}{2n}\right) F[kLa^-(\phi-\phi')] + \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; R_{0 \|} \cot \left(\frac{\pi - (\phi+\phi')}{2n}\right) F[kLa^-(\phi+\phi')] +&lt;br /&gt;
  R_{n \|} \cot \left(\frac{\pi + (\phi+\phi')}{2n}\right) F[kLa^+(\phi+\phi')]&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml11.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where ''F(x)'' is the Fresnel Transition function:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = 2j \sqrt{x} e^{jx} \int_{\sqrt{x}}^{\infty} e^{-j\tau^2} \, d\tau &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, we have&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
s = |\rho_D - \rho_S| \\&lt;br /&gt;
s' = |\rho_D - \rho_r|&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L = \frac{s s' \sin^2 \beta'}{s + s'} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\pm}(\nu) = 2\cos^2 \left( \frac{2n\pi N^{\pm} - \nu}{2} \right), \quad \nu = \phi \pm \phi' &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml10.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml13.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;N^{\pm}&amp;lt;/math&amp;gt; are the integers which most closely satisfy the equations &amp;lt;math&amp;gt; 2n\pi N^{\pm} - \nu = \pm \pi &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SBR As An Asymptotic EM Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulation engine can be used as a versatile and powerful asymptotic electromagnetic (EM) solver. If you compare EM.Cube's [[Propagation Module]] with its other computational modules, you will notice a lot of similarities. While other modules group objects primarily by their material properties, [[Propagation Module]] categorizes the types of obstructing surfaces. Besides sharing the same ray-surface interaction mechanisms, all the objects belonging to a surface group also share the same material properties. [[Propagation Module]] offers similar source types and similar observable types as the other computational modules. For instance, the Hertzian dipole sources used in a SBR simulation are identical to those offered in PO, MoM3D and Planar modules. The plane wave sources are identical across all computational modules. [[Propagation Module]]'s sensor field planes, far field observables (either radiation patterns or RCS) and Huygens surfaces are all fully compatible with EM.Cube's other computational modules.&lt;br /&gt;
&lt;br /&gt;
As an asymptotic EM solver, the SBR engine can be used to model large-scale electromagnetic radiation and scattering problems. An example of this kind is radiation of simple or complex antennas in the presence of large scattering platforms. You have to keep in mind that by using an asymptotic technique in place of a full-wave method, you trade computational speed and lower memory requirements for modeling accuracy. In particular, the SBR method cannot take into account the electromagnetic coupling effects among nearby radiators or scatterers. However, when your scene spans thousands of wavelengths, an SBR simulation might often prove to be your sole practical solution.  &lt;br /&gt;
&lt;br /&gt;
=== Novelties Of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine utilizes an intelligent ray tracing algorithm based on the concept of  k-dimensional trees. A k-d tree is a space-partitioning data structure for organizing points in a k-dimensional space. k-d trees are particularly useful for searches that involve multidimensional search keys such as range searches and nearest neighbor searches. In a typical large radio propagation scene, there might be a large number of rays emanating from the transmitter that may never hit any obstacles. For example, upward-looking rays in an urban propagation scene quickly exit the computational domain. Rays that hit obstacles on their path, on the other hand, generate new reflected and transmitted rays. The k-d tree algorithm traces all these rays systematically in a very fast and efficient manner. Another major advantage of k-d trees is the fast processing of multi-transmitters scenes. Unlike the previous versions of the SBR solver which could handle one transmitter at a time and would superpose all the resulting rays at the end of the simulation, the new SBR shoots rays from all the transmitters at the same time.   &lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine performs fully polarimetric and coherent SBR simulations with arbitrary transmitter antenna patterns. The new engine solves directly for the vectorial field components at the receiver locations or field observation points. This is far more rigorous than the previous versions of the SBR solver which primarily utilized ray power calculations based on the two vertical and horizontal polarizations. In other words, EM.Cube's new SBR engine is a truly asymptotic &amp;amp;quot;field&amp;amp;quot; solver. As a result, you can visualize the magnitude and phase of all six electric and magnetic field components at any point in the computational domain. For power calculations at the receiver location, an isotropic, polarization-matched, receiving antenna is assumed.       &lt;br /&gt;
&lt;br /&gt;
In most scenes, the buildings and the ground or terrain can be assumed to be made of homogeneous materials. These are represented by their electrical properties such as permittivity e and electric conductivity s. More complex scenes may involve a multilayer ground or multilayer building walls. In such cases, one can no longer use the simple reflection or transmission coefficient formulas for homogeneous medium interfaces. EM.Cube calculates the reflection and transmission coefficients of multilayer structures as functions of incident angle, frequency and polarization and uses them at the respective specular points.  &lt;br /&gt;
&lt;br /&gt;
=== Limitations of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
It is very important to keep in mind that SBR is an asymptotic electromagnetic analysis technique that is based on Geometrical Optics (GO) and the Uniform Theory of Diffraction (UTD). It is not a &amp;amp;quot;full-wave&amp;amp;quot; technique, and it does not solve Maxwell's equations directly or numerically. SBR makes a number of assumptions, chief among them, a very high operational frequency such that the length scales involved are much larger than the operating wavelength. Under this assumed regime, electromagnetic waves start to behave like optical rays. Virtually all the calculations in SBR are based on far field approximations. &lt;br /&gt;
&lt;br /&gt;
In order to maintain a high computational speed for urban propagation problems, EM.Cube's SBR solver ignores double diffractions. Recall that diffractions from edges give rise to a large number of new secondary rays. The power of diffracted rays drops much faster than reflected rays. EM.Cube ignores diffracted rays that are not detected by any receiver. In other words, an edge-diffracted ray does not diffract again from another edge. However, reflected and penetrated rays do get diffracted from edges just as rays emanated directly from the sources do.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Propagation Scene ==&lt;br /&gt;
&lt;br /&gt;
An EM.Cube propagation scene typically consists of several elements. At a minimum, you need a transmitter (Tx) at some location to launch rays into the scene and a receiver (Rx) at another location to receive and collect the incoming rays. A transmitter and a receiver together make the simplest propagation scene, representing a free-space line-of-sight (LOS) channel. A transmitter is one of EM.Cube's several source types, while a receiver is one of EM.Cube's several observable types. A simpler source type is a Hertzian dipole. A simpler observable is a field sensor that is used to compute the electric and magnetic fields on a specified plane.&lt;br /&gt;
&lt;br /&gt;
An outdoor propagation scene may involve several buildings (modeled as impenetrable surfaces) and an underlying flat ground or irregular terrain surface. An indoor propagation scene may involve several walls (modeled as thin penetrable surfaces), a ceiling and a floor arranged according to a certain floor plan. You can also build mixed scenes involving both impenetrable and penetrable blocks, possibly along with irregular terrain surfaces. Your sources and observables can be placed anywhere in the scene. Your transmitters and receivers can be placed outdoors or indoors. A complete list of the various elements of a propagation scene is given in the '''Physical Structure''' section of [[Propagation Module]]'s Navigation Tree as follows:&lt;br /&gt;
&lt;br /&gt;
* Impenetrable Surfaces&lt;br /&gt;
* Penetrable Surfaces&lt;br /&gt;
* Terrain Surfaces&lt;br /&gt;
* Base Points&lt;br /&gt;
&lt;br /&gt;
Impenetrable, penetrable and terrain surfaces all obstruct the propagation of electromagnetic waves (rays) in the free space. What differentiates them is the types of physical phenomena that are used to model their interaction with the impinging rays. Base points are simply used to define transmitter and receiver locations in the scene. The following sections of this manual will describe each of these elements in detail.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Navigation Tree of EM.Cube's [[Propagation Module]].&lt;br /&gt;
&lt;br /&gt;
=== The Various Types Of Surfaces &amp;amp;amp; Blocks ===&lt;br /&gt;
&lt;br /&gt;
In a SBR simulation, the propagating rays hit the surface of building structures, walls, terrain (or global ground) and bounce back into the scene (reflection). Some rays penetrate thin walls or other penetrable surfaces and continue their path on the other side of the surface (transmission). The field intensity, phase and power of the reflected and transmitted rays depend on the material properties of the obstructing surface. The specular surface can be modeled as a simple homogeneous dielectric half-space or as a multilayer structure. In that respect, the buildings, walls, terrain or even the global ground all behave in a similar way:&lt;br /&gt;
&lt;br /&gt;
* They terminate an impinging ray and replace it with one or more new rays.&lt;br /&gt;
* They represent a specular interface between two media of different material compositions for calculating the reflection, transmission and possibly diffraction coefficients.&lt;br /&gt;
&lt;br /&gt;
EM.Cube has generalized the concept of '''Block''' as any object that obstructs and affects radio wave propagation. Rays hit the facets of a block and bounce off the surface of those facets or penetrate them and continue their propagation. Rays also get diffracted off the edges of these blocks. In EM.Cube's [[Propagation Module]], blocks are grouped together by the type of their interaction with rays. EM.Cube currently offers three types of blocks for use in a propagation scene:&lt;br /&gt;
&lt;br /&gt;
# '''Impenetrable Surfaces:''' Rays hit the facets of this type of blocks and bounce back, but they do not penetrate the object. It is assumed that the interior of such blocks or buildings are highly absorptive.&lt;br /&gt;
# '''Penetrable Surfaces:''' These blocks represent thin surfaces that are used to model the exterior and interior walls of buildings based on the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;. Rays reflect off the surface of penetrable surfaces and diffract off their edges. They also penetrate such thin surfaces and continue their paths on the other side of the wall.&lt;br /&gt;
# '''Terrain Surfaces:''' These blocks are used to provide one or more impenetrable, ground surfaces for the propagation scene. Rays simply bounce off terrain objects. The global ground acts as a flat super-terrain that covers the bottom of the entire computational domain. &lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to define block groups of each of the above three types. Each block group has the same color or texture and its members share the same material properties: permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and conductivity &amp;amp;sigma;. Also, all the penetrable surfaces belonging to the same block group have the same wall thickness. You can define many different block groups with certain properties and underneath each introduce many member objects with different geometrical shapes and dimensions. The table below summarizes the characteristics of each block type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Block Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Physical Effects&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Admissible Object Types&lt;br /&gt;
|-&lt;br /&gt;
| Impenetrable Surface&lt;br /&gt;
| Reflection, Diffraction&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Penetrable Surface&lt;br /&gt;
| Reflection, Diffraction, Transmission&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Terrain Surface&lt;br /&gt;
| Reflection&lt;br /&gt;
| Tessellated Objects Only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Impenetrable Surfaces For Outdoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(2).png|thumb|200px|[[Propagation Module]]'s Impenetrable Surface dialog]]   &lt;br /&gt;
&lt;br /&gt;
In outdoor propagation scenes such as &amp;amp;quot;Urban Canyons&amp;amp;quot;, you are primarily interested in the wireless coverage in the areas among buildings. You can assume that rays bounce off the exterior walls of these buildings but do not penetrate them. In other words, you ignore the transmitted rays and assume that they are either absorbed or diffused inside the buildings. This is not an unrealistic assumption. EM.Cube offers &amp;amp;quot;Impenetrable Blocks&amp;amp;quot; to model buildings in outdoor propagation scenes. A penetrable block has a color or texture property as well as material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and conductivity (s). By default, a brick building is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m. Impinging rays are reflected from the facets of impenetrable buildings or diffracted from their edges.&lt;br /&gt;
&lt;br /&gt;
To define a new impenetrable block group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on either the '''Impenetrable Surfaces''' item of the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the block properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the block group and select a color or texture.&lt;br /&gt;
# The electromagnetic model that determines ray-block interaction is selected under '''Specular Interface Type'''. Two options are available: '''Standard Material''' or '''User Defined Model'''. The former is the default choice and requires material properties, '''Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity''' (&amp;amp;sigma;), which are set to &amp;amp;quot;Brick&amp;amp;quot; by default. No magnetic properties are allowed for blocks.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Under an impenetrable block group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of an impenetrable surface. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. In this dialog, you can change the name of the material and its permittivity and electric conductivity. The box labeled &amp;amp;quot;Specify Loss Tangent&amp;amp;quot; is unchecked by default. If you check it, you can specify the '''Loss Tangent''' of the material, which, in turn, updates the value of electric conductivity at the center frequency of the project. You can also use EM.Cube's Material List, which will  be explained later.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to impenetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
=== Penetrable Surfaces For Indoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15(1).png|thumb|200px|[[Propagation Module]]'s Penetrable Surface dialog]]&lt;br /&gt;
&lt;br /&gt;
A typical indoor propagation scene usually involves an arrangement of walls that represent the interior of a building. The transmitters and receivers are then placed in the spaces among such walls. From the point of view of EM.Cube's SBR simulator, walls act like thin penetrable surfaces. EM.Cube uses the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot; to model penetrable surfaces. It assumes that rays simply penetrate a wall and exit at the same specular point on the opposite side of the wall. In other words, rays are not displaced by the walls, nor do they get trapped inside the walls (no internal reflection). This is equivalent to assuming a zero thickness for penetrable surfaces for the purpose of geometrical ray tracing, while the finite thickness of the &amp;amp;quot;thin&amp;amp;quot; surface is used for electromagnetic calculation of transmission coefficient. EM.Cube offers &amp;amp;quot;Penetrable Surface Blocks&amp;amp;quot; for the construction of rooms in indoor propagation scenes as well as modeling of hollow buildings and other structures. You can define many penetrable surface groups with arbitrary thicknesses and material properties (color, texture, permittivity and electric conductivity).&lt;br /&gt;
&lt;br /&gt;
To define a new penetrable surface group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on one of the '''Penetrable Surfaces''' item in the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the wall properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the surface group and select a color or texture.&lt;br /&gt;
# The properties of a penetrable surface are identical to those of an impenetrable surface, plus an additional thickness property.&lt;br /&gt;
# By default, a brick wall with a thickness of 0.5 units is assumed. You can change the '''Thickness''' of the penetrable surface as well as its '''Permittivity'''  &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and '''Electric Conductivity''' &amp;amp;sigma;.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Under a penetrable surface group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of a penetrable surface group including its default thickness. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. Similar to the case of impenetrable surfaces, from this dialog, you can change the material properties (permittivity and electric conductivity) as well as '''Thickness''', which is expressed in the project units. You can also use EM.Cube's Material List, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to penetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
You can construct several thin walls and arrange them as rooms. A regular room can be built by placing four vertical wall objects together with an optional horizontal wall at the top for the ceiling. Alternatively, you may use EM.Cube's hollow box objects or boxes with one or two capped end(s).  '''Keep in mind that all the penetrable surfaces belonging to a group have the same wall thickness, which is initially set to 0.5 project units by default. Also, note that solid CAD objects belonging to a penetrable surface group are treated as air-filled hollow structures.''' The thickness of penetrable surfaces is implied and not visualized when displaying objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Computational Domain &amp;amp;amp; Global Ground ===&lt;br /&gt;
&lt;br /&gt;
The SBR simulation engine requires a finite computational domain. All the stray rays that hit the boundaries of this finite domain are terminated during the simulation process. Such rays exit the computational domain and travel to the infinity, with no chance of ever reaching any receiver in the scene. When you define a propagation scene with various elements like buildings, walls, terrain, etc., a dynamic domain is automatically established and displayed as a wireframe box with green lines that surrounds the entire scene. Every time you create a new object, the domain is automatically adjusted and extended to enclose all the objects in the scene. You can change the size and color of the domain box through the Ray Domain Settings Dialog, which can be accessed in one of the following three ways:&lt;br /&gt;
&lt;br /&gt;
# Click the '''Domain''' [[File:image025.jpg]] button of the Simulation Toolbar.&lt;br /&gt;
# Select the '''Simulate''' &amp;amp;gt; '''Computational Domain''' &amp;amp;gt; '''Settings...''' item of the Simulate Menu.&lt;br /&gt;
# Right click on the '''Ray Domain''' item of the Navigation Tree and select '''Domain Settings...'''&lt;br /&gt;
# Use the keyboard shortcut '''Ctrl + A'''.&lt;br /&gt;
&lt;br /&gt;
The size of the Ray domain is specified in terms of six '''Offset''' parameters along the ±X, ±Y and ±Z directions. The default value of all these six offset parameters is 10 project units. You can change them arbitrarily. After changing these values, use the '''Apply''' button to make the changes effective while the dialog is still open.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Most outdoor and indoor propagation scenes include a flat ground at their bottom, which bounces incident rays back into the scene. EM.Cube's [[Propagation Module]] provides a global flat ground at z = 0. The global ground indeed acts as an impenetrable surface that blocks the entire computational domain from the z = 0 plane downward. It is displayed as a translucent green plane at z = 0 extending downward. The color of the ground plane is always the same as the color of the ray domain. The global ground is assumed to be made of a homogeneous dielectric material with a specified permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma;. By default, a rocky ground is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m. You can remove the global ground, in which case, you will have a free space scene. To disable the global ground, open up the Global Ground Settings Dialog, which can be accessed by right clicking on the '''Global Ground''' item in the Navigation Tree and selecting '''Global Ground Settings... '''Remove the check mark from the box labeled '''&amp;amp;quot;Include Half-Space Ground (z&amp;amp;lt;0)&amp;amp;quot;''' to disable the global ground. This will also remove the green translucent plane from the bottom of your scene. You can also change the material properties of the global ground and set new values for the permittivity and electric conductivity of the impenetrable, half-space, dielectric medium. '''Do not forget to disable the global ground if you want to model a free space propagation scene.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PROP4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s Global Ground Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Surfaces vs. Global Ground ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP16.png|thumb|200px|[[Propagation Module]]'s Terrain dialog]]&lt;br /&gt;
&lt;br /&gt;
A terrain surface acts as a custom, unlevel or irregular ground for your propagation scene. EM.Cube's default global ground blocks the z &amp;amp;lt; 0 half-space everywhere in the computational domain. You can simply turn off the global ground and create one or more terrain objects and place them arbitrarily in the scene. You can also import an external terrain model or file. A terrain represents an impenetrable surface with a more complex surface profile. You can have one or more terrain objects of finite extents and place them on or above the global ground.&lt;br /&gt;
&lt;br /&gt;
Terrain objects have some important differences with objects of the &amp;amp;quot;Impenetrable Surface&amp;amp;quot; type:&lt;br /&gt;
&lt;br /&gt;
# While impenetrable blocks can be created using any of EM.Cube's solid or surface CAD object creation tools, terrain objects are created either using EM.Cube's '''Terrain Generator''' or by importing an external terrain file. &lt;br /&gt;
# Terrain objects belong to a special type of CAD objects called &amp;amp;quot;Tessellated Objects&amp;amp;quot;, which differ from other regular CAD [[Surface Objects|surface objects]] or EM.Cube's polymesh surfaces.&lt;br /&gt;
# Terrain surfaces do not diffract impinging rays at their many small edges.&lt;br /&gt;
# Terrain objects affect the elevation of other objects or transmitters or receivers that are located above them.&lt;br /&gt;
&lt;br /&gt;
Just as other blocks are grouped by their color, texture and material composition, terrain objects are also grouped in a similar fashion. Before you can generate or import a new terrain object, first you have to define a terrain group and specify its color/texture and material properties. To define a new terrain group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Terrain''' item in the Navigation Tree and select '''Insert New Terrain...''' A dialog for setting up the terrain properties opens up offering a of preloaded material type (Rock) with predefined green color and no texture.&lt;br /&gt;
* Specify a name for the terrain group and select a color or texture.&lt;br /&gt;
* Similar to other blocks, you have to specify the material properties, Permittivity (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and Electric Conductivity (&amp;amp;sigma;), of the terrain group. Rock with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m is the default material choice for a new terrain.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
You can change the properties of a terrain surface group from its property dialog. Click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog, which is identical to the case of impenetrable surfaces. You can also use EM.Cube's Material List, which will be explained later. When a new terrain type is created, its node on the Navigation Tree becomes active. Under this node you can create and add new terrain objects. When a terrain node is active for drawing, all CAD object creation tools are disabled. You have three options for creating a new terrain object, which will be described in detail in the next sections of this manual:&lt;br /&gt;
&lt;br /&gt;
# Use EM.Cube's '''Terrain Generator'''.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.TRN'''&amp;amp;quot; type.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.DEM'''&amp;amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
=== Using Terrain Generator ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18.png|thumb|250px|[[Propagation Module]]'s Terrain Generator dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides a convenient and powerful Terrain Generator for creating a variety of terrain [[Surface Objects|surface objects]]. EM.Cube's Terrain Generator looks very similar to [[CubeCAD]]'s Surface Generator. However, whereas the Surface Generator creates a generic or polymesh surface object, Terrain Generator always creates another special type of object known as a '''Tessellated Object'''. A terrain object is much simpler than EM.Cube's polymesh objects and is usually made up of triangular or quadrilateral facets. As such, terrain objects have limited editing capabilities. For example, you can cut, copy, paste, translate or rotate  terrain objects. But operations like scaling, mirroring, grouping (composite), arraying, exploding, linking or Boolean operations do not work on terrain objects.&lt;br /&gt;
&lt;br /&gt;
To create a new terrain object using Terrain Generator, first you need to define a terrain group in the Navigation Tree. Right click on the name of the terrain node and select '''Terrain Generator...''' from the contextual menu. This opens up the Terrain Generator Dialog. Using Terrain Generator, you can build a single terrain surface or an array of surfaces patched together. Some of the available terrain models include:&lt;br /&gt;
&lt;br /&gt;
# Flat Plane&lt;br /&gt;
# Hill (Elliptic Quadratic)&lt;br /&gt;
# Mountain (Elliptic Cone)&lt;br /&gt;
# 1-D and 2-D Cliff&lt;br /&gt;
# Gaussian Hump&lt;br /&gt;
# Undulated Sinusoid&lt;br /&gt;
# Undulated Sinc&lt;br /&gt;
# Super-quadratic Plateau&lt;br /&gt;
# Custom Function&lt;br /&gt;
# XY Grid Data&lt;br /&gt;
&lt;br /&gt;
In all of the above models, you can set the height of the surface object to an any desired value. You set the lateral extents of the surface and its resolution along the X and Y directions in the boxes labeled '''Range Start''', '''Range Stop''' and '''Range Step'''. The step values along the X and Y directions are a measure of surface smoothness: the smaller the step values, the higher the resolution and the smoother the resulting terrain object.&lt;br /&gt;
&lt;br /&gt;
Some surface types have an additional shape factor called '''Alpha''' that is identical to the alpha parameter in the surface generator. For example, a Gaussian Hump is defined as exp(-r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/(2a&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)), where r is the polar radius. For a Super-quadratic Hump, the input parameter a defines the degree of the super-quadratic surface. a = 2 corresponds to an ellipsoid. Larger values of a get close to a rectangular base with rounded corners. An undulated sinusoidal surface is defined by cos(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*cos(pay/D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;), and an undulated sinc is defined by D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;*D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;*sin(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*sin(pay/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/(2pxy), where D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; are the X and Y dimensions, respectively. Terrain Generator creates a unit cell based on the specified surface type. From the same dialog, you can also produce an array arrangement of such unit cells. Simply enter any number of elements along the X and Y directions in the boxes labeled '''Array'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP19.png|800px]]  &lt;br /&gt;
&lt;br /&gt;
Figure: A 4 × 4 array of hill terrain objects.&lt;br /&gt;
&lt;br /&gt;
You can define any arbitrary surface by entering an equation of the two [[variables]] x and y as z = f(x,y). In this case, you have to select the '''Custom Function''' option in the dropdown list labeled '''Model'''. You should enter your equation as any mathematical expression in the box labeled '''Function f(x,y)'''. You can use any of EM.Cube's mathematical functions listed in the '''Function Dialog''' or combine several of them. Note that after selecting the custom function option, the height of the surface is determined by your equation, and the '''Height''' box is disabled. You can also introduce random noise and create a rough terrain. You can do this by setting a nonzero value for '''Noise''', which represent the RMS peak-to-valley amplitude of the surface roughness. The figures below show two custom terrain surfaces modeled by the equation z = (x.y)/20 defined over the range [0, 10] in both X and Y directions. Random noise has been added to both surfaces, with the noise amplitude being 0.2 and 0.5 for the left and right figures, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP21.png|400px]] [[File:PROP20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Two noisy custom terrain surfaces both defined as z = (x.y)/20: (Left) RMS noise amplitude = 0.2, (right) RMS noise amplitude = 0.5.&lt;br /&gt;
&lt;br /&gt;
=== Generating Grid-Based Terrain ===&lt;br /&gt;
&lt;br /&gt;
Every time you create a new terrain object using Terrain Generator, an ASCII data file named &amp;amp;quot;GeneratedTerrain&amp;amp;quot; with a &amp;amp;quot;'''.TRN'''&amp;amp;quot; file extension is created and placed in your project folder. This is EM.Cube's simple native terrain file format that basically lists all the (x, y, z) coordinates of the generated surface points on a horizontal, rectangular XY grid. Terrain Generator simply takes your custom function definition or one of the selected catalog surface types and generates the digital elevation data on the specified grid.  &lt;br /&gt;
&lt;br /&gt;
Another type of terrain model that the terrain generator provides is '''XY Grid Data'''. In this case, you define a rectangular XY grid with a uniform grid cell size along the X and Y directions and manually define the Z-elevation for each grid point. This is similar to the surface generator's &amp;amp;quot;2D Uniform Grid&amp;amp;quot; model type in [[CubeCAD]]. Based on your input to '''Range Start''', '''Range Stop''' and '''Range Step''' along X and Y, a 2D grid is set up and displayed in a table at the bottom of the terrain generator dialog. By default, all the Z-elevations are set to zero initially. You can click on each table cell and overwrite it with a new value. At the end, click the '''Create''' button of the dialog to add the new grid-based terrain object to the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:terrain10_tn.png]]&lt;br /&gt;
&lt;br /&gt;
A grid-based terrain object.&lt;br /&gt;
&lt;br /&gt;
=== Importing &amp;amp;amp; Exporting Terrain Models ===&lt;br /&gt;
&lt;br /&gt;
You can import two types of terrain in EM.Cube's [[Propagation Module]]. The first type is &amp;amp;quot;'''.TRN&amp;amp;quot;''' terrain file, which is EM.Cube's native terrain format. It is a basic digital elevation map with a very simple ASCII data file format. The resolution of the terrain map in the X and Y directions is specified in meters as STEPS. The (x, y, z) coordinates of the terrain points are then listed one point per line. The other type of terrain format supported by EM.Cube is the standard '''7.5min DEM''' file format with a '''.DEM''' file extension. &lt;br /&gt;
&lt;br /&gt;
To import an external terrain model, first you have to create a terrain group node in the Navigation Tree. Right click on the name of the terrain group in the Navigation Tree and select either '''Import Terrain...''' or '''Import DEM File...''' A standard Windows '''Open Dialog''' opens up, with the file type set to .TRN or .DEM extensions, respectively. You can browse your folders and find the right terrain model file to import.&lt;br /&gt;
&lt;br /&gt;
You can also export all the terrain objects in the project workspace as a terrain file with a '''.TRN''' file extension. You can even import a DEM terrain model from an external file and then save and export it as a native terrain (.TRN) file. To export the terrain, select '''File''' &amp;amp;gt; '''Export...''' from [[Propagation Module]]'s '''File Menu'''. The standard Windows Save Dialog opens up with the default file type set to '''.TRN'''. Type in a name for your new terrain file and click the '''Save''' button to export the terrain data.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-12_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figur: An imported external terrain model.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Surface Models ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP26.png|thumb|200px|Propagation Module's Penetrable Surface Dialog showing a three-layer wall composition]]&lt;br /&gt;
&lt;br /&gt;
Most of the time, your outdoor propagation scene consists of simple buildings made of single-layer walls with standard material properties (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;). In the case of a single-layer impenetrable surface, the specular interface is an infinite dielectric half-space, which reflects the impinging rays. Single-layer penetrable surfaces, on the other hand, involve finite-thickness dielectric walls, which both reflect and transmit the incident rays. Similarly, most of your indoor propagation scenes involve simple single-layer penetrable walls with the specified material properties &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. A thin wall acts like a finite-thickness dielectric slab that both reflects and transmits incident rays. In the case of the global ground or terrain objects, only ray reflection off the ground surface is considered.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[Propagation Module]], you can define multilayer surfaces with both reflection and transmission properties. You can define multilayer impenetrable buildings, multilayer penetrable walls, and multilayer terrain, with an arbitrary number of layers having different material compositions. You define a multilayer surface in the property dialog of a block, whether impenetrable, penetrable or terrain. In the section entitled '''Surface Type''', two options are available: '''Standard Material''' or '''User Defined Model'''. For simple multilayer walls, select the '''Standard Material''' option. You can add new layers with arbitrary thickness and material parameters to the existing layers. To insert a new layer, deselect any items in the layer list, and click the '''Add/Edit''' button to open the &amp;amp;quot;Add Layer&amp;amp;quot; Dialog. Here you can enter a name for the new layer and values for its '''Thickness''', &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. You may also delete any layer by selecting and highlighting it and clicking the '''Delete''' button. You can move layers up or down using the '''Move Up''' and '''Move Down''' buttons and change the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
You can also search EM.Cube's material database by clicking the '''Material''' button of &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. This opens the '''Materials''' Dialog. Inside the material list select and highlight any row and click the '''OK''' button. The selected material will fill out all the fields in the &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. Inside the Materials Dialog, you can type the few first letters of any material, and it will take you to the corresponding row of the list.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Transferring Objects From Or To Other Modules ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube's [[Propagation Module]] and draw a solid object like a box in the project workspace without having defined any surface groups, it is assumed to be of the impenetrable surface type. A default impenetrable surface group called Block_1 is automatically added to the Navigation Tree, which holds your newly drawn object. The default group has the material properties of &amp;amp;quot;Brick&amp;amp;quot; (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m.) with a dark brown color. You can continue drawing new objects in the project workspace and adding them under this block node. Or you can define a new surface type with different properties. By default, the last surface group that was defined is '''Active'''. The current active surface group is always listed in bold letters in the Navigation Tree. When you draw a new object, it is always inserted under the current active surface group. Any surface group can be activated by right clicking its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move any object from its current surface group into any other available surface group. First select the object, then right click on its surface and select '''MoveTo &amp;amp;gt; Propagation &amp;amp;gt;'''. A submenu appears which lists all the available surface groups where you can transfer the selected object. You can also move objects among surface groups by selecting their names in the Navigation Tree and using the contextual menu. In a similar way, you can transfer objects from [[Propagation Module]] to EM.Cube's other modules or vice versa. '''Keep in mind that all the external model files such as STEP, IGES, STL, etc. are first imported to EM.Cube's [[CubeCAD]], from which you can transfer them to other modules.''' First select the object, then right click and select '''MoveTo &amp;amp;gt;'''. In the submenu you will see a list of all the EM.Cube modules that have at least one available group where you can transfer your selected object. You can select multiple objects for transfer. When using the keyboard's '''Shift Key''' or '''Ctrl Key''' for multiple selection, make sure that those keys are held down, when you right click to access the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Defining Sources &amp;amp;amp; Observables ==&lt;br /&gt;
&lt;br /&gt;
Like every other electromagnetic solver, EM.Cube's SBR ray tracer requires a source for excitation and one or more observables for generation of simulation data. EM.Cube's new [[Propagation Module]] offers several types of sources and observables for a SBR simulation. You can mix and match different source types and observable types depending on the requirements of your modeling problem. There are two types of sources:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Transmitter Sets|Transmitter]]&lt;br /&gt;
* [[#Hertzian Dipole Sources|Hertzian Dipole]]&lt;br /&gt;
&lt;br /&gt;
There are four types of observables:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Receiver Sets|Receivers]]&lt;br /&gt;
* [[#Defining Field Sensors|Field Sensor]]&lt;br /&gt;
* Far Fields&lt;br /&gt;
* Huygens Surface&lt;br /&gt;
&lt;br /&gt;
The simplest SBR simulation can be performed using a short dipole source with a specified field sensor plane. In this way, EM.Cube computes the electric and magnetic fields radiated by your dipole source in the presence of your multipath propagation environment. A &amp;amp;quot;classic&amp;amp;quot; urban propagation scene can be set up using a &amp;amp;quot;Transmitter&amp;amp;quot; source and an array of &amp;amp;quot;Receiver&amp;amp;quot; observables. A transmitter is a point radiator with a user defined radiation pattern. A receiver is a polarization-matched isotropic point radiator that collects the received rays at its aperture. Using receivers, you can calculate the received power coverage map of your propagation scene. You can also calculate your channel's path loss between the transmitter and all the receivers. &amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18(1).png|thumb|[[Propagation Module]]'s Transmitter dialog with a short dipole radiator selected]]&lt;br /&gt;
Earlier versions of EM.Cube's [[Propagation Module]] used to offer an isotropic radiator with vertical or horizontal polarization as the simplest transmitter type. This release of EM.Cube has abandoned isotropic radiator transmitters because they do not exist physically in a real world. Instead, the default transmitter radiator type is now a Hertzian dipole. Note that before defining a transmitter, first you have to define a base set to establish the location of the transmitter. Most simulation scenes involve only a single transmitter. Your base set can be made up of a single point for this purpose. &lt;br /&gt;
&lt;br /&gt;
To define a new Transmitter Set, go to the '''Sources''' section of the Navigation Tree, right click on the '''Transmitters''' item and select '''Insert Transmitter...''' A dialog opens up that contains a default name for the new Transmitter Set as well as a dropdown list labeled '''Select Base Set'''. In this list you will see all the available base sets already defined in the project workspace. Select the desired base set to associate with the transmitter set. Note that if the base set contains more than one point, then more than one transmitter will be created and contained in your transmitter set. After defining a transmitter set, the base points change their color to the transmitter color, which is red by default.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Radiator&amp;amp;quot; section of the dialog, you have two options to choose from: &amp;amp;quot;Short Dipole&amp;amp;quot; and &amp;amp;quot;User Defined&amp;amp;quot;. The default option is short dipole. A short dipole radiator has a '''Length'''''dl'' expressed in project units, a current '''Amplitude''' in Amperes and a current '''Phase''' in degrees. The '''Direction''' of the dipole is determined by its unit vector that has three X, Y and Z components. By default, a Z-directed short dipole radiator is assumed. You can change all parameters of the dipole as you wish. Keep in mind that all the transmitters belonging to the same set have parallel radiators with identical properties.&lt;br /&gt;
&lt;br /&gt;
=== Defining Base Point Sets ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP1.png|thumb|[[Propagation Module]]'s Base Set dialog]]&lt;br /&gt;
In order to tie up transmitters and receivers with CAD objects in the project workspace, EM.Cube uses point objects to define transmitters and receivers. These point objects represent the base of the location of transmitters and receivers in the computational domain. Hence, they are grouped together as &amp;amp;quot;Base Sets&amp;amp;quot;. You can easily interchange the role of transmitters and receivers in a scene by switching their associated bases. The usefulness of concept of base sets will become apparent later when you place transmitters or receivers on an irregular terrain and adjust their elevation.   &lt;br /&gt;
&lt;br /&gt;
To create a new base set, right click on the '''Base Sets''' item of Navigation Tree and select '''Insert Base Set...''' A dialog for setting up the Base Set properties opens up.&lt;br /&gt;
&lt;br /&gt;
# Enter a name for the base set and change the default blue color if you wish. It is useful to differentiate the base sets associated with transmitters and receivers by their color.&lt;br /&gt;
# Click the '''OK''' button to close the Base Set Dialog.&lt;br /&gt;
&lt;br /&gt;
Once a base set node has been added to the Navigation Tree, it becomes the active node for new object drawing. Under base sets, you can only draw point objects. All other object creation tools are disabled. A point is initially drawn on the XY plane. Make sure to change the Z-coordinate of your radiator, otherwise, it will fall on the global ground at z = 0. You can also create arrays of base points under the same base set. This is particularly useful for setting up receiver grids to compute coverage maps. Simply select a point object and click the '''Array Tool''' of '''Tools Toolbar''' or use the keyboard shortcut &amp;amp;quot;A&amp;amp;quot;. Enter values for the X, Y or Z spacing as well as the number of elements along these three directions in the Array Dialog. In most propagation scenes you are interested in 2D horizontal arrays along a fixed Z coordinate (parallel to the XY plane).&lt;br /&gt;
&lt;br /&gt;
=== Defining Transmitter Sets ===&lt;br /&gt;
&lt;br /&gt;
A short dipole is the closest thing to an omni-directional radiator. The direction or orientation of the short dipole determines its polarization. In many applications, you may rather want to use a directional antenna for your transmitter. You can model a radiating structure using EM.Cube's FDTD, Planar, MoM3D or PO modules and generate a 3D radiation pattern data file for it. These data are stored in a specially formatted file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension, which contains columns of spherical &amp;amp;phi; and &amp;amp;theta; angles as well as the real and imaginary parts of the complex-valued far field components '''E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;''' and '''E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;'''. The &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field determine the polarization of the transmitting radiator. &lt;br /&gt;
&lt;br /&gt;
To define a directional transmitter radiator, you need to select the &amp;amp;quot;User Defined&amp;amp;quot; option in the &amp;amp;quot;Radiator&amp;amp;quot; section of the Transmitter Dialog. You can do this either at the time of creating a transmitter set, or afterwards by opening the property dialog of the transmitter set. In the &amp;amp;quot;Custom Pattern Parameters&amp;amp;quot;, click the '''Import Pattern''' button to set the path for the radiation data file. This opens up the standard Windows Open dialog, with the default file type or extension set to &amp;amp;quot;.RAD&amp;amp;quot;. Browse your folders to find the right data file. A radiation pattern file usually contains the value of &amp;amp;quot;Total Radiated Power&amp;amp;quot; in its file header. This is used by default for power calculations in the SBR simulation. However, you can check the box labeled &amp;amp;quot;'''Custom Power'''&amp;amp;quot; and enter a value for the transmitter power in Watts. EM.Cube can also rotate the imported radiation pattern arbitrarily. In this case, you need to specify the '''Rotation''' angles in degrees about the X-, Y- and Z-axes. Note that these rotations are performed sequentially and in order: first a rotation about the X-axis, then a rotation about the Y-axis, and finally a rotation about the Z-axis. &lt;br /&gt;
&lt;br /&gt;
[[File:PROP19(1).png]] [[File:PROP20(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Transmitter dialog with a user defined radiator selected.&lt;br /&gt;
&lt;br /&gt;
=== Multiple Transmitters vs. Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulations are fully coherent and 3D-polarimetric. This means that the phase and polarization of all the rays are maintained and processed during their bounces in the scene. Your propagation scene can have more than one transmitter. During an SBR simulation, all the rays emanating from all the transmitters are traced in the propagation scene. All the received rays at a given receiver location are summed coherently and vectorially. This is based on the principle of linear superposition. All the transmitters belonging to the same transmitter set have the same radiation properties. They are either parallel short dipole radiators with the same current amplitudes and phases, or parallel user defined radiators with identical radiation patterns. As these transmitters are placed at different spatial locations, they effectively form an antenna array with identical elements. The array factor is simply determined by the coordinates of the base points. If you want to have different amplitude or phases, then you need to define different transmitter sets.&lt;br /&gt;
&lt;br /&gt;
If that radiators are indeed the elements of an actual antenna array with a half wavelength spacing or so, we recommend that you import the radiation pattern of the array structure instead and replace the whole multi-radiator system with a single point transmitting radiator in your propagation scene. This case is usually encountered in MIMO systems, and using an equivalent point transmitter is an acceptable approximation because the total size of the array aperture is usually much smaller than the dimensions of your propagation scene and its representative length scales. In that case, you need to position the equivalent point radiator at the radiation center of the antenna array. This depends on the physical structure of the antenna array. However, keep in mind that any reasonable guess may still provide a good approximation without any significant error in the received ray data.    &lt;br /&gt;
&lt;br /&gt;
=== Defining Receiver Sets ===&lt;br /&gt;
&lt;br /&gt;
Receivers act as observables in a propagation scene. The objective of a SBR simulation is to calculate the far-zone electric fields and the total received power at the location of a receiver. In that sense, receivers indeed act as field observation points. You need to define at least one receiver in the scene before you can run a SBR simulation. You define the receivers of your scene by associating them with the base sets you have already defined in the project workspace. Unlike transmitters that usually one or few, a typical propagation scene may involve a large number of receivers. To generate a wireless coverage map, you need to define an array of points as your base set.    &lt;br /&gt;
&lt;br /&gt;
To define a new Receiver Set, go to the Observables section of the Navigation Tree, right click on the '''Receivers''' item and select '''Insert Receiver...''' A dialog opens up that contains a default name for the new Receiver Set as well as a dropdown list labeled '''Select Radiator Set'''. In this list you will see all the available base sets that you have already define in the project workspace. Select and designate the desired base set as the receiver set. Note that if the base set contains more than one point, all of them are designated as receivers. After defining a receiver set, the points change their color to the receiver color, which is yellow by default. The first element of the set is represented by a larger ball of the same color indicating that it is the selected receiver in the scene. The Receiver Set Dialog is also used to access individual receivers of the set for data visualization at the end of a simulation. At the end of an SBR simulation, the button labeled &amp;amp;quot;Show Ray Data&amp;amp;quot; becomes enabled. Clicking this button opens the Ray Data Dialog, where you can see a list of all the received rays at the selected receiver and their computed characteristics.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP21(1).png]] [[File:PROP22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Receiver dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Field Sensors ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|[[Propagation Module]]'s Field Sensor dialog]]&lt;br /&gt;
As an asymptotic electromagnetic field solver, the SBR simulation engine can compute the electric and magnetic field distributions in a specified plane. In order to view these field distributions, you must first define field sensor observables before running the SBR simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear. &lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.   &lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a SBR simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|E_{tot}|} = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|H_{tot}|} = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Computing Radiation Patterns In SBR ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
== Scene Discretization &amp;amp;amp; Adjustment ==&lt;br /&gt;
&lt;br /&gt;
=== The Need For Discretization Of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
In a typical SBR simulation, a ray is traced from the location of the source until it hits a scatterer. The SBR method assumes that the ray hits either a flat facet of the scatterer or one of its edges. In the case of hitting a flat facet, the specular point is used to launch new reflected and transmitted rays. The surface of the facet is treated as an infinite dielectric medium interface, at which the reflection and transmission coefficients are calculated. In the case of hitting an edge, new diffracted rays are generated in the scene. However, only those who reach a nearby receiver in their line of sight are ever taken into account. In other words, diffractions are treated locally.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to draw any type of surface or solid CAD objects under impenetrable and penetrable surface groups. Some of these objects have flat faces such as boxes, pyramids, rectangle or triangle strips, etc. Some others contain curved surfaces or curved boundaries such as cylinders, cones, etc. All the non-flat surfaces have to be discretized in the form of a collection of smaller flat facets. EM.Cube uses a triangular surface mesh generator to discretize the penetrable and impenetrable [[Surface Objects|surface objects]] of your propagation scene. This mesh generator is very similar to the ones used in EM.Cube's two other modules: MoM3D and Physical Optics (PO). &lt;br /&gt;
&lt;br /&gt;
You can build a variety of surface and [[Solid Objects|solid objects]] using EM.Cube's native &amp;amp;quot;Curve&amp;amp;quot; CAD objects like lines, polylines, circles, etc. You can use tools like Extrude, Loft, Strip-Sweep, Pipe-Sweep, etc. to transform curves into surface or [[Solid Objects|solid objects]]. '''However, keep in mind that all the &amp;amp;quot;Curve&amp;amp;quot; CAD objects are ignored by the SBR mesh generator and are therefore not sent to the simulation engine.'''&lt;br /&gt;
&lt;br /&gt;
=== Viewing SBR Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can view and examine the discretized version of your scene objects as they are sent to the SBR simulation engine. To view the mesh, click the '''Mesh''' [[File:mesh_tool.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''', or use the keyboard shortcut '''Ctrl+M'''. A triangular surface mesh of your physical structure appears in the project workspace. In this case, EM.Cube enters it mesh view mode. You can perform view operations like rotate view, pan, zoom, etc. But you cannot select objects, or move them or edit their properties. To get out of the Mesh View and return to EM.Cube's Normal View, press the '''Esc Key''' of the keyboard, or click the Mesh button of the Simulate Toolbar once again, or go to the Simulate Menu and deselect the '''Discretization &amp;amp;gt;''' '''Show Mesh''' item.&lt;br /&gt;
&lt;br /&gt;
You can adjust the mesh resolution and increase the geometric fidelity of discretization by creating more and finer triangular facets. On the other hand, you may want to reduce the mesh complexity and send to the SBR engine only a few coarse facets to model your buildings. To adjust the mesh resolution, open the Mesh Settings Dialog by clicking the '''Mesh Settings''' [[File:mesh_settings.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt;''' '''Mesh Settings...'''. This dialog provides a single parameters: '''Edge Length'''., which has a default value of 100 project units. If you are already in the Mesh View Mode and open the Mesh Settings Dialog, you can see the effect of changing the edge length using the '''Apply''' button. Click OK to close the dialog.&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules that express the default mesh density based on the wavelength, the resolution of the SBR mesh generator is expressed in project length units. The default edge length value of 100 units might be too large for non-flat objects. You may have to use a lower value to capture the curvature of your curved structures adequately. &lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-29.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Special Discretized Object Types ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, terrain objects are represented by and saved as special &amp;amp;quot;Tessellated&amp;amp;quot; objects with quadrilateral cells. This is true of terrain objects that you create yourself using EM.Cube's Terrain Generator as well as all the terrain objects that you import from external files to your project. The center of each cell represents the terrain elevation at that point. Tessellated objects are considered as discretized objects by EM.Cube and they are not meshed one more time by the SBR mesh generator. Each quadrilateral cell is divided into two triangular cells before being passed to the SBR simulation engine. Therefore, when using EM.Cube's Terrain Generator to create a new terrain object, you have to pay special attention to the resolution of the terrain object as it determines the total number of terrain facets sent to the simulation engine. A high resolution terrain, although looking better and more realistic, may easily lead to an enormous computational problem.&lt;br /&gt;
&lt;br /&gt;
You can use EM.Cube's &amp;amp;quot;Polymesh&amp;amp;quot; tool to discretize solid and surface CAD objects. You can manually control the mesh characteristics of polymesh objects including inserting new nodes on faces and edges or deleting existing nodes. In addition, EM.Cube's Solid Generator and Surface Generator tools create ploymesh solids and surfaces, respectively. Like tessellated object, polymesh objects are also considered as discretized objects by EM.Cube and they are not meshed again by the SBR mesh generator.   &lt;br /&gt;
&lt;br /&gt;
=== SBR Mesh Rules &amp;amp;amp; Considerations ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
=== Adjusting Block Elevation On Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, buildings and all other CAD objects are initially created on the XY plane by default. In other words, the Z-coordinate of the local coordinate system (LCS) of all blocks is set to zero until you change them. As long as you use the global ground, all is fine as your buildings are seated on the ground. When your propagation scene has an irregular terrain, you want to place your buildings on the terrain and not buried under it. Buildings in EM.Cube are not adjusted to the terrain elevation automatically. You need to instruct EM.Cube to do so.&lt;br /&gt;
&lt;br /&gt;
To update the building positions and adjust their elevation to the underlying terrain, right click on the '''Terrain''' item of the Navigation Tree and select '''Adjust Scene Elevation''' from the context menu. All the blocks in the scene are automatically elevated in the Z direction such that their bases sit on the terrain. In effect, all the blocks are translated along the global Z axis by proper amounts such that their local Z coordinate equals the Z-elevation of the underlying terrain object. This feature is particularly useful if you change the location of the terrain or import a new terrain after the blocks have been created.&lt;br /&gt;
&lt;br /&gt;
Note: You have to make sure that the resolution of your terrain, its fluctuation scale and building dimensions are all comparable. Otherwise, on a high-resolution, rapidly varying terrain, you will have buildings whose bottoms are in contact with the terrain only at a few points and parts of them hang in the air.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_adjust1_tn.png|400px]] [[File:prop_adjust2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Scene with Buildings and Terrain Before and After Adjusting Elevation&lt;br /&gt;
&lt;br /&gt;
=== Transmitters &amp;amp;amp; Receivers Above An Irregular Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, all the transmitters and receivers are tied up with point objects in the project workspace. These point objects are grouped and organized in base sets. When you move the point objects or change their coordinates, all of their associated transmitters or receivers immediately follow them to the new location. For example, you usually define a grid of receivers using a base set that is made up of a uniformly spaced array of points and spread them in your scene. All of these receivers have the same height because their associated base points all have the same Z-coordinate. When your receivers are located above a flat terrain like the global ground, their Z-coordinates are equal to their height above the ground, as the terrain elevation is fixed and equal to zero everywhere. The same is true for transmitters, too.   &lt;br /&gt;
&lt;br /&gt;
In many propagation modeling problems, your transmitters and receivers may be located above an irregular terrain with varying elevation across the scene. In that case, you may want to place your transmitters or receivers at a certain height above the underlying ground. The Z-coordinate of a transmitter or receiver is now the sum of the terrain elevation at the base point and the specified height. EM.Cube gives you the option to adjust the transmitter and receiver sets to the terrain elevation. This is done for individual transmitter sets and individual receiver sets. At the top of the Transmitter Dialog there is a check box labeled &amp;amp;quot;'''Adjust Tx Sets to Terrain Elevation'''&amp;amp;quot;. Similarly, at the top of the Receiver Dialog there is a check box labeled &amp;amp;quot;'''Adjust Rx Sets to Terrain Elevation'''&amp;amp;quot;. These boxes are unchecked by default. As a result, your transmitter sets or receiver sets coincide with their associated base points in the project workspace. If you check these boxes and place a transmitter set or a receiver set above an irregular terrain, the transmitters or receivers are elevated from the location of their associated base points by the amount of terrain elevation as can be seen in the figure below.   &lt;br /&gt;
&lt;br /&gt;
To better understand why there are two separate sets of points in the scene, note that a point array (CAD object) is used to create a uniformly spaced base set. The array object always preserves its grid topology as you move it around the scene. However, the transmitters or receivers associated with this point array object are elevated above the irregular terrain and no longer follow a strictly uniform grid. If you move the base set from its original position to a new location, the base points' topology will stay intact, while the associated transmitters or receivers will be redistributed above the terrain based on their new elevations.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_txrx1_tn.png|400px]] [[File:prop_txrx2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Transmitters and receivers adjusted above an uneven terrain and their associated base sets.&lt;br /&gt;
&lt;br /&gt;
== Running A SBR Simulation ==&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] offers three types of ray tracing simulations:&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
An SBR analysis is the simplest ray tracing simulation and involves the following steps:&lt;br /&gt;
&lt;br /&gt;
# Set the unit of project scene and the frequency of operation. Note that EM.Cube's default project unit is millimeter. When working with the [[Propagation Module]], pay attention to the project unit. Radio propagation problems usually require meter, mile or kilometer as the project unit.&lt;br /&gt;
# Create the blocks and draw the buildings at the desired locations.&lt;br /&gt;
# Keep the default ray domain and accept the default global ground or change its material properties.&lt;br /&gt;
# Define the base sets (at least one for the transmitter and one for the receiver).&lt;br /&gt;
# Define the transmitter and receiver(s) using the available base sets.&lt;br /&gt;
# Run the SBR simulation engine.&lt;br /&gt;
# Visualize the coverage map and plot other data.&lt;br /&gt;
&lt;br /&gt;
You can access the [[Propagation Module]]'s run dialog by clicking the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or by selecting '''Simulate &amp;amp;gt; Run...''' or using the keyboard shortcut '''Ctrl+R'''. When you click the '''Run''' button, a new window opens up that reports the different stages of the SBR simulation and indicates the progress of each stage. After the SBR simulation is successfully completed, a message pops up and prompts the completion of the process.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== SBR Simulation Parameters ===&lt;br /&gt;
&lt;br /&gt;
There are a number of SBR simulation settings that can be accessed and changed from the SBR Settings Dialog. To open this dialog, click the button labeled '''Settings''' on the right side of the '''Select Engine''' dropdown list in the Run Dialog. EM.Cube's SBR simulation engine allows you to separate the physical effects that are calculated during a ray tracing process. You can selectively enable or disable '''Ray Reflection''', '''Ray Transmission''' and '''Ray Diffraction'''. By default, all three effects are checked and included in the computations. Separating these effects sometimes help you better analyze your propagation scene and understand the impact of various blocks in the scene.&lt;br /&gt;
&lt;br /&gt;
EM.Cube requires a finite number of ray bounces for each original ray emanating from a transmitter. This is very important in situations that may involve resonance effects where rays get trapped among certain group of surfaces and may bounce back and forth indefinitely. This is set using the box labeled &amp;amp;quot;'''Max No. Ray Bounces'''&amp;amp;quot;, which has a default value of 10. Note that the maximum number of ray bounces directly affects the computation time as well as the size of output simulation data files. This can become critical for indoor propagation scenes, where most of the rays undergo a large number of reflections.   &lt;br /&gt;
&lt;br /&gt;
As rays travel in the scene and bounce from surfaces, they lose their power and their amplitudes diminish. From a practical point of view, only rays that have power above the receiver sensitivity threshold can be effectively received. Therefore, all the rays whose power fall below a specified power threshold are discarded. The '''Ray Power Threshold''' is specified in dBm and has a default value of -100dBm. Keep in mind that the value of this threshold directly affects the accuracy of the simulation results as well as the size of the output data file.&lt;br /&gt;
&lt;br /&gt;
You can also set the '''Angular Resolution''' of the transmitter rays in degrees. By default, every transmitter emanates equi-angular ray tubes at a resolution of 1 degree. Lower angular resolutions larger than 1° speed up the SBR simulation significantly, but they may compromise the accuracy. Higher angular resolutions less than 1° increase the accuracy of the simulating results, but they also increase the computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP13.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s SBR Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== The Coverage Map ===&lt;br /&gt;
&lt;br /&gt;
If the associated radiator set is isotropic, so will be the transmitter set. By default, an isotropic transmitter has vertical polarization. You can use the '''Polarization''' radio button to select one of the two options: '''Vertical''' or '''Horizontal'''. If the associated radiator set consists of '''Short Dipole''' or '''User Defined''' radiators, it is indicated in the transmitter property dialog. In the case of a short dipole radiator, you can set a value for the dipole current in Amperes. The radiation resistance of a short dipole of length ''dl'' is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; R_r = 80\pi^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:eqngr6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The radiated power of a short dipole carrying a current I&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; P_{rad} = \frac{1}{2} R_r |I_0|^2 = 40\pi^2 |I_0|^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:shortdipole.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For isotropic and user defined radiators you can set the '''Input Power''' and '''Phase''' of a transmitter set in Watts and degrees, respectively. This can be accessed from the '''Transmitter Chain''' dialog, which will be described in detail in the next section. The radiation pattern of the associated radiator set is normalized and used in conjunction with the input power value to create a weighted distribution of transmitted rays. In certain cases like hybrid simulations, you may want to use the actual values of the far field to define the transmitter power rather than a normalized radiation pattern. Note that the pattern (.RAD) file contains the value of total radiated power in its header. In this case, check the box labeled '''&amp;amp;quot;Calculate Power From Radiation Pattern&amp;amp;quot;'''. This is calculated directly from the complex &amp;amp;theta; and &amp;amp;phi; components of the far field data by integrating them over the entire space (4&amp;amp;pi; solid angle). Note that this option is available only when the radiator is of the User Defined type. When this box is checked, the transmitter chain button is grayed out. By default, an isotropic transmitter emanates rays uniformly in all directions at the angular resolution specified by the user. A transmitter with a user defined associated radiator may represent a highly directional radiation pattern with the main beam pointing in a certain direction. You can additionally force and limit the '''Angular Extents''' of rays to a certain solid angle around the transmitter. This is especially useful and computationally efficient when the transmitter is on one side of the scene, and all the scatterers and receivers are on the other side. In this case, there is no need to generate rays in all directions. To limit the angular extents of rays, define the Start and End values for both Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles. The value of the angular resolution of the rays can be changed from the Run Dialog as will be discussed later.&lt;br /&gt;
&lt;br /&gt;
In a regular SBR simulation, you have a transmitter and one or more arrays of receivers in your scene. At the end of the simulation, you can visualize the coverage map of the transmitter over the receiver sets. A coverage map shows the total '''Received Power''' by each of the receivers and is visualized as a color-coded intensity plot. You can visualize the coverage maps of individual receiver sets. At the end of a SBR simulation, each Received Power Coverage Map is listed under the receiver set's name in the Navigation Tree. To display a coverage map, simply click on its entry in the Navigation Tree. The coverage map plot appears in the Main Window overlaid on the scene. A legend box on the right shows the color scale and units (dB). The 3-D coverage maps are displayed as horizontal confetti above the receivers. If the receivers are packed close to each other, you will see a continuous confetti map. If the receivers are far apart, you will see individual colored squares. You can also visualize coverage maps as colored 3-D cubes. This may be useful when you set up your receivers in a vertical arrangement or the scene has a highly uneven terrain. To change the type of coverage map visualization, open the receiver set's property dialog and select the desired option for '''Coverage Map: Confetti''' or '''Cube''' in the '''&amp;amp;quot;Visualization Options&amp;amp;quot;''' section of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run11_tn.png|400px]] [[File:prop_run12_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Received power coverage map: (Left) confetti style, and (Right) cube style.&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the coverage map by right clicking on its entry in the Navigation Tree and selecting '''Properties...''' or by double-clicking on the legend box. In the Output Plot Settings dialog, you can choose from one of three Color Map options: '''Default''', '''Rainbow''' and '''Grayscale'''. The visualization plot uses default values for the color scale. In the section titled &amp;amp;quot;Limits&amp;amp;quot;, you can choose the radio button labeled '''User Defined'''. Then, you have to enter new values for the '''Lower''' and '''Upper''' Limits of the plot. You can also show or hide the Legend Box or change its '''Background''' and '''Foreground''' colors by clicking the buttons provided for this purpose.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run4.png]]&lt;br /&gt;
&lt;br /&gt;
Output Plot Settings&lt;br /&gt;
&lt;br /&gt;
=== The Ray Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a SBR simulation, each receiver receives a number of rays. Some receivers may not receive any rays at all. You can visualize all the rays received by a certain receiver from the active transmitter of the scene. To do this, right click the '''Receivers''' item of the Navigation Tree. From the context menu select '''Show Received Rays'''. All the rays received by the currently selected receiver of the scene are displayed in the scene. The rays are identified by labels, are ordered by their power and have different colors for better visualization. You can display the rays for only one receiver at a time. The receiver set property dialog has a list of all the individual receivers belonging to that set. To display the rays received by another receiver, you have to change the '''Selected Receiver''' in the receiver set's property dialog. If you keep the mouse focus on this dropdown list and roll your mouse scroll wheel, you can scan the selected receivers and move the rays from one receiver to the next in the list. To remove the visualized rays from the scene, right click the Receivers item of the Navigation Tree again and from the context menu select '''Hide Received Rays'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run5_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Visualization of received rays at the location of the selected receiver.&lt;br /&gt;
&lt;br /&gt;
You can also view the ray parameters by opening the property dialog of a receiver set. By default, the first receiver of the set is always selected. You can select any other receiver from the drop-down list labeled '''Selected Receiver'''. If you click the button labeled '''Show Ray Data''', a new dialog opens up with a table that contains all the received rays at the selected receiver and their parameters:&lt;br /&gt;
&lt;br /&gt;
* Delay is the total time delay that a ray experiences travelling from the transmitter to the receiver after all the reflections, transmissions and diffractions and is expressed in nanoseconds.&lt;br /&gt;
* Ray Field is the received electric field at the receiver location due to a specific ray and is given in dBV/m.&lt;br /&gt;
* Ray Power is the received power at the receiver due to a specific ray and is given in dBm.&lt;br /&gt;
* Angles of Arrival are the &amp;amp;theta; and &amp;amp;phi; angles of the incoming ray at the local spherical coordinate system of the receiver.&lt;br /&gt;
&lt;br /&gt;
The Ray Data Dialog also shows the '''Total Received Power''' in dBm and '''Total Received Field''' in dBV/m due to all the rays received by the receiver. You can sort the rays based on their delay, field, power, etc. To do so, simply click on the grey column label in the table to sort the rays in ascending order based on the selected parameter. You can also select any ray by clicking on its '''ID''' and highlighting its row in the table. In that case, the selected rays is highlighted in the Project Workspace and all the other rays become thin (faded).&lt;br /&gt;
&lt;br /&gt;
Note: The rays are summed up coherently at the receiver.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run6_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Analyzing a selected ray from the ray data dialog.&lt;br /&gt;
&lt;br /&gt;
=== Plotting Other Simulation Results ===&lt;br /&gt;
&lt;br /&gt;
Besides visualizing the coverage map and received rays in the EM.CUBE's [[Propagation Module]], you can also plot the '''Path Loss''' of all the receivers belonging to a receiver set as well as the '''Power Delay Profile''' of individual receivers. To plot these data, go the '''Observables''' section of the Navigation Tree and right click on the '''Receivers''' item. From the context menu, select '''Plot Path Loss''' or '''Plot Power Delay Profile''', respectively. The path loss data between the active transmitter and all the receivers belonging to a receiver set are plotted on a Cartesian graph. The horizontal axis of this graph represents the index of the receiver. Power Delay Profile is a bar chart that plots the power of individual rays received by the currently selected receiver versus their time delay. If there is a line of sight (LOS) between a transmitter and receiver, the LOS ray will have the smallest delay and therefore will appear first in the bar chart. Sometimes you may have several rays arriving at a receiver at the same time, i.e. all with the same delay, but with different power level. These will appear as stacked bars in the chart.&lt;br /&gt;
&lt;br /&gt;
You can also plot the path loss and power delay profile graphs and many others from EM.CUBE's data manager. You can open data manager by clicking the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or by selecting '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or by right clicking on the '''Data Manager''' item of the Navigation Tree and selecting Open Data Manager... from the contextual menu or by using the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the theta and phi angles of arrival and departure of the selected receiver. You can select any data file by clicking and highlighting its '''ID''' in the table and then clicking the '''Plot''' button.&lt;br /&gt;
&lt;br /&gt;
=== Output Data Files ===&lt;br /&gt;
&lt;br /&gt;
At the end of an SBR simulation, the results are written into a main output data file with the reserved name of SBR_Results.RTOUT. This file has the following format:&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Receiver Number&lt;br /&gt;
* Receiver Base X, Y , Z Coordinates&lt;br /&gt;
* Receiver Height&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
Number of Rays&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Ray Number&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Arrival in deg&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Departure in deg&lt;br /&gt;
* Delay in nsec&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''') &amp;amp;amp; Imag('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''')&lt;br /&gt;
* Power&lt;br /&gt;
&lt;br /&gt;
The angles of arrival are the &amp;amp;theta; and &amp;amp;phi; angles of a received ray measured in degrees and are referenced in the spherical coordinate systems centered at the location of the receiver. The angles of departure for a received ray are the &amp;amp;theta; and &amp;amp;phi; angles of the originating transmitter ray, measured in degrees and referenced in the spherical coordinate systems centered at the location of the active transmitter, which eventually arrives at the receiver. The total time delay is measured in nanoseconds between t = 0 nsec at the time of launch from the transmitter location till being received at the receiver location. The last four columns show the real and imaginary parts of the received electric fields with vertical and horizontal polarizations, respectively. The complex field values are normalized in a way that when their magnitude is squared, it equals the received ray power. If the active transmitter is an isotropic radiator with either a vertical or horizontal polarization, then the field components corresponding to the other polarization will have zero entries in the output data file.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run8_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A typical SBR output data file.&lt;br /&gt;
&lt;br /&gt;
=== Running A Frequency Sweep With SBR ===&lt;br /&gt;
&lt;br /&gt;
By default, you run a single-frequency simulation in EM.CUBE's [[Propagation Module]]. You set the operational frequency of a SBR simulation in the project's '''Frequency Dialog''', which can be accessed in a number of ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''Frequency''' [[File:freq_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]]'''Frequency Settings...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+F'''.&lt;br /&gt;
# By double clicking the frequency section (box) of the '''Status Bar'''.&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
[[File:prop_freq.png]]    [[File:prop_run10.png]]&lt;br /&gt;
&lt;br /&gt;
(Left) Project's frequency dialog and (Right) the frequency settings dialog.&lt;br /&gt;
&lt;br /&gt;
You can also select the '''Frequency Sweep''' option in the '''Simulation Mode''' drop-down list of the '''Run Dialog'''. Click the '''Settings...''' button on the right side of this dropdown list to open up the Frequency Settings Dialog. Based on the original values of the project center frequency and bandwidth, the '''Start Frequency''' and '''End Frequency''' have default values. You can also change the '''Number of Samples'''. Once you click the '''Run''' button, EM.CUBE performs a frequency sweep by assigning each of the frequency samples as the current operational frequency and running the SBR simulation engine at that frequency. All the simulation data at all frequency samples are saved into the output data files including &amp;amp;quot;SBR_results.RTOUT&amp;amp;quot;. After the completion of a frequency sweep simulation, as many coverage maps as the number of frequency samples are generated and added to the Navigation Tree under the Receiver Set's entry. You can click on each of the coverage maps corresponding to each of the frequency samples and visualize it in the project workspace. You can also animate the coverage maps. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. The coverage maps start to animate by their order on the Navigation Tree. Once the entire list is displayed sequentially, it starts all over again from the beginning of the list. During the animation, the '''Animation Controls''' dialog appears at the lower right corner of the screen. This dialog has a number of buttons for pause/resume, step forward/backward, and step to the end/start. The title of each coverage map is shown in the box labeled '''Sample''' as it is displayed in the main window. You can also change the speed of animation. The default frame duration has a value of 300 (3x100) milliseconds. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run13.png]]    [[File:prop_run14.png]]&lt;br /&gt;
&lt;br /&gt;
Multiple coverage maps on the Navigation Tree at the end of a frequency sweep and starting an animation from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run15_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Animation controls dialog in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep with SBR ===&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run24.png|thumb|300px|EM.CUBE's variable dialog]]&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run23.png|thumb|250px|Dialog for defining new variables]]&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE, all the CAD object properties as well as certain source, material and mesh parameters can be assigned as [[variables]]. [[Variables]] are defined to control and vary the values of such parameters either for editing purposes or to run parametric sweep or [[optimization]]. Variable are defined using the '''[[Variables]] Dialog''', which can be accessed in the three ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''[[Variables]]''' [[File:variable_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]] '''[[Variables]]...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+B'''.&lt;br /&gt;
&lt;br /&gt;
The [[variables]] dialog is initially empty. To add a new variable, click the '''Add''' button to open up the '''Add Variable/Syntax Dialog'''. In this dialog you have to type in a name for the new variable and choose a type. The default type is '''Uniformly Spaced Samples'''. You also need to specify the '''Start''', '''Stop''' and '''Step''' values for the variable. In the figure below, a variable called &amp;amp;quot;Tx_Height&amp;amp;quot; is defined that varies between 2 and 10 with equal steps of 2. This means the sample set {2,4,6,8,10}. When you return to the [[variables]] dialog, the syntax of the new variable is shown as 2:10:2. The last number in this syntax is always the variable step. In this example, this variable is going to be used to control the height of the transmitter in a propagation scene.&lt;br /&gt;
&lt;br /&gt;
Next, you have to attach the variable to the CAD object. In this case, the CAD object is the point object that represents the transmitter's radiator. To attach a variable to a CAD object, open the object's property dialog and type in the name of the variable as the value of a property or parameter. In this case, the variable Tx_Height is going to control the Z-Coordinate of the point object. Once the value of the object parameter is replaced by the name of an already defined variable, it is updated with the current value of that variable. In the case of a variable of &amp;amp;quot;Uniformly Spaced Samples&amp;amp;quot; type, the current value is the start value. This value will be incrementally varied during a parametric sweep simulation process. Note that a variable can take a fixed value or a discrete set of values, too. You can always open the [[variables]] dialog and change the value or syntax of any variable. To make a new or modified value effective, click the '''Apply''' button of the [[variables]] dialog. You can test the values by performing a '''Dry Run''' of the selected variable. This runs an animation of the project workspace as the value of the variable changes and all the related CAD objects are updated accordingly. Note that you can attach the same variable to more than one CAD object property or to the properties of different objects. You can also define multiple values or syntaxes to the same variable. To do so, open the '''Add Variable/Syntax Dialog''', and instead of typing in a new variable name, choose an existing variable name from the '''Name''' dropdown list. This will add a new value or syntax to the existing syntax(es) of the selected variable. When you return to the [[variables]] dialog, [[variables]] with more than one value or syntax will have a dropdown list in the '''Syntax''' column. You can choose any of these values or syntaxed at any time and make the change effective by clicking the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run25.png]]&lt;br /&gt;
&lt;br /&gt;
Replacing the value of a CAD object parameter with a variable name.&lt;br /&gt;
&lt;br /&gt;
To run a parametric sweep, open the '''Run Dialog''' and select the '''Parametric Sweep''' option in the '''Simulation Mode''' drop-down list. If you have not defined any [[variables]] in the project, the box in the '''[[Variables]]''' row before the '''View''' will be red. You have to turn it into green before you can run a simulation. By clicking the '''View''' button, you can open up the [[variables]] dialog from here. Once you click the '''Run''' button, EM.CUBE performs a parametric sweep by incrementally varying the values of all the defined [[variables]] from their start to stop values at the specified steps and updating all the related CAD objects. After the completion of a parametric sweep simulation, as many coverage maps as the total number of variable samples are generated and added to the Navigation Tree under the receiver set's entry. You can click on each of the coverage maps and visualize it in the project workspace. You can also animate the coverage maps sequentially. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run26.png]]&lt;br /&gt;
&lt;br /&gt;
Choosing parametric sweep as the simulation mode in the run dialog. Note that one variable has been defined and EM.CUBE is ready to run the simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run27_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The coverage map of the scene at the end of a parametric sweep where the sweep variable is the transmitter height.&lt;br /&gt;
&lt;br /&gt;
=== Statistical Analysis of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's coverage maps display the received power at the location of all the receivers. The receivers together from a set/ensemble, which might be uniformly spaced or distributed across the propagation scene or may consist of randomly scattered radiators. Every coverage map shows the '''Mean''' and '''Standard Deviation''' of the received power for all the receivers involved. These information are displayed at the bottom of the coverage map's legend box and are expressed in dB.&lt;br /&gt;
&lt;br /&gt;
In the [[Propagation Module]], when you ran a sweep simulation (frequency, transmitter or parametric), you also have the option to generate two additional coverage maps: one for the mean of all the individual sample coverage maps and another for their standard deviation. To do so, in the '''Run Dialog''', check the box labeled '''&amp;amp;quot;Create Mean and Standard Deviation Coverage Maps&amp;amp;quot;'''. Note that the mean and standard deviation values displayed on the individual coverage maps correspond to the spatial statistics of the receivers in the scene, while the mean and standard deviation coverage maps correspond to frequency, transmitter or variable sets defined for the sweep simulation. Also, note that both of the mean and standard deviation coverage maps have their own spatial mean and standard deviation values expressed in dB at the bottom of their legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run21_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The mean coverage map at the end of a transmitter sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run22_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The standard deviation coverage map at the end of a transmitter sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Picasso</id>
		<title>EM.Picasso</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Picasso"/>
				<updated>2013-06-14T20:00:19Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Probe Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Picasso® is a versatile planar structure simulator for modeling and design of printed antennas, planar microwave circuits, and layered periodic structures. EM.Picasso's simulation engine is based on a 2.5-D full-wave Method of Moments (MoM) formulation that provides the ultimate modeling accuracy and computational speed for open-boundary multilayer structures. It can handle planar structures with arbitrary numbers of metal layouts, slot traces, vertical interconnects and lumped elements interspersed among different substrate layers. You can use EM.Picasso to model large finite-sized antenna arrays as well as infinite periodic structures such as frequency selective surfaces.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Picasso has been successfully used by numerous users around the globe in industry, academia and government. The new EM.Picasso 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has introduced far more powerful CAD utilities, greater geometrical variety, and a vast array of capabilities like parametric sweep, [[optimization]], data visualization and post-processing computations. The new foundation also facilitates import and export of many popular CAD formats and provides a seamless interface with our other simulation tools.&lt;br /&gt;
&lt;br /&gt;
== A Planar Method Of Moments Primer ==&lt;br /&gt;
&lt;br /&gt;
The Method of Moments (MoM) is a rigorous, full-wave numerical technique for solving open boundary electromagnetic problems. Using this technique, you can analyze electromagnetic radiation, scattering and wave propagation problems with relatively short computation times and modest computing resources. The method of moments is an integral equation technique; it solves the integral form of Maxwell’s equations as opposed to their differential forms that are used in the finite element or finite difference time domain methods.&lt;br /&gt;
&lt;br /&gt;
In a planar MoM simulation, the background structure is usually a layered planar structure that consists of one or more laterally infinite material layers. In EM.Cube’s [[Planar Module]], the layered structure is stacked along the Z axis. In other words, the dimensions of the layers are infinite along the X and Y axes. Metallic traces are placed at the boundaries between the substrate or superstrate layers. These are modeled by perfect electric conductor (PEC) traces or conductive sheet traces of finite thickness and finite conductivity. Some layers might be separated by infinite perfectly conducting ground planes. The two sides of a ground plane can be electromagnetically coupled through one or several slots or apertures. Such slots or apertures are modeled by magnetic currents and are realized and represented by perfectly magnetic conductor (PMC) traces. Furthermore, the metallic traces can be interconnected or connected to ground planes using embedded objects. Such objects can be used to model circuit vias, plated-through holes or dielectric inserts. These are modeled as volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
The currents in a planar MoM simulation are discretized as a collection of elementary currents with small finite spatial extents. These elementary currents are called basis functions and obviously have a vectorial nature. The total currents (solution of the problem) are summations of these elementary currents. The basis functions are well defined and easy to calculate; however, their amplitudes are initially unknown in a MoM problem. Through the planar MoM solution, you find these unknown amplitudes. Once the total currents are known, you can calculate the fields everywhere in the structure.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Green’s Functions ===&lt;br /&gt;
&lt;br /&gt;
The Green’s functions are the solutions of boundary value problems when they are excited by an elementary source. This is usually assumed to be an infinitesimally small vectorial point source. In order for Green’s functions to be computationally useful, they must have analytical closed forms like a mathematical expression, or one should be able to compute them using a recursive process. It turns out that only very few boundary value problems have closed-form Green’s functions. Planar layered structures with laterally infinite extents are one of those few cases, which can be represented by recursive dyadic Green's functions.&lt;br /&gt;
&lt;br /&gt;
In general, a structure may support both electric ('''J''') and magnetic ('''M''') currents. The total electric ('''E''') and magnetic ('''H''') fields can be expressed in terms of the electric and magnetic currents in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;E = E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;H = H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''GH&amp;lt;sub&amp;gt;M&amp;lt;/sub&amp;gt;''' are the dyadic Green’s functions for the electric and magnetic currents due to electric and magnetic current source, respectively, and '''E&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' and '''H&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' are the incident or impressed electric and magnetic fields, respectively. In these equations, '''r''' is the position vector of the observation point and '''r'''' is the position vector of the source point. V is the volume that contains all the sources and the volume integration is performed with respect to the primed coordinates. The incident or impressed fields provide the excitation of the structure. They may come from an incident plane wave or a gap source on a microstrip line, a short dipole, etc. The complexity of the Green’s functions depends on what is considered as the background structure. If you remove all the unknown currents from the structure, you are left with the background structure.&lt;br /&gt;
&lt;br /&gt;
=== Planar Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
To derive a system of integral equations, we enforce the boundary conditions on the integral definitions of the '''E''' and '''H''' fields as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_E(E) = L_E \bigg\{ E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_H(H) = L_H \bigg\{ H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM4(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' is the boundary value operator for the electric field and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' is the boundary value operator for the magnetic field. For example, '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E'''field vanish on perfect conductors:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = 0, \quad \mathbf{r} \in PEC &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM65.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E''' and '''H''' fields be continuous across an aperture in a perfect ground plane:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{E}^+ - \mathbf{E}^-) = 0 \\&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{H}^+ - \mathbf{H}^-) = 0&lt;br /&gt;
\end{cases} &lt;br /&gt;
\quad \Rightarrow \quad&lt;br /&gt;
\mathbf{M}^+(r) = \mathbf{M}^-(r), \quad r \in PMC&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM66(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the fact that the dyadic Green’s functions and the incident or impressed fields are all known, one can solve the above system of integral equations to find the unknown currents '''J''' and '''M'''.&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE's [[Planar Module|Planar module]], magnetic currents are always surface current with units of V/m. Electric currents, however, can be surface currents with units of A/m as in the case of metallic traces like microstrip lines, or they can be volume currents with units of A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; as in the case of perfectly conducting vias. Dielectric inserts are modeled as volume polarization currents that are related to the electric field '''E''' in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J}_p(r) = jk_0 Y_0(\varepsilon_r - \varepsilon_b)\mathbf{E}(r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant, &amp;lt;math&amp;gt;Y_0 = \tfrac{1}{Z_0} = \tfrac{1}{120\pi}&amp;lt;/math&amp;gt; is the free space intrinsic admittance, &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is the permittivity of the dielectric insert, and &amp;amp;epsilon;&amp;lt;sub&amp;gt;b&amp;lt;/sub&amp;gt; is the permittivity of its background layer. In a 2.5-D formulation, it is assumed that the volume currents have only a vertical component along the Z direction, and their circumferential components are negligible.&lt;br /&gt;
&lt;br /&gt;
=== Numerical Solution Of Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
The planar integral equations derived earlier can be solved numerically by discretizing the unknown currents using a proper meshing scheme. The original functional equations are reduced to discretized linear algebraic equations over elementary cells. The unknown quantities are found by solving this system of linear equations, and many other parameters can be computed thereafter. This method of numerical solution of integral equations is known as the Method of Moments (MoM). In this method, the unknown electric and magnetic currents are represented by expansions of basis functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;J(r) = \sum_{n=1}^N I_n^{(J)} f_n^{(J)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;M(r) = \sum_{k=1}^K V_k^{(M)} f_k^{(M)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_k^{(M)}&amp;lt;/math&amp;gt; are the generalized vector basis functions for the expansion of electric and magnetic currents, respectively, and &amp;lt;math&amp;gt;I_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;V_k^{(M)}&amp;lt;/math&amp;gt; are the unknown amplitudes of these basis functions, which have to be determined. Substituting these expansions into the integral equations generates a set of discretized integral equations, which can further be converted to a system of linear algebraic equations. This is accomplished by testing the discretized integral equations using the a set of test functions. In the method of moments, the Galerkin technique is typically used, which chooses the expansion basis functions as test functions. This leads to the following linear system:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
Z^{(EJ)} &amp;amp; T^{(EM)} \\&lt;br /&gt;
U^{(HJ)} &amp;amp; Y^{(HM)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
\cdot&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
I^{(J)} \\&lt;br /&gt;
V^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
=&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
V^{(E)} \\&lt;br /&gt;
I^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(EJ)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot &lt;br /&gt;
\iiint\limits_{V_j} dv' \overline{\overline{G}}_{EJ}(r|r') \cdot f_i^{(J)}(r')&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_i^{(E)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot E^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_i^{(H)} = \iiint\limits_{V_i} dv f_i^{(M)}(r) \cdot H^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similar expressions can be derived for the T&amp;lt;sup&amp;gt;(EM)&amp;lt;/sup&amp;gt;, U&amp;lt;sup&amp;gt;(HJ)&amp;lt;/sup&amp;gt; and Y&amp;lt;sup&amp;gt;(HM)&amp;lt;/sup&amp;gt;elements of the MoM matrix.&lt;br /&gt;
&lt;br /&gt;
=== Discretization Of Electric &amp;amp;amp; Magnetic Currents ===&lt;br /&gt;
&lt;br /&gt;
The right choice of the basis functions to represent the elementary currents is very important. It will determine the accuracy and computational efficiency of the resulting numerical solution. Rooftop basis functions are one of the most popular types of basis functions used in a variety of MoM formulations. The surface currents (whether electric or magnetic) are discretized using 2D rooftop basis functions shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image055_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Rooftop or RWG basis functions built over two rectangular, triangular or mixed cells.&lt;br /&gt;
&lt;br /&gt;
The rooftop basis functions are defined over two adjacent cells with a common edge of length. If the two cells are triangular, then the so-called RWG functions are obtained. It is also possible to define rooftop functions over two adjacent rectangular cells or two adjacent rectangular and triangular cells with a common edge. On a rectangular cell, the function is defined as having a (descending or ascending) linear profile in one direction and a constant profile in the other perpendicular direction.&lt;br /&gt;
&lt;br /&gt;
The volume polarization currents in 2.5-D MoM have a vertical direction along the Z-axis. These are discretized using prismatic basis functions that have either a rectangular or triangular base with a constant profile along the Z-axis.&lt;br /&gt;
&lt;br /&gt;
[[File:image065_tn.png]][[File:image066_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Prismatic basis functions built over single triangular and rectangular cells.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Planar Structure ==&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM14.png|thumb|350px|A typical planar layered structure]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] is intended for constructing and modeling planar layered structures. By a planar structure we mean one that contains a background substrate of laterally infinite extents, made up of one or more material layers all stacked up vertically along the Z axis. Objects of finite size are then interspersed among these substrate layers. This is somehow different than EM.Cube's other computational modules, which are geared for handling arbitrary 3D structures.&lt;br /&gt;
&lt;br /&gt;
In [[Planar Module]], the background structure, called &amp;amp;quot;'''Layer Stack-up'''&amp;amp;quot;, may involve one or more material layers of infinite extents along the X and Y axes but of finite thickness along the Z axis. When you start a new project, the background structure has a single vacuum layer. The layer stack-up is always terminated from the top and bottom by two infinite half-spaces. The terminating half-spaces might be the free space, or a perfect conductor (PEC ground), or any material medium. Most planar structures used in RF and microwave applications such as microstrip-based components have a PEC ground at their bottom. EM.Cube's default stack-up has a vacuum top half-space and a PEC bottom half-space. Some structures like stripline components require two bounding PEC grounds at both top and bottom.&lt;br /&gt;
&lt;br /&gt;
The finite-sized objects of a planar structure may include metal traces, slots and apertures, vertical vias and interconnects, or dielectric inserts including air voids inside the substrate layers. Metal traces are modeled as electric surface currents. These are planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on metal (PEC) traces and placed at the boundary (interface) plane between two substrate layers. Slots and apertures are modeled as magnetic surface currents on the surface of an infinite PEC plane and provide electromagnetic coupling between its top and bottom sides. These, too, are constructed using planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on slot (PMC) traces and placed at the boundary (interface) plane between two substrate layers. EM.Cube's [[Planar Module]] also allows prismatic objects that can be modeled by electric volume currents. These include vertical vias and dielectric inserts, and are called embedded object sets. [[Planar Module|Planar module]] does not allow construction of 3D CAD objects. Instead, you draw the cross section of prismatic objects as planar [[Surface Objects|surface objects]] parallel to the XY plane. EM.Cube then automatically extrudes these cross sections and constructs and displays 3D prisms over them. The prisms extend all the way across the thickness of the host substrate layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:PMOM14.png]]&lt;br /&gt;
Figure 1: A typical planar layered structure.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Defining Layer Stack-Up ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube’s [[Planar Module]], there is always a default background structure that consists of a finite vacuum layer sandwiched between a vacuum top half-space and a PEC bottom half-space. Every time you enter the [[Planar Module|Planar module]], the '''Stack-up Settings Dialog''' opens up. This is where you define the entire background structure. Once you close this dialog, you can open it again by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Layer Stack-up Settings...''' from the contextual menu. Or alternatively, you can select the menu item '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Layer Stack-up Settings...'''&lt;br /&gt;
&lt;br /&gt;
The Stack-up Settings dialog has two tabs: '''Layer Hierarchy''' and '''Embedded Sets'''. The Layer Hierarchy tab has a table that shows all the background layers in hierarchical order from the top half-space to the bottom half-space. It also lists the material label of each layer, Z-coordinate of the bottom of each layer, its thickness (in project units) and material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). There is also a column that lists the names of embedded object sets inside each substrate layer, if any.&lt;br /&gt;
&lt;br /&gt;
You can add new layers to your project's stack-up or delete its layers, or move layers up or down and thus change the layer hierarchy. To add a new background layer, click the arrow symbol on the '''Insert...'''button at the bottom of the dialog and select '''Substrate Layer''' from the button's dropdown list. A new dialog opens up where you can enter a label for the new layer and values for its material properties and thickness in project units.&lt;br /&gt;
&lt;br /&gt;
You can delete a layer by selecting its row in the table and clicking the '''Delete''' button. To move a layer up and down, click on its row to select and highlight it. Then click either the '''Move Up''' or '''Move Down''' buttons consecutively to move the selected layer to the desired location in the stack-up. Note that you cannot delete or move the top or bottom half-spaces.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM8(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Editing Substrate Layers ===&lt;br /&gt;
After creating a substrate layer, you can always edit its properties in the Layer Stack-up Settings dialog. Click on any layer's row in the table to select and highlight it and then click the '''Edit''' button. The substrate layer dialog opens up, where you can change the layer's label and assigned color. In the material properties section of the dialog, you can change the name of the material and its properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). To define electrical losses, you can either assign a value for electric conductivity (s), or alternatively, define a loss tangent for the material. In the latter case, check the box labeled &amp;amp;quot;'''Specify Loss Tangent'''&amp;amp;quot; and enter a value for it. In this case, the electric conductivity field becomes greyed out and reflects the corresponding s value at the center frequency of the project.&lt;br /&gt;
&lt;br /&gt;
You can also set the thickness of the substrate layer in the project units. Note that you cannot change the thickness of the top and bottom half-spaces. You can only change their material properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM9.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Substrate Layer dialog.&lt;br /&gt;
&lt;br /&gt;
You can also use EM.Cube's Material List to define the material properties of a substrate layer. In the Substrate Layer Dialog, click the '''Material''' button to open the '''Material List'''. In the Material List Dialog, pick any material or type the first letter of a material to highlight it. Then click the '''OK''' button or simply hit the '''Enter''' key of your keyboard to close the list and return to the substrate layer dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM10.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Materials dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Object Types ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] groups objects by their material and electromagnetic properties. Each object group shares the same color and same position in the layer stack-up. All the planar objects belonging to the same trace are located on the same substrate layer boundary. All the prismatic objects belonging to the same embedded set lie inside the same substrate layer and have the same material composition. Theoretically speaking, all the objects belonging to a group are governed by the same boundary conditions. EM.Cube’s [[Planar Module]] currently provides the following types of objects for building a planar layered structure:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC) Traces:''' These represent infinitesimally thin metallic objects that are deposited or metallized on or between substrate layers. PEC objects are modeled by surface electric currents that satisfy the PEC boundary condition.&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC) Traces:''' These are used to model slots and apertures in infinite PEC ground planes. PMC objects are always assumed to lie on an infinite horizontal PEC ground plane with zero thickness. They are modeled by surface magnetic currents, enforcing the continuity of tangential fields across the slots or apertures.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metals. They have a finite conductivity and a very small thickness. A surface impedance boundary condition is enforced on the surface of such traces.&lt;br /&gt;
# '''PEC Via Sets:''' These are metallic objects such as shorting pins, interconnect vias, plated-through holes, etc. that are grouped together as prismatic object sets. The embedded objects are modeled as vertical volume conduction currents.&lt;br /&gt;
# '''Embedded Dielectric Sets:''' These are prismatic dielectric objects inserted inside a substrate layer. You can define a finite permittivity and conductivity for such objects, but their height is always the same as the height of their host layer. The embedded dielectric objects are modeled as vertical volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
=== Defining Traces &amp;amp;amp; Object Sets ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]], the project workspace looks empty, and there are no finite objects in it. However, a default background structure is always assumed to exist by default. Objects are defined as part of traces or embedded sets. Once defined, you can see a list of project objects in the '''Physical Structure''' section of the Navigation Tree. Traces and object sets can be defined either from Layer Stack-up Settings dialog or from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
In the '''Layer Stack-up Settings''' dialog, you can add a new trace to the stack-up by clicking the arrow symbol on the '''Insert''' button of the dialog. You have to choose from '''Metal (PEC)''', '''Slot (PMC)''' or '''Conductive Sheet''' options. A respective dialog opens up, where you can enter a label and assign a color other than default ones. Once a new trace is defined, it is added, by default, to the top of the stack-up table underneath the top half-space. From here, you can move the trace down to the desired location on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Every time you define a new trace, it is also added under the respective category in the Navigation Tree. Alternatively, you can define a new trace from the Navigation Tree by right clicking on one of the trace type names and selecting '''Insert New PEC Trace...'''or '''Insert New PMC Trace...'''or '''Insert New Conductive Sheet Trace...'''A respective dialog opens up for setting the trace properties. Once you close this dialog, it takes you directly to the Layer Stack-up Settings dialog so that you can set the right position of the trace on the stack-up.&lt;br /&gt;
&lt;br /&gt;
=== Drawing Planar Objects ===&lt;br /&gt;
&lt;br /&gt;
As soon as you start drawing geometrical objects in the project workspace, the Physical Structure section of the Navigation Tree gets populated. The names of traces are added under their respective trace type category, and the names of objects appear under their respective trace group. At any time, one and only one trace is active in the project workspace. An active trace is where all the new objects you draw belong to. When you define a new trace, it is set as active and you can immediately start drawing new objects on that trace. You can also set any trace active at any time by right clicking its name on the Navigation Tree and selecting '''Activate''' from the contextual menu. The name of the active trace is always displayed in bold letter in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM13.png]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] has a special feature that makes construction of planar structures quite easy and straightforward. '''The active work plane of the project workspace is always set at the plane of the active trace.''' In EM.Cube's other modules, all objects are drawn in the XY plane (z = 0) by default. In [[Planar Module]], all new objects are drawn on a horizontal plane that is located at the Z-coordinate of the currently active trace. As you change the active trace or add a new trace, you will also change the active work plane.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Metallic Traces ===&lt;br /&gt;
&lt;br /&gt;
A trace is a group of finite-sized planar objects that have the same conductive properties and same Z-coordinate. In other words, they are located on the same horizontal plane, or at the same vertical level on the layer stack-up. You can define two types of metallic traces in the [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
# '''PEC Traces:''' These represent perfect conductor objects that have zero thickness and no editable material properties.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metal objects. They have a very small finite thickness t and a finite conductivity s.&lt;br /&gt;
&lt;br /&gt;
The conductive sheet traces are modeled using the surface impedance boundary condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = -Z_s\mathbf{J_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM17(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;Z_s&amp;lt;/math&amp;gt; is the surface impedance of the conductive sheet. If the thickness of the sheet is greater than the skin depth of the metal at the project frequency, then the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1+j}{\sigma \delta}, \quad \delta = \sqrt{\dfrac{2}{k_0 Z_0 \sigma}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM18.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the thickness t of the sheet is less than the skin depth, then the conductive sheet transition boundary condition is used instead, and the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1}{[j k_0 Y_0 (\varepsilon_r - 1) + \sigma] \tau} = \dfrac{1}{\sigma_{tot} \tau} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM19(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]] with no traces defined, if you simply draw a new object, a default PEC trace is created and added to the Navigation Tree to hold that object. Alternatively, you can define your own new traces from the Layer Stack-up Settings dialog or directly from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
NOTE: Two or more PEC and conductive sheet traces can coexist at the same Z-coordinate. In this case, the Layer Stack-up Settings dialog shows these trace rows stacked up on top of each other between their common top and bottom substrate layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM15.png]] [[File:PMOM16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PEC and Conductive Sheet Trace dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Slot Traces ===&lt;br /&gt;
&lt;br /&gt;
Slots and apertures are cut-out and removed metal in an infinite perfectly conducting (PEC) ground plane. When a slot is excited, tangential electric fields are formed on the aperture, which can be modeled as finite magnetic surface currents confined to the area of the slot. Therefore, instead of modeling the electric surface currents on the PEC ground around the slot, one can alternatively model the finite-extent magnetic surface currents on PMC traces. In EM.Cube's [[Planar Module]], you define slot objects under PMC traces. A PMC trace at a certain Z-plane implies the presence of an infinite PEC plane at that Z-coordinate. Therefore, you do not need to define an additional PEC plane at that location on the layer stack-up. The slot (PMC) objects provide the electromagnetic coupling between the two sides of this infinite ground plane. By the same token, you cannot place a PEC trace and a PMC trace at the same Z-level, as the latter's ground will short the former. However, you can define two or more PMC traces at the same Z-plane. In this case, all the slot objects lie on the same infinite PEC ground plane. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM20.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PMC Trace dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Embedded Object Sets ===&lt;br /&gt;
&lt;br /&gt;
Embedded object sets represent short material insertions inside substrate layers. They can be metal or dielectric. Metallic embedded objects can be used to model vias, plated-through holes, shorting pins and interconnects. These are called PEC via sets. Embedded dielectric objects can be used to model air voids, thin films and material inserts in metamaterial structures. Embedded magnetic object are not currently supported by EM.Cube’s [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Embedded objects can be defined either from the Layer Stack-up Settings dialog or directly from the Navigation Tree. In the former case, open the &amp;amp;quot;Embedded Sets&amp;amp;quot; tab of the stack-up dialog. This tab has a table that lists all the embedded object sets along with their material type, the host substrate layer, the host material and their height. &lt;br /&gt;
&lt;br /&gt;
{{Note|The height of an embedded object is always identical to the thickness of its host substrate layer.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up dialog showing the Embedded Sets tab.&lt;br /&gt;
&lt;br /&gt;
To add a new object set, click the arrow symbol on the '''Insert''' button of the dialog and select one of the two options, '''PEC Via Set''' or '''Embedded Dielectric Set''', from the dropdown list. This opens up a new dialog where first you have to set the host layer of the new object set. A dropdown list labeled &amp;amp;quot;'''Host Layer'''&amp;amp;quot; gives a list of all the available finite substrate layers. You can also set the properties of the embedded object set, including its label, color and material properties. Keep in mind that you cannot control the height of embedded objects. Moreover, you cannot assign material properties to PEC via sets, while you can set values for the '''Permittivity'''(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity'''(&amp;amp;sigma;) of embedded dielectric sets. Vacuum is the default material choice. You may use EM.Cube's Material List for this purpose, which can be opened up by clicking the '''Material''' button. Once embedded object sets are added to the Embedded Sets table, you can edit their properties at any time by selecting their row and clicking the '''Edit''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM21.png]] [[File:PMOM22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The [[Planar Module]]'s PEC Via Set and Embedded Dielectric Set dialogs.&lt;br /&gt;
&lt;br /&gt;
To define an embedded set from the Navigation Tree, right click on the '''Embedded Object Sets''' item in the '''Physical Structure''' section of the Navigation Tree and select either '''Insert New PEC Via Set...''' or '''Insert New Embedded Dielectric Set...''' The respective New Embedded Object Set dialog opens up, where you set the properties of the new object set. As soon as you close this dialog, it takes you to the Layer Stack-up Settings dialog, where you can examine the location of the new object set on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
After a new embedded object set has been defined and added to the Navigation Tree, it becomes the active trace. You are now ready to create geometrical objects in the new active trace. Remember that [[Planar Module]] does not allow you to draw 3D objects. The solid object buttons in the '''Object Toolbar''' are disabled to prevent you from doing so. Instead, you draw planar [[Surface Objects|surface objects]] as the cross section of embedded sets. EM.Cube extends these planar objects across their host layer automatically and displays them as wire-frame, 3D extruded objects. Extrusion of embedded object sets happen after meshing and before every simulation. You can enforce this extrusion manually by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Update Planar Structure...''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Rules &amp;amp;amp; Limitations ===&lt;br /&gt;
&lt;br /&gt;
# Terminating PEC ground planes at the top or bottom of a planar structure are defined as PEC top or bottom half-spaces, respectively.&lt;br /&gt;
# A PEC ground plane placed in the middle of a substrate stack-up requires at least one slot object to provide electromagnetic coupling between its top and bottom sides. In this case, a PMC trace is rather introduced at the given Z-plane, which implies the presence of an infinite PEC ground although it is not explicitly indicated in the Navigation Tree.&lt;br /&gt;
# Metallic and slot traces cannot coexist on the same Z-plane. However, you can stack up multiple PEC and conductive sheet traces at the same Z-coordinate. Similarly, multiple PMC traces can be placed at the same Z-coordinate.&lt;br /&gt;
# Metallic and slot traces are strictly defined at the interface planes between substrate layers. To define a suspended metallic trace in a substrate layer (as in the case of the center conductor of a stripline), you must split the dielectric layer into two thinner layers and place your PEC trace at the interface between them.&lt;br /&gt;
# The current version of the Planar MoM simulation engine is based on a 2.5-D MoM formulation. Only vertical volume currents and no circumferential components are allowed on embedded objects. The 2.5-D assumption holds very well in two cases: (a) when embedded objects are very thin with a very small cross section (with lateral dimensions less than 2-5% of the material wavelength) or (b) when embedded objects are very short and sandwiched between two closely spaced PEC traces or grounds from the top and bottom.&lt;br /&gt;
# The current release of EM.Cube allows any number of PEC via sets collocated in the same substrate layer. However, you can define only one embedded dielectric object set per substrate layer, and no vias sets collocated in the same layer. Note that the single set can host an arbitrary number of embedded dielectric objects of the same material properties.&lt;br /&gt;
&lt;br /&gt;
=== Managing Objects, Traces &amp;amp;amp; Sets ===&lt;br /&gt;
&lt;br /&gt;
You can manage your project's layer hierarchy from the Layer Stack-up Settings dialog. You can add, delete and move around substrate layers, metallic and slot traces and embedded object sets. Metallic and slot traces can move among the interface planes between neighboring substrate layers. Embedded object sets including PEC vias and finite dielectric objects can move from substrate layer into another. When you delete a trace from the Layer Stack-up Settings dialog, all of its objects are deleted from the project workspace, too. You can also delete metallic and slot traces or embedded object sets from the Navigation Tree. To do so, right click on the name of the trace or object set in the Navigation Tree and select '''Delete''' from the contextual menu. You can also delete all the traces or object sets of the same type from the contextual menu of the respective type category in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
For better visualization of your planar structure, EM.Cube displays a virtual domain in a default orange color to represent part of the infinite background structure. The size of this virtual domain is a quarter wavelength offset from the largest bounding box that encompasses all the finite objects in the project workspace. You can change the size of the virtual domain or its display color from the Domain Settings dialog, which you can access either by clicking the '''Computational Domain''' [[File:domain_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Domain Settings...''' from the Simulate Menu or by right clicking the '''Virtual Domain''' item of the Navigation Tree and selecting '''Domain Settings...''' from the contextual menu, or using the keyboard shortcut '''Ctrl+A'''. But keep in mind that the virtual domain is only for visualization purpose and does not affect the MoM simulation. The virtual domain also shows the substrate layers in translucent colors. As you change the colors assigned to the substrate layers, you will see a multilayer virtual domain box surrounding your project structure.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_phys5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Virtual Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the last defined trace or embedded object set is active. You can activate any trace or embedded object set at any time for drawing new objects. You can move one or more selected objects from any trace or embedded object set to another group of the same type or of different type. First select an object in the project workspace or in the Navigation Tree. Then, right click on the highlighted selection and select '''Move To &amp;amp;gt;''' from the contextual menu. This opens another sub-menu containing '''Planar''' and a list of all the other EM.Cube modules that have already defined object groups. Select '''Planar''' or any other available module, and yet another sub-menu opens up with a list of all the available traces and embedded object sets already defined in your project. Select the desired group, and all the selected objects will move to that group. When selecting multiple objects from the Navigation Tree, make sure that you hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting a group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Discretizing Planar Structures ==&lt;br /&gt;
&lt;br /&gt;
=== The Planar MoM Mesh ===&lt;br /&gt;
&lt;br /&gt;
The method of moments (MoM) discretizes all the finite-sized objects of a planar structure (excluding the background structure) into a set of elementary cells. The planar integral equations are then solved approximately on these elementary cells. As this method does not require a discretization of the entire computational domain, it is often computationally much more efficient than differential-based techniques like FEM or FDTD, which mesh the whole domain. The accuracy of the MoM numerical solution depends greatly on the quality of the generated mesh. The mesh density gives a measure of how electrically small these elementary cells are. Low mesh resolutions compromise the accuracy of the numerical solution. On the other hand, very high mesh densities may lead to numerical instability of the method of moments. As a rule of thumb, a mesh density of about 20-30 cells per effective wavelength usually yields acceptable results. Yet, for structures with lots of fine geometrical details or for highly resonant structures, higher mesh densities may be required. Also, the particular simulation data that you seek in a project will also influence your choice of mesh resolution. For example, far field characteristics like radiation patterns are less sensitive to the mesh density than field distributions on a structure with a highly irregular shape and a rugged boundary.&lt;br /&gt;
&lt;br /&gt;
It is well known that any planar geometry with any degree of complexity can be reasonably discretized using a surface triangular mesh. EM.Cube's [[Planar Module]] provides a versatile triangular mesh generator for this purpose. This generates a regular mesh, in which most of the triangular cells have almost equal areas. The uniformity or regularity of mesh is an important factor in warranting a stable numerical solution. A highly incongruous mesh may even produce completely erroneous results. EM.Cube's [[Planar Module]] also offers another mesh generator that creates a &amp;amp;quot;Hubrid&amp;amp;quot; planar mesh combining triangular and rectangular cells. Although triangular cells are more versatile than rectangular cells in adapting to arbitrary geometries, many practical planar structures contain a large number of rectangular parts like patch antennas, microstrip lines and components, etc.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM32.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar hybrid and triangular meshes for rectangular patches.&lt;br /&gt;
&lt;br /&gt;
=== The Rectangular Mesh Advantage ===&lt;br /&gt;
&lt;br /&gt;
Rectangular cells offer a major advantage over triangular cells for numerical MoM simulation of planar structures. This is due to the fact that the dyadic Green's functions of planar layered background structures are space-invariant on the transverse plane. Recall that the elements of the moment matrix are given by the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(\mu \nu)} = \iiint_{V_i} d\nu f_i^{(\mu)}(r) \cdot \iiint_{V_j}d\nu ' \overline{\overline{G}}_{\mu \nu}(r|r') \cdot f_j^{(v)}(r') &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM24(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the spatial-domain dyadic Green's functions are a function of the observation and source coordinates, '''r'''and '''r' '''. The MoM matrix elements can indeed be interpreted as interactions between two elementary basis functions '''f&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;(r)''' and '''f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;(r')''' on that particular background structure. The spatial-domain dyadic Green's functions can themselves be expressed in terms of the spectral-domain dyadic Green's functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\overline{\overline{G}}_{\mu \nu}(r|r') = \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{\overline{\overline{G}}}_{\mu \nu} (k_p, z|z') e^{-j[k_x(x-x')+k_y(y-y')]} \, dk_x \, dk_y ,&lt;br /&gt;
\quad {k_p}^2 = {k_x}^2 + {k_y}^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM26.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the doubly infinite integration is performed with respect to the spectral [[variables]] k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;. As can be seen from the above expression, the spatial-domain dyadic Green's functions are functions of z, z', as well as (x-x') and (y-y'). The MoM matrix elements can now be transformed into the spectral domain as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
Z_{ij}^{(\mu \nu)} = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{f}_i^{(\mu)} (k_x, k_y) \cdot \tilde{\overline{\overline{G}}}_{\mu \nu} (k_{\rho}, z|z') \cdot&lt;br /&gt;
\tilde{f}_j^{(\nu)} (k_x, k_y) \, dk_x \, dk_y&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM27.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the tilde symbol signifies the Fourier transform of a function defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\tilde{f}(k_x, k_y) = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
f(x,y) e^{j(k_x x + k_y y)} \, dx \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM28(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rectangular cells have simple Fourier transforms. The rooftop basis functions are triangular functions in the direction of current flow and constant in the perpendicular direction. This means that their Fourier transform is a product of a sinc-squared function along one spectral direction and a sinc function along the other. You can see from the figure below that if one deals with a rectangular mesh of identical cells (all equal and parallel), then the interactions among the rooftop basis functions become a functions of the index differences and not the absolute indices:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{(i,k)|(j,l)} = Z \Big\langle f_{i,k}(x,y)| f_{j,l}(x', y') \Big\rangle = Z_{(i-j)|(k-l)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM29.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equation, the vectorial rooftop basis functions have explicit, double indices: i and k along the local X and Y directions, respectively, for the test (observation) basis function, and j and l along the local X and Y directions, respectively, for the expansion (source) basis function. Thus, uniform rectangular cells, i.e. structured rectangular cells of identical size aligned in the same direction, can speed up the planar MoM simulation significantly due to these symmetry and the invariance properties. For example, all the self-interactions are identical regardless of the location of a rooftop basis function. This reduces the matrix fill process for a total of N rooftop basis functions from an N2 process to one of order N.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Pairs of rooftop basis functions that have identical MoM interactions.&lt;br /&gt;
&lt;br /&gt;
=== Generating A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
The planar MoM mesh generation process involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties&lt;br /&gt;
# Creating and viewing the mesh&lt;br /&gt;
# Verifying the mesh for integrity&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] offers two mesh generation algorithms for discretizing planar structures: Hybrid and Triangular. The hybrid mesh consists of both rectangular and triangular cells. The hybrid mesh generator creates a kind of “object-centric” mesh that depends on the geometry of each object. It tries to discretize rectangular objects with rectangular cells as much as possible. In certain connection areas, a few triangular cells might be inserted to provide the mesh transition for current continuity. All the non-rectangular objects (circular, polygonal, etc.) are discretized using triangular cells. The triangular mesh generator, on the other hand, discretizes the planar objects with all triangular cells regardless of their shape. The only exceptions are feed lines that contain gap sources or lumped elements, which are always meshed with rectangular cells.&lt;br /&gt;
&lt;br /&gt;
You can generate and view a planar mesh by clicking the '''Show Mesh''' [[File:mesh_tool.png]] button of the '''Simulate Toolbar''' or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' or using the keyboard shortcut '''Ctrl+M'''. When the mesh of the planar structure is displayed in EM.Cube’s project workspace, its &amp;amp;quot;Mesh View&amp;amp;quot; mode is enabled. In this mode you can perform view operations like rotate view, pan or zoom, but you cannot create new objects or edit existing ones. To exit the mesh view mode, press the keyboard's '''Esc Key''' or click the '''Show Mesh''' [[File:mesh_tool.png]] button once again.&lt;br /&gt;
&lt;br /&gt;
Once a mesh is generated, it stays in the memory until the structure is changed or the mesh density or other settings are modified. Every time you view mesh, the one in the memory is displayed. You can force EM.Cube to create a new mesh from the ground up by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''Planar Mesh''' item in the '''Discretization''' section of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Mesh Density ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, generates a hybrid mesh of your planar structure with a mesh density of 20 cells per effective wavelength. It is important to understand the concept of mesh density (either hybrid or triangular) as used by [[Planar Module]]. It gives a measure of the number of cells per effective wavelength that are placed in various regions of your planar structure. The higher the mesh density, the more cells are created on the geometrical objects. Keep in mind that only the finite-sized objects of your structure are discretized. No mesh is generated for the substrate layers of your background structure. The free-space wavelength is defined as &amp;lt;math&amp;gt;\lambda_0 = \tfrac{2\pi f}{c}&amp;lt;/math&amp;gt;, where f is the center frequency of your project and c is the speed of light in the free space. The effective wavelength is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where e&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity.&lt;br /&gt;
&lt;br /&gt;
The effective permittivity is defined differently for different types of traces and embedded object sets. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivity of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivity of the two substrate layers just above and below the metallic trace. These definitions of effective permittivity are consistent with the effective propagation constant of transmission lines realized on such trace types. For embedded object sets, the effective permittivity is defined as the largest of the permittivities of all the substrate layers and embedded dielectric sets. In all cases, for the purpose of calculating the effective wavelength, only the real part of the permittivities are considered. The reason for using an effective wavelength so defined for determination of mesh resolution is to make sure that enough cells are placed in areas that might feature higher field concentration.&lt;br /&gt;
&lt;br /&gt;
Due to the different definitions of effective wavelength in different parts of your planar structure, you will see different mesh resolutions. For example, if you structure has several substrate layers with different permittivities, the mesh of metal traces on layers with a higher permittivity value will feature more cells than the mesh of metal traces on layers with a lower permittivity value even though the mesh density value is the same for the whole structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM30.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of two rectangular patches at two different planes. The lower substrate layer has a higher permittivity.&lt;br /&gt;
&lt;br /&gt;
=== Customizing A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the planar mesh including the mesh type and density from the planar Mesh Settings Dialog. You can also change these settings while in the mesh view mode, and you can update the changes to view the new mesh. To open the mesh settings dialog, either click the '''Mesh Settings''' [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Mesh Settings...''', or by right click on the '''Planar 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 mesh algorithm from the dropdown list labeled '''Mesh Type''', which offers two options: '''Hybrid''' and '''Triangular'''. You can also enter a different value for '''Mesh Density''' in cells per effective wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;). For each value of mesh density, the dialog also shows the average &amp;amp;quot;Cell Edge Length&amp;amp;quot; in the free space. To get an idea of the size of mesh cells on the traces and embedded object sets, divide this edge length by the square root of the effective permittivity a particular trace or set. Click the '''Apply''' button to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM31.png]]&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Of Connected Trace Objects ===&lt;br /&gt;
&lt;br /&gt;
Using the generated mesh of a planar structure, EM.Cube creates a set of vectorial basis functions that are passed to the input file of the Planar MoM simulation engine. This engine requires edge-based basis functions. The common edges between adjacent cells are used to define edge-based rooftop or RWG basis functions. These elementary basis functions indeed provide the current flow and warrant the continuity among the mesh cells. Therefore, when two objects overlap or share a common edge, the connection between them must be translated into &amp;amp;quot;bridge&amp;amp;quot; basis functions, which carry the information about current flow to the simulation engine.&lt;br /&gt;
&lt;br /&gt;
'''The most important rule of object connections in EM.Cube's [[Planar Module]] is that only objects belonging to the same trace can be connected to one another.''' For example, if two objects reside on the same Z-plane and geometrically have a common edge which you can clearly see in the project workspace, but organizationally they belong to two different metal traces, then the bridge basis functions will not be generated between them, and the simulation engine will see them disconnected. If two objects belong to the same trace and have a common overlap area, EM.Cube first merges the two objects using the &amp;amp;quot;Boolean Union&amp;amp;quot; operation and converts them into a single object for the purpose of meshing. The mesh of &amp;amp;quot;unioned&amp;amp;quot; areas is usually made up of triangular cells. If two objects reside on the same Z-plane and geometrically overlap with each other but organizationally belong to two different trace groups, incongruous, overlapped cells will be generated that will either blow up the linear system or produce completely wrong simulation results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM36.png|250px]] [[File:PMOM38.png|250px]] [[File:PMOM37.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Two overlapping planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
When two planar objects belonging to the same trace are connected via a common edge, it is critical to generate a consistent mesh at the connection area and properly transition and merge the meshes of the individual objects. EM.Cube's triangular planar mesh generator simply &amp;amp;quot;unions&amp;amp;quot; the two objects and generates a connected mesh. EM.Cube's hybrid planar mesh generator, however, behave differently when it comes to the connection between rectangular objects. The rule in this case is the following:&lt;br /&gt;
&lt;br /&gt;
* If the two connected rectangular objects have the same side dimensions along the common linear edge with perfect alignment, a rectangular bridge mesh is produced.&lt;br /&gt;
* If the two connected rectangular objects have different side dimensions along the common linear edge or have edge offset, a set of triangular cells is generated along the edge of the object with the large side.&lt;br /&gt;
* Rectangular objects that contain gap source or lumped elements, always have a rectangular mesh around the gap area.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM33.png|250px]] [[File:PMOM35.png|250px]] [[File:PMOM34.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edge-connected rectangular planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
=== Mesh of Embedded Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] models embedded objects as vertical volume currents. The vectorial basis functions in this case are Z-directed prisms as opposed to rooftop basis functions. If an embedded object is located under or above a metallic trace or connected from both top and bottom, it is critical to create mesh continuity between the embedded object and its connected metallic traces. In other words, the generated mesh must ensure current continuity between the vertical volume currents and horizontal surface currents. EM.Cube’s planar mesh generator automatically handles situations of this kind and generates all the required connection meshes.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that EM.Cube’s Planar MoM engine uses a 2.5-D approximation, whereby only vertical volume currents are assumed inside embedded objects. When the height of an embedded object is small (as should typically be under the 2.5-D assumption), one prismatic cell is placed across the object along the Z-axis. Long PEC vias with a very small radius do also satisfy the 2.5-D assumption. In this case, the long via objects are discretized further along the Z direction and generate multiple stacked cells. Several prismatic cells along the Z-axis may increase the simulation time drastically. This is due to the fact that the host layer is effectively subdivided into a number of sub-layers and the stacked cells are treated as stacked vias embedded inside these sub-layers. As a result, the simulation engine needs to compute all the dyadic Green’s functions accounting for the interactions between all such sub-layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM39.png|400px]] [[File:PMOM40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of a vertical PEC via connecting two horizontal metallic strips. The shorter via has one prismatic cell along the Z direction, while the longer via is discretized into several stacked cells.&lt;br /&gt;
&lt;br /&gt;
=== Refining Mesh At Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
It is very important to apply the right mesh density to capture all the geometrical details of your planar structure. This is especially true for &amp;amp;quot;field discontinuity&amp;amp;quot; regions such as junction areas between objects of different side dimensions, where larger current concentrations are usually observed at sharp corners, or at the connection areas between metallic traces and PEC vias, as well as the areas around gap sources and lumped elements, as these create voltage or current discontinuities. For large planar structures, using a higher mesh density may not always be a practical option since it will quickly lead to a very large MoM matrix and thus growing the size of the numerical problem. Sometimes a slightly non-uniform mesh still produces stable numerical results. In other words, you may choose to increase the mesh resolution around the discontinuity regions only.&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh around geometrical and field discontinuities. You can check the check box labeled &amp;amp;quot;'''Refine Mesh at Junctions'''&amp;amp;quot;, which increases the mesh resolution at the connection area between rectangular objects. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Gap Locations'''&amp;amp;quot;, which may prove particularly useful when gap sources or lumped elements are placed on a short transmission line connected from both ends. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Vias'''&amp;amp;quot;, which increases the mesh resolution on the cross section of embedded object sets and by extension at the connection regions of the metallic objects connected to them. EM.Cube typically doubles the mesh resolution locally at the discontinuity areas when the respective boxes are checked.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM41.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Refining the planar mesh at the via and surrounding area.&lt;br /&gt;
&lt;br /&gt;
=== Checking Mesh Integrity ===&lt;br /&gt;
&lt;br /&gt;
You should always visually inspect EM.Cube's default generated mesh to see if the current mesh settings have produced an acceptable mesh. You may often need to change the mesh density or other parameters and regenerate the mesh. The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, highly incongruous meshes should always be avoided. Sometimes EM.Cube's default mesh may contain very narrow triangular cells due to very small angles between two edges. In some rare cases, extremely small triangular cells may be generated, whose area is a small fraction of the average mesh cell. These cases typically happen at the junctions and other discontinuity regions or at the boundary of highly irregular geometries with extremely fine details. In such cases, increasing or decreasing the mesh density by one or few cells per effective wavelength often resolves that problem and eliminates those defective cells. Nonetheless, EM.Cube's planar mesh generator offers an option to identify the defective triangular cells and either delete them or cure them. By curing we mean removing a narrow triangular cell and merging its two closely spaced nodes to fill the crack left behind.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM44.png|400px]] [[File:PMOM42.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Deleting or curing defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
EM.Cube by default deletes or cures all the triangular cells that have angles less than 10º. Sometimes removing defective cells may inadvertently cause worse problems in the mesh. You may choose to disable this feature and uncheck the box labeled &amp;amp;quot;'''Remove Defective Triangular Cells'''&amp;amp;quot; in the Planar Mesh Settings dialog. You can also change the value of the minimum allowable cell angle.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM43(1).png]]&lt;br /&gt;
&lt;br /&gt;
Setting the minimum allowable angle for non-defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
=== Locking Mesh Of Object Groups ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides different ways of controlling the mesh of a planar structure locally. Earlier you saw how to increase the mesh resolution at the discontinuity regions without affecting the mesh of uniform or regular areas of a planar structure. Another way of local mesh control is to lock the mesh density of certain traces or object sets. The mesh density that you specify in the Planar Mesh Settings dialog is a global parameter and applies to all the traces and embedded object sets in your project. However, you can lock the mesh of individual PEC, PMC and conductive sheet traces or embedded objects sets. In that case, the locked mesh density takes precedence over the global density. Note that locking mesh of object groups, in principle, is different than refining the mesh at discontinuities. In the latter case, the mesh of connection areas is affected. However, objects belonging to different traces cannot be connected to one another. Therefore, locking mesh can be useful primarily for isolated object groups that may require a higher (or lower) mesh resolution.&lt;br /&gt;
&lt;br /&gt;
You can lock the local mesh density by accessing the property dialog of a specific trace or embedded object set and checking the box labeled '''Lock Mesh'''. This will enable the '''Mesh Density''' box, where you can accept the default global value or set any desired new value.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM45.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of an object group from its property dialog.&lt;br /&gt;
&lt;br /&gt;
=== Local Mesh Control Using Polymesh Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to manually and individually mesh geometrical objects using the concept of polymesh. The Polymesh tool converts a planar surface object to a set of interconnected triangular cells, which is basically identical to its triangular surface mesh. Simply select an object and click the '''Polymesh Tool''' [[File:polymesh_tool_tn.png]] button of '''Tools Toolbar''', or select '''Menu &amp;amp;gt; Tools &amp;amp;gt; Polymesh''', or use the keyboard shortcut '''P'''. You can also right click on a selected object and select '''Polymesh''' from the contextual menu. From the Polymesh Dialog, you can control the mesh resolution through the '''Edge Length''' parameter, which is expressed in project units. Note that unlike the planar mesh generator which uses a frequency-dependent mesh density to drive the mesh resolution, the ploymesh's edge length is fixed and purely geometrical and does not change with the project frequency. '''EM.Cube's mesh generator considers a polymesh object as a &amp;amp;quot;final&amp;amp;quot; mesh and reproduces it &amp;amp;quot;As Is&amp;amp;quot; during the meshing process.'''&lt;br /&gt;
&lt;br /&gt;
You have access to every single node of a polymesh object and you can change its coordinates arbitrarily. You do this by opening the property dialog of a polymesh object and selecting a certain node index in the box labeled '''Active Node'''. You can also select a node by hovering the mouse over the node to highlight it and then click to select it. A red ball appears on the current active node. You can delete the nodes arbitrarily using the '''Delete''' button of the dialog, which results in lowering the mesh resolution at the location of the deleted node. Or you can insert new nodes in the faces of a polymesh object. To insert a node, first you have to select a face. Change the '''Mode''' option by selecting the '''Face''' radio button and then select the right '''Active Face''' index. A red triangular border appears around the selected face. You can also simply click on the surface of a face and select it using the mouse. With the desired face selected, click the '''Insert''' button of the dialog to create a new node at the centroid of the selected face. You can adjust the coordinates of the newly inserted node from the three X, Y and Z '''Coordinate''' boxes. Note that immediately after the insertion of a new node, the label of these coordinate boxes changes to &amp;amp;quot;'''New Node'''&amp;amp;quot; and they show the relative local X, Y and Z offsets with respect to the original node position. Once you close the Polymesh Dialog, the new node is added to the existing node list and can be edited later like the other polymesh nodes. By inserting a new node, you increase the mesh resolution locally and selectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM46(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Discretizing a planar surface object using EM.Cube's Polymesh tool.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that since a polymesh object it considered a final mesh, its mesh cannot be connected to other objects. In other words, bridge basis functions are not generated if even some of the polymesh edges may coincide with other objects' edges. A polymesh object is treated by the mesh generator as an isolated mesh. However, EM.Cube allows you to connect polymesh objects manually. To do so, bring two or more polymesh objects close to each other so that they have one or more common edges. No face overlaps are allowed in this case. Select the polymesh objects and click the '''Merge Tool'''[[File:merge_tool_tn.png]] button of '''Tools Toolbar''' to merge the polymesh objects into a single polymesh object. The new merged polymesh object will provide all the necessary bridge basis functions among the original, separate polymesh objects.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
In a typical electromagnetic simulation in EM.Cube's [[Planar Module]], you define a planar structure that consists of a layered background structure with a number of finite-sized metal and slot traces and possibly embedded metal or dielectric objects interspersed among the substrate layers. The planar structure is then excited by some sort of a signal source that induces electric currents on metal parts and magnetic currents on slot traces. The method of moments (MoM) solver computes these unknown electric and magnetic currents by discretizing the finite-sized objects. The induced currents, in turn, produce their own electric and magnetic fields which coexist (are superposed) with the impressed electric and magnetic fields of the signal source. From a knowledge of the near fields, EM.Cube calculates the port characteristics of the planar structure, if any ports have been defined. From a knowledge of the far fields, EM.Cube calculates the radiation or scattering characteristics of the planar structure.&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure in a number of different ways. The excitation source you choose depends on the observables you seek in your project. [[Planar Module]] provides the following source for exciting planar structures:&lt;br /&gt;
&lt;br /&gt;
* Lumped Sources with three varieties: [[#Gap Sources|Gap Sources]], [[#De-embedded Sources|De-embedded Sources]] and [[#Probe Sources|Probe Sources]]&lt;br /&gt;
* [[#Plane Wave Sources|Plane Wave Sources]]&lt;br /&gt;
* [[#Short Dipole Sources|Short Dipole Sources]]&lt;br /&gt;
* [[#Huygens Sources|Huygens Sources]]&lt;br /&gt;
&lt;br /&gt;
For antennas and planar circuits, where you typically define one or more ports, you usually use lumped sources. A lumped source is indeed a gap discontinuity that is placed on the path of an electric or magnetic current flow, where a voltage or current source is connected to inject a signal. Gap sources are placed across metal or slot traces. Probe sources are placed across vertical PEC vias. A de-embedded source is a special type of gap source that is placed near the open end of an elongated metal or slot trace to create a standing wave pattern, from which the scattering parameters can be calculated accurately. To calculate the scattering characteristics of a planar structure, e.g. its radar cross section (RCS), you excite it with a plane wave source. Short dipole sources are used to explore propagation of points sources along a layered structure. Huygens sources are virtual equivalent sources that capture the radiated electric and magnetic fields from another structure possibly in another EM.Cube computational module and bring them as a new source to excite your planar structure.&lt;br /&gt;
&lt;br /&gt;
=== Gap Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM47.png|thumb|250px|The [[Planar Module]]'s Gap Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A gap is an infinitesimally narrow discontinuity that is placed on the path of current flow on a feed line. In planar structures, feed lines are typically in the form of a microstrip, stripline, slotline or coplanar waveguide (CPW). You use rectangle strip objects to construct such feed lines. A gap source can be placed on any rectangle strip object on a PEC, PMC or conductive sheet trace. Depending on the type of the trace on which a gap source is placed, it will have a different physical interpretation.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PEC or conductive sheet trace can be regarded as a strip transmission line that carries electric currents along its length (local X direction). The characteristic impedance of the line is a function of its width (local Y direction). A gap source is placed somewhere along the length and across the width of such a rectangle strip object, thus creating an infinitesimally narrow gap at its location. In this case, the gap source represents an ideal voltage source in series with a lumped impedance that is connected across the gap to excite the strip transmission line. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the gap. The source pumps electric current into the line. If the voltage source is shorted (having a zero amplitude), then the gap acts like a series lumped element on the transmission line.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PMC trace can be regarded as a slot transmission line on an infinite PEC ground plane that carries a magnetic current along its length (local X direction). The characteristic impedance of the slot line is a function of its width (local Y direction). A slot gap source is placed somewhere along the length and across the width of the rectangle strip object on a PMC trace and creates an infinitesimally narrow gap at its location. In this case, the slot gap source represents an ideal current source with a shunt lumped admittance that is connected across the slot to excite the slot transmission line. When the admittance is zero, the gap acts like an ideal current filament, which creates electric fields across the slot, equivalent to a magnetic current flowing into the slot line. If the current source is open (having a zero amplitude), then the gap acts like a shunt (parallel) lumped element on the slot line. As you will see later, a coplanar waveguide (CPW) can be realized using two parallel slot lines with two aligned, collocated gap sources.&lt;br /&gt;
&lt;br /&gt;
To define a gap source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Gap Source Dialog by right clicking on the '''Gap Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' available in the project workspace. Select the desired host rectangle strip object. The box labeled '''Direction''' shows the direction or polarity of the new gap source on its host rectangle strip object. You have the option to select either the positive or negative direction for the source polarity.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the gap source from the start point of the rectangle strip feed line. The value of '''Offset''' by default is initially set to the center of the line. As you change the offset value, you can see the gap move on its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of a gap on a slot trace) and '''Phase''' in degrees.&lt;br /&gt;
* You can also change the default label as well as the default color of the gap source using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
&lt;br /&gt;
=== Probe Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM48.png|thumb|250px|The [[Planar Module]]'s Probe Source dialog]]&lt;br /&gt;
&lt;br /&gt;
Another way of exciting a planar structure is by placing a gap on the path of a vertical current on a PEC via. This represents a filament source, which is used to model coaxial probe excitation. A probe source can be placed only on a PEC via object. Most planar transmission lines are fed using SMA connectors. The outer conductor of the coaxial line is connected to the ground and its inner conductor is extended across the substrate layer and connected to a metallic line. EM.Cube's [[Planar Module]] models a coaxial probe as an infinitesimal gap discontinuity placed across a thin via, representing an ideal voltage source in series with a lumped impedance. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the via. The source pumps vertical electric current into the probe. If the voltage source is shorted (having a zero amplitude), then the gap acts like a shunt lumped element across the via.&lt;br /&gt;
&lt;br /&gt;
To define a probe source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Probe Source Dialog by right clicking on the '''Probe Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, in the dropdown list labeled '''Embedded Objects''', you will find a list of all the PEC via objects available in the project workspace. Select the desired host PEC via object. The box labeled '''Direction''' shows the direction or polarity of the new probe source on its host PEC via object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the probe source from the bottom of the via object. The value of '''Offset''' by default is initially set to the center of the via.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and '''Phase''' in degrees.&lt;br /&gt;
&lt;br /&gt;
Unlike gap sources, whose offset parameter determines their exact location on their host line, the offset parameter of a probe source is not relevant except for long host vias. In the case of a short via that is discretized using a single prismatic element across its host substrate layer, the probe gap is always placed at the middle of its height. Longer vias may have a mesh that consists of two or more stacked prismatic elements. In this case, the probe source's offset determines which prismatic element will host the probe gap discontinuity at its middle.&lt;br /&gt;
&lt;br /&gt;
=== Defining Source Arrays ===&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects, the array object will also be listed as an eligible object for gap source placement. A gap source will then be placed on each element of the array. All the gap sources will have identical direction and offset. Similarly, if the project workspace contains an array of PEC via objects, the embedded array object will also be listed as an eligible object for probe source placement. A probe source will then be placed on each via object of the array. All the probe sources will have identical direction and offset.&lt;br /&gt;
&lt;br /&gt;
However, you can prescribe certain amplitude and/or phase distribution over the array of gap or probe sources. By default, all the gap or probe sources have identical amplitudes of 1V (or 1A for the slot case) and zero phase. The available amplitude distributions to choose from include '''Uniform''', '''Binomial''' and '''Chebyshev''' and '''Date File'''. In the Chebyshev case, you need to set a value for minimum side lobe level ('''SLL''') in dB. You can also define '''Phase Progression''' in degrees along all three principal axes. You can view the amplitude and phase of individual sources by right clicking on the top '''Sources''' item in the Navigation Tree and selecting '''Show Source Label''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM49.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining gap sources on an array of rectangle strip objects with a Chebyshev amplitude distribution.&lt;br /&gt;
&lt;br /&gt;
In the data file option, the complex amplitude are directly read in from a data file using a real - imaginary format. When this option is selected, you can either improvise the complex array weights or import them from an existing file. In the former case click the '''New Data File''' button. This opens up the Windows Notepad with default formatted data file that has a list of all the array element indices with default 1+j0 amplitudes for all of them. You can replace the default complex values with new one and save the Notepad data file, which brings you back to the Gap Source dialog. To import the array weights, click the '''Open Data File''' button, which opens the standard Windows Open dialog. You can then select the right data file from the one of your folders. It is important to note that the data file must have the correct format to be read by EM.Cube. For this reason, it is recommended that you first create a new data file with the right format using Notepad as described earlier and then save it for later use.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining gap source array weights using a data file.&lt;br /&gt;
&lt;br /&gt;
=== Defining Ports ===&lt;br /&gt;
&lt;br /&gt;
Ports are used in a planar structure to order and index the sources for calculation of circuit parameters such as scattering (S), impedance (Z) and admittance (Y) parameters. In EM.Cube's [[Planar Module]], you can use the following types of sources to define ports:&lt;br /&gt;
&lt;br /&gt;
* Gap Sources&lt;br /&gt;
* Probe Sources&lt;br /&gt;
* Active Lumped Elements&lt;br /&gt;
* De-Embedded Sources&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your planar structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree. Note that your project can have mixed gap and probes sources as well as active lumped element sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
'''You can define any number of ports equal to or less than the total number of sources in your project.''' The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50S by default. You can delete any port by selecting it from the Port List and clicking the '''Delete''' button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment and make sure that is what you intend. You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit''' button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM53.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edit Port dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Coupled Ports ===&lt;br /&gt;
&lt;br /&gt;
Sources can be coupled to each other to model coupled strip lines (CPS) on metal traces or coplanar waveguides (CPW) on slot traces. Similarly, probe sources may be coupled to each other. Coupling two or more sources does not change the way they excite a planar structure. It is intended only for the purpose of S parameter calculation. The feed lines or vias which host the coupled sources are usually parallel and aligned with one another and they are all grouped together as a single transmission line represented by a single port. This single &amp;amp;quot;coupled&amp;amp;quot; port then interacts with other coupled or uncoupled ports.&lt;br /&gt;
&lt;br /&gt;
You couple two or more sources using the '''Port Definition Dialog'''. To do so, you need to change the default port assignments. First, delete all the ports that are to be coupled from the Port List of the dialog. Then, define a new port by clicking the '''Add''' button of the dialog. This opens up the Add Port dialog, which consists of two tables: '''Available''' sources on the left and '''Associated''' sources on the right. A right arrow ('''--&amp;amp;gt;''') button and a left arrow ('''&amp;amp;lt;--''') button let you move the sources freely between these two tables. You will see in the &amp;amp;quot;Available&amp;amp;quot; table a list of all the sources that you deleted earlier. You may even see more available sources. Select all the sources that you want to couple and move them to the &amp;amp;quot;Associated&amp;amp;quot; table on the right. You can make multiple selections using the keyboard's '''Shift''' and '''Ctrl''' keys. Closing the Add Port dialog returns you to the Port Definition dialog, where you will now see the names of all the coupled sources next to the name of the newly added port.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is your responsibility to set up coupled ports and coupled transmission lines properly. For example, to excite the desirable odd mode of a coplanar waveguide (CPW), you need to create two rectangular slots parallel to and aligned with each other and place two gap sources on them with the same offsets and opposite polarities. To excite the even mode of the CPW, you use the same polarity for the two collocated gap sources. Whether you define a coupled port for the CPW or not, the right definition of sources will excite the proper mode. The couple ports are needed only for correct calculation of the port characteristics.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM51(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Coupling gap sources in the Port Definition dialog by associating more than one source with a single port.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Port Characteristics At Gap Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
A gap source on a metal trace and a probe source on a PEC via behave like a series voltage source with a prescribed strength (of 1V and zero phase by default) that creates a localized discontinuity on the path of electric current flow. At the end of a planar MoM simulation, the electric current passing through the voltage source is computed and integrated to find the total input current. From this one can calculate the input admittance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_W \hat{y} \cdot \mathbf{J_s} \, dy} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM54(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for gap sources on metal traces, where the line integration is performed across the width of the metal strip, and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_S \hat{z} \cdot \mathbf{J_p} \, ds} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM55.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for probe sources on PEC vias, where the surface integration is performed over the cross section of the via. On the other hand, a gap source on a slot trace behaves like a shunt current source with a prescribed strength (of 1A and zero phase by default) that creates a localized discontinuity on the path of magnetic current flow. At the end of a planar MoM simulation, the magnetic current passing through the current source is computed and integrated to find the total input voltage across the current filament. From this one can calculate the input impedance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{in} = \frac{V_{in}}{I_s} = \frac{\int_W \hat{y} \cdot \mathbf{M_s} \,dy} {V_s} = \frac{\int_W E_y \, dy}{V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM56.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the input admittance or impedance defined at a gap source port is referenced to the two terminals of the voltage source connected across the gap as shown in the figure below. This is different than the input admittance or impedance that one may normally define for a microstrip port, which is referenced to the substrate's ground.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM59(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Definition of different input impedances at the gap location.&lt;br /&gt;
&lt;br /&gt;
To resolve this problem, you can place a gap source on a metal strip line by a distance of a quarter guide wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/4) away from its open end. Note that (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; = 2p/ß), where ß is the propagation constant of the metallic transmission line. As show in the figure below, the impedance looking into an open quarter-wave line segment is zero, which effectively shorts the gap source to the planar structure's ground. The gap admittance or impedance in this case is identical to the input admittance or impedance of the planar structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM60(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing a gap source a quarter guide wavelength away from the open end of a feed line to effectively short it to the ground at the gap location.&lt;br /&gt;
&lt;br /&gt;
The same principle applies to the gap sources on slot traces. The figure below shows how to place two gap sources with opposite polarities a quarter guide wavelength away from their shorted ends to calculate the correct input impedance of the CPW line looking to the left of the gap sources. Note that in this case, you deal with shunt filament current sources across the two slot lines and that the slot line carry magnetic currents. The end of the slot lines look open to the magnetic currents, but in reality they short the electric field. The quarter-wave CPW line acts as an open circuit to the current sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM61(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing two oppositely polarized gap sources a quarter guide wavelength away from the short end of a CPW line to effectively create an open circuit beyond the gap location.&lt;br /&gt;
&lt;br /&gt;
The case of a probe source placed on a PEC via that is connected to a ground plane is more straightforward. In this case, the probe source's gap discontinuity is placed at the middle plane of the PEC via. If the via is short, it is meshed using a single prismatic element, which is connected to the ground from one side and to the metal strip line from the other. Therefore, the probe admittance or impedance is equal to that of the structure at a reference plane that passed through the host via.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM62(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Input impedance of a probe source on a PEC via connected to a ground plane.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Multiport Structures Using Linear Superposition ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure has two or more sources, but you have not defined any ports, all the lumped sources excite the structure locally and contribute to the excitation vector needed for the MoM solution of the problem. However, when you assign N ports to the sources, then you have a multiport structure that is characterized by an N×N admittance matrix (instead of a single Y&amp;lt;sub&amp;gt;in&amp;lt;/sub&amp;gt; parameter), or an N×N impedance matrix, or an N×N scattering matrix. To calculate these matrices, EM.Cube uses a binary excitation scheme in conjunction with the principle of linear superposition. In this binary scheme, the structure is analyzed N times. Each time one of the N port-assigned sources is excited, and all the other port-assigned sources are turned off.&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on metal traces and probe sources on PEC vias, turning a source off means shorting a series voltage source. The electric currents passing through these sources are then found at each port location, and the admittance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_m = \sum_{n=1}^N Y_{mn} V_n, \quad \quad Y_{mn} = \frac{I_m}{V_n} \bigg|_{V_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM57.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on slot traces, turning a source off means opening a shunt filament current source. The magnetic currents passing through the source locations, and thus the voltages across them, are then found at all ports, and the impedance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_m = \sum_{n=1}^N Z_{mn} I_n, \quad \quad Z_{mn} = \frac{V_m}{I_n} \bigg|_{I_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM58.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The N solution vectors that are generated through the N binary excitation analyses are finally superposed to produce the actual solution to the problem. However, in this process, EM.Cube also calculates all the port characteristics. Keep in mind that the impedance (Z) and admittance (Y) matrices are inverse of each other. From the impedance matrix, the scattering matrix is calculated using the following relation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM63.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Lumped Elements In Planar MoM ===&lt;br /&gt;
&lt;br /&gt;
Lumped elements are components, devices, or circuits whose overall dimensions are very small compared to the wavelength. As a result, they are considered to be dimensionless compared to the dimensions of a mesh cell. In fact, a lumped element is equivalent to an infinitesimally narrow gap that is placed in the path of current flow, across which the device's governing equations are enforced. Using Kirkhoff's laws, these device equations normally establish a relationship between the currents and voltages across the device or circuit. Crossing the bridge to Maxwell's domain, the device equations must now be cast into a from o boundary conditions that relate the electric and magnetic currents and fields. EM.Cube's [[Planar Module]] allows you to define passive circuit elements: '''Resistors'''(R), C'''apacitors'''(C), I'''nductors'''(L), and series and parallel combinations of them as shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image106.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A series-parallel RLC combination that can be modeled as a lumped circuit in [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Lumped elements are conceptualized in a similar way as gap or probe sources. They are indeed considered as infinitesimally narrow gaps placed in the path of current flow, across which Ohm's law is enforced. If a lumped element is placed on a PEC or conductive sheet trace, it is treated as a series connection. The boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; &lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{x}\cdot \mathbf{E_{gap}} \, dx = Z_L \int_W \hat{y} \cdot \mathbf{J_s} \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM67.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Z&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total impedance across the two terminals of the series element. If the lumped element is placed on a slot trace, it is treated as a shunt connection that creates a current discontinuity. In this case, the magnetic current across the gap is continuous, and the boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_{gap} = Y_L V_{in} \quad\quad \int_{\delta} J_Y^{fila} \, dx = Y_L \int_W E_y \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \int_{\delta} \hat{x}\cdot\hat{n} \times (\mathbf{H_{gap}^+ - H_{gap}^-}) \, dx = Y_L \int_W \hat{y}\cdot\mathbf{M_s} \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM70(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Y&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total admittance across the two terminals of the shunt element. If a lumped element is placed on a PEC via that is connected to a metal strip from one side and to a PEC ground plane from the other end, it is indeed as a series connection across a gap discontinuity at the middle plane of the via. If the via is short, it is meshed using a single prismatic element. In that case, the lumped element in effect shunts the metal strip to the ground. The boundary condition at the location of the lumped element across the PEC via is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{z}\cdot \mathbf{E_{gap}} \, dz = Z_L \int_S \hat{z} \cdot \mathbf{J_p} \, ds&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM68.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM69.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Using a shunt lumped element on a PEC via to terminate a metallic strip line.&lt;br /&gt;
&lt;br /&gt;
=== Defining Lumped Circuits ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM64.png|thumb|400px|Lumped Element dialog]]&lt;br /&gt;
To define a lumped RLC circuit in your planar structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Lumped Element Dialog by right clicking on the '''Lumped Elements''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Gap Topology''' section of the dialog, select one of the two options: '''Gap on Line''' and '''Gap on Via'''.&lt;br /&gt;
* In the '''Lumped Circuit Type''' section of the dialog, select one of the two options: '''Passive RLC''' and '''Active with Gap Source'''.&lt;br /&gt;
* Depending on your choice of gap topology, in the '''Lumped Circuit Location''' section of the dialog, you will find either a list of all the '''Rectangle Strip Objects''' or a list of all the '''PEC Via Objects''' available in the project workspace. Select the desired rectangle strip or embedded PEC via object.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the rectangle strip line or from the bottom of the via object, whichever the case. The value of '''Offset''' by default is initially set to the center of the line or via.&lt;br /&gt;
* In the '''Load Properties''' section, the series and shunt resistance values Rs and Rp are specified in Ohms, the series and shunt inductance values Ls and Lp are specified in nH (nanohenry), and the series and shunt capacitance values Cs and Cp are specified in pF (picofarad). Only the checked elements are taken into account in the total impedance calculation. By default, only the series resistor is checked with a value of 50S, and all other circuit elements are initially greyed out.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] allows you to define a voltage source in series with a series-parallel RLC combination and place them across the gap. This is called an active lumped element. If you choose the '''Active with Gap Source''' option of the '''Lumped Circuit Type''' section of the dialog, the right section of the dialog entitled '''Source Properties''' becomes enabled, where you can you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of PMC traces) and the '''Phase''' in degrees. Also, the box labeled '''Direction''' becomes relevant in this case which contains a gap source. Otherwise, a passive RLC circuit does not have polarity.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects or PEC via objects, the array object will also be listed as an eligible object for lumped element placement. A lumped element will then be placed on each element of the array. All the lumped elements will have identical direction, offset, resistance, inductance and capacitance values. If you define an active lumped element, you can prescribe certain amplitude and/or phase distribution to the gap sources just like in the case of gap and probe sources. The available amplitude distributions include '''Uniform''', '''Binomial'''''', Chebyshev''' and '''Data File'''.&lt;br /&gt;
&lt;br /&gt;
{{Note|The impedance of the lumped circuit is calculated at the operating frequency of the project using the specified R, L and C values. As you change the frequency, the value of the impedance that is passed to the Planar MoM engine will change.}}&lt;br /&gt;
&lt;br /&gt;
=== Calculating Scattering Parameters Using Prony's Method ===&lt;br /&gt;
&lt;br /&gt;
The calculation of the scattering (S) parameters is usually an important objective of modeling planar structures especially for planar circuits like filters, couplers, etc. As you saw earlier, you can use lumped sources like gaps and probes and even active lumped elements to calculate the circuit characteristics of planar structures. The admittance / impedance calculations based on the gap voltages and currents are accurate at RF and lower microwave frequencies or when the port transmission lines are narrow. In such cases, the electric or magnetic current distributions across the width of the port line are usually smooth, and quite uniform current or voltage profiles can easily be realized. At higher frequencies, however, a more robust method is needed for calculating the port parameters.&lt;br /&gt;
&lt;br /&gt;
One can calculate the scattering parameters of a planar structure directly by analyzing the current distribution patterns on the port transmission lines. The discontinuity at the end of a port line typically gives rise to a standing wave pattern that can clearly be discerned in the line's current distribution. From the location of the current minima and maxima and their relative levels, one can determine the reflection coefficient at the discontinuity, i.e. the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter. A more robust technique is Prony’s method, which is used for exponential approximation of functions. A complex function f(x) can be expanded as a sum of complex exponentials in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f(x) \approx \sum_{n=1}^N c_i e^{-j\gamma_i x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM73.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are complex coefficients and &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are, in general, complex exponents. From the physics of transmission lines, we know that lossless lines may support one or more propagating modes with pure real propagation constants (real &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents). Moreover, line discontinuities generate evanescent modes with pure imaginary propagation constants (imaginary &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents) that decay along the line as you move away from the location of such discontinuities.&lt;br /&gt;
&lt;br /&gt;
In practical planar structures for which you want to calculate the scattering parameters, each port line normally supports one, and only one, dominant propagating mode. Multi-mode transmission lines are seldom used for practical RF and microwave applications. Nonetheless, each port line carries a superposition of incident and reflected dominant-mode propagating signals. An incident signal, by convention, is one that propagates along the line towards the discontinuity, where the phase reference plane is usually established. A reflected signal is one that propagates away from the port plane. Prony's method can be used to extract the incident and reflected propagating and evanescent exponential waves from the standing wave data. From a knowledge of the amplitudes (expansion coefficients) of the incident and reflected dominant propagating modes at all ports, the scattering matrix of the multi-port structure is then calculated. In Prony's method, the quality of the S parameter extraction results depends on the quality of the current samples and whether the port lines exhibit a dominant single-mode behavior. Clean current samples can be drawn in a region far from sources or discontinuities, typically a quarter wavelength away from the two ends of a feed line.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM71.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Minimum and maximum current locations of the standing wave pattern on a microstrip line feeding a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== De-Embedded Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM74.png|thumb|300px|The [[Planar Module]]'s De-embedded Source dialog]]&lt;br /&gt;
EM.Cube's [[Planar Module]] provides de-embedded sources for the exclusive purpose of accurate S parameter calculation based on Prony's method. A de-embedded source is indeed a gap source that is placed close to an open end of a feed line. The other end of the line is typically connected to a planar structure of interest. Like gap sources, de-embedded sources can be placed only on rectangle strip objects. '''During mesh generation, EM.Cube automatically extends the length of a port line that hosts a de-embedded source to about two effective wavelengths.''' This is done to provide enough length for formation of a clean standing wave current pattern. The effective wavelength of a transmission line for length extension purposes is calculated in a similar manner as for the planar mesh resolution. It is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where &amp;amp;epsilon;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivities of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivities of the two substrate layers just above and below the metallic trace. The host port line must always be open from one end to allow for its length extension. You have to make sure that there are no objects standing on the way of the extended port line to avoid any unwanted overlaps.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM72.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The mesh of a patch antenna excited with a de-embedded source. Note the feed line extension in the mesh view.&lt;br /&gt;
&lt;br /&gt;
You can define de-embedded source on metal (PEC), slot (PMC) and conductive sheet traces. To define a de-embedded source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the De-Embedded Source Dialog by right clicking on the '''De-Embedded Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' or arrays of such objects that are available in the project workspace. The box labeled '''Direction''' shows the direction the phase reference plane for S parameter calculation and determines which end of the host line to place the source at. You have the option to select either the positive or negative direction to bounce the source between the two ends of the line.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the phase reference plane from the end of the feed line object. The value of '''Offset''' by default is initially set to zero, meaning that the S parameters are calculated at the plane passing through the end of the feed line. Type in a new offset value or use the spin buttons to move the source arrow along the line away from its end. As you change the offset value, you can see the source arrow move along its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of slot traces) and '''Phase''' in degrees.&lt;br /&gt;
* In the '''Prony Mode Extraction''' section, you can specify the '''Number of Prony Modes''', which refers to the number of positive-negative exponential pairs that are extracted from the standing wave current data. The default value is 1 and represents the dominant quasi-TEM incident/reflected signal pair.&lt;br /&gt;
&lt;br /&gt;
In a planar project with de-embedded sources, if you do not define any ports, the feed lines will simply be extended, and the exciting gap sources will be placed at the open ends of these extended lines. Note that if you define a de-embedded source along with a port definition in your project, then all the other port-assigned sources of your project must be of the same de-embedded type. You can define de-embedded sources for coplanar waveguides (CPW) on slot traces. To do so, you need to place two collocated, de-embedded sources with identical offsets (same phase reference plane), same source amplitudes but 180° phase difference. Note that for CPW structures, setting the number of Prony modes to 2 can get you more accurate results. In this case, the two extracted Prony modes will include the incident and reflected, odd and even, propagating modes of the CPW.&lt;br /&gt;
&lt;br /&gt;
=== Using the Line Calculator ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides a simple calculator for analyzing planar transmission lines. It is based on the frequency domain finite difference (FDFD) technique. You can find the characteristic impedance, effective permittivity and guide wavelength of a TEM or quasi-TEM transmission line defined based on your project's background structure. Therefore, any arbitrary stack-up configuration with any number of substrate layers can be considered.&lt;br /&gt;
&lt;br /&gt;
To access the Line Calculator, first you have to select a metal (PEC) trace or a slot (PMC) trace in the Navigation Tree. Right click on the name of a trace and select '''Line Calc...''' from the contextual menu to open the Line Calc Dialog. You can analyze a metal strip line on any PEC trace or a coplanar waveguide (coupled slot lines) on any PMC trace. The 2D line structure to be analyzed by the FDFD method consists of the background structure of your project with a metal strip or CPW located at the Z-plane of your selected trace. Depending on whether your open the Line Calc dialog from a metal trace or a slot trace, a picture of a microstrip line or a CPW line appear at the top of the dialog, respectively. In the former case, you have to specify '''Strip Width''' in the project units. In the latter case, you have to specify '''Slot Width''', too. Keep in mind that the strip width is equal to the spacing between the two slot lines minus the width of individual slot lines. Clicking the Analyze button of the dialog evokes the FDTD simulator, and calculated results are reflected in the boxes labeled '''Zo''', '''Effective Permittivity''' and '''Guide Wavelength'''.&lt;br /&gt;
&lt;br /&gt;
When your background structure involves a slot (PMC) trace, then there is an infinite PEC ground plane at the plane of the slot trace. In that case, when you analyze a strip line on a metal trace, you must keep in mind that your stack-up configuration will be truncated by the slot's ground plane just for purpose of Z&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; calculation. A typical case of this type is a slot-coupled patch antenna fed by a microstrip line underneath the slot. From the point of view of the Line Calculator, the microstrip line lies on a substrate layer that is backed by the slot's ground plane and it does not see the substrate layer lying above the slot plane.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM75.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Analyzing a metal strip line using the line calculator.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM76.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Analyzing a coplanar waveguide using the line calculator.&lt;br /&gt;
&lt;br /&gt;
=== Short Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM110.png|thumb|250px|Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A short dipole is the simplest type of radiator, which consists of a short current element of length &amp;amp;amp;DELTA;l, aligned along a unit vector û and carrying a current of I Amperes. The product I&amp;amp;amp;DELTA;l is often called the dipole moment and gives a measure of the radiator's strength. A short dipole in the free space generates an azimuth-symmetric, almost omni-directional, far field. However, the radiated fields of a short dipole above a layered planar background structure are greatly altered by the presence of the substrate layers. Note that the electric and magnetic field radiated by a short dipole in the presence of a layered background structure are indeed nothing but the dyadic Green's functions of that structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{EJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{HJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM109(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To define a short dipole source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Short Dipoles''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' The Short Dipole Dialog opens up.&lt;br /&gt;
* In the section titled '''Source Location''', enter values for the X, Y and Z coordinates of the dipole's center. By default, a new dipole is placed at the origin of coordinates. As you change the coordinates using the spin buttons, you will see the dipole move in the project workspace.&lt;br /&gt;
* In the section titled '''Source Properties''', you can change the values of the dipole's '''Amplitude''' (in A), '''Phase''' (in degrees) and '''Length''' in the project's length units. A new dipole, by default, is Z-directed. You can change its orientation by entering the components of its unit vector in the three boxes labeled '''Direction Unit Vector'''.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM77.png|thumb|300px|[[Planar Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure with an incident plane wave to explore its scattering characteristics such as radar cross section (RCS). Exciting an antenna structure with an incident plane wave is equivalent to operating it in the &amp;amp;quot;receive&amp;amp;quot; mode. Plane wave excitation in the [[Planar Module]] is particularly useful for calculation of reflection and transmission coefficients of periodic surfaces. Note that the incident plane wave in your project bounces off the layered background structure and part of it also penetrates the substrate layers. The total incident field that is used to calculate the excitation vector of the MoM linear system is a superposition of the incident, reflected and transmitted plane waves at various regions of your planar structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{inc}(r)} = E_0 (\mathbf{\hat{e}_1} e^{ -jk_0 \mathbf{\hat{k}_1\cdot r} } + &lt;br /&gt;
R \mathbf{\hat{e}_2} e^{ -jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{inc}(r)} = \frac{E_0}{\eta_0} ( \mathbf{\hat{k}_1 \times \hat{e}_1} e^{-jk_0 \mathbf{\hat{k}_1 \cdot r} } + &lt;br /&gt;
R \mathbf{\hat{k}_2 \times \hat{e}_2} e^{-jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi&amp;lt;/math&amp;gt; is the characteristic impedance of the free space, '''k&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the unit propagation vectors of the incident plane wave and the wave reflected off the topmost substrate layer, respectively, and '''ê&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''ê&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the polarization vectors corresponding to the electric field of those waves. R is the reflection coefficient at the interface between the top half-space and the topmost substrate layer and has different values for the TM and TE polarizations.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the theta and phi angles of the propagation vector in the spherical coordinate system. The default values are &amp;amp;theta; = 180° and &amp;amp;phi; = 0°, representing a normally incident plane wave propagating along the -Z direction with a +X-polarized electric field vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization cases, the magnetic and electric fields are parallel to the XY plane, respectively. The left-hand (LCP) and right-hand (RCP) circular polarization cases are restricted to normal incidences only (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the '''Amplitude''' of the incident electric field in V/m and '''Phase''' in degrees. The default field Amplitude is 1 V/m, with a zero Phase.&lt;br /&gt;
* The direction of the Plane Wave is determined by the incident '''Theta''' and '''Phi''' angles expressed in the spherical coordinate system in degrees. You have to choose the '''Polarization''' of the plane wave from the four options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''and '''RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''. The components of the unit propagation vector are shown based on your choice of the angles of incidence. The components of the normalized E- and H-field vectors are also displayed based on your choice of polarization.&lt;br /&gt;
&lt;br /&gt;
== Running Planar MoM Simulations ==&lt;br /&gt;
&lt;br /&gt;
The first step of planning a planar MoM simulation is defining your planar structure. This consists of the background structure plus all the finite-sized metal and slot trace objects and possibly embedded metal or dielectric objects that are interspersed among the substrate layers. The background stack-up is defined in the Layer Stack-up dialog, which automatically opens up as soon as you enter the [[Planar Module]]. The metal and slot traces and embedded object sets are listed in the Navigation Tree, which also shows all the geometrical (CAD) objects you draw in the project workspace under each object group at different Z-planes.&lt;br /&gt;
&lt;br /&gt;
The next step is to decide on the excitation scheme. If your planar structure has one or more ports and you seek to calculate its port characteristics, then you have to choose one of the lumped source types or a de-embedded source. If you are interested in the scattering characteristics of your planar structure, then you must define a plane wave source. Before you can run a planar MoM simulation, you also need to decide on the project's observables. These are the simulation data that you expect EM.Cube to generate as the outcome of the numerical simulation. EM.Cube's [[Planar Module]] offers the following observables:&lt;br /&gt;
&lt;br /&gt;
* Current Distribution&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Far Fields (Radiation Patterns or Radar Cross Section)&lt;br /&gt;
* Huygens Surfaces&lt;br /&gt;
* Port Characteristics&lt;br /&gt;
* Periodic Characteristics&lt;br /&gt;
&lt;br /&gt;
If you run a simulation without having defined any observables, no data will be generated at the end of the simulation. Some observables require a certain type of excitation source. For example, port characteristics will be calculated only if the project contains a port definition, which in turn requires the existence of at least one gap or probe or de-embedded source. The periodic characteristics (reflection and transmission coefficients) are calculated only if the structure has a periodic domain and excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Simulation Modes ===&lt;br /&gt;
&lt;br /&gt;
The simplest simulation type in EM.Cube is an analysis. In this mode, the planar structure in your project workspace is meshed at the center frequency of the project. EM.Cube generates an input file at this single frequency, and the Planar MoM simulation engine is run once. Upon completion of the planar MoM simulation, a number of data files are generated depending on the observables you have defined in your project. An analysis is a single-run simulation.&lt;br /&gt;
&lt;br /&gt;
EM.Cube offers a number of multi-run simulation modes. In such cases, the Planar MoM simulation engine is run multiple times. At each engine run, certain parameters are varied and a collection of simulation data are generated. At the end of a multi-run simulation, you can graph the simulation results in EM.Grid or you can animate the 3D simulation data from the Navigation Tree. For example, in a frequency sweep, the frequency of the project is varied over its specified bandwidth. Port characteristics are usually plotted vs. frequency, representing your planar structure's frequency response. In an angular sweep, the &amp;amp;theta; or &amp;amp;phi; angle of incidence of a plane wave source is varied over their respective ranges. EM.Cube's [[Planar Module]] currently provides the following types of multi-run simulation modes:&lt;br /&gt;
&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
* Angular Sweep&lt;br /&gt;
* R/T Macromodel&lt;br /&gt;
* Huygens Sweep&lt;br /&gt;
* [[Optimization]]&lt;br /&gt;
* HDMR&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting a simulation mode in [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
To run a planar MoM analysis of your project structure, open the Run Simulation Dialog by clicking the '''Run''' [[File:run_icon.png]] button on the '''Simulate Toolbar''' or select '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt;''' '''Run''' or use the keyboard shortcut '''Ctrl+R'''. The '''Analysis''' option of the '''Simulation Mode''' dropdown list is selected by default. Once you click the '''Run''' button, the simulation starts. A new window, called the '''Output Window''', opens up that reports the different stages of simulation and the percentage of the tasks completed at any time. After the simulation is successfully completed, a message pops up and reports the end of simulation. In certain cases like calculating scattering parameters of a circuit or reflection / transmission characteristics of a periodic surface, some results are also reported in the Output Window. At the end of a simulation, you need to click the '''Close''' button of the Output Window to return to the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM78.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Stages Of A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar MoM simulation engine uses a particular formulation of the method of moments called mixed potential integral equation (MPIE). Due to high-order singularities, the dyadic Green's functions for electric fields generated by electric currents as well as the dyadic Green's functions for magnetic fields generated by magnetic currents have very slow convergence behaviors. Instead of using these slowly converging dyadic Green's function, the MPIE formulation uses vector and scalar potentials. These include vector electric potential '''A(r)''', scalar electric potential K&amp;lt;sup&amp;gt;&amp;amp;Phi;&amp;lt;/sup&amp;gt;'''(r)''', vector magnetic potential '''F(r)''' and scalar magnetic potential K&amp;lt;sup&amp;gt;&amp;amp;Psi;&amp;lt;/sup&amp;gt;'''(r)'''. These potentials have singularities of lower orders. As a result, they coverage relatively faster. The speed of their convergence is further increased drastically using special singularity extraction techniques.&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation consists of two major stages: matrix fill and linear system inversion. In the first stage, the moment matrix and excitation vector are calculated. In the second stage, the MoM system of linear equations is inverted using one of the several available matrix solvers to find the unknown coefficients of all the basis functions. The unknown electric and magnetic currents are linear superpositions of all these elementary solutions. These can be visualized in EM.Cube using the current distribution observables. Having determined all the electric and magnetic currents in your planar structure, EM.Cube can then calculate the near fields on prescribed planes. These are introduced as field sensor observables. The near-zone electric and magnetic fields are calculated using a spectral domain formulation of the dyadic Green's functions. Finally the far fields of the planar structure are calculated in the spherical coordinate system. These calculations are performed using the asymptotic form of the dyadic Green's functions using the &amp;amp;quot;stationary phase method&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Setting Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation involves a number of numerical parameters that take preset default values unless you change them. You can access these parameters and change their values by clicking the '''Settings''' button next to the '''Select Engine''' dropdown list in the [[Planar Module]]'s Simulation Run dialog. In most cases, you do not need to open this dialog and you can leave all the default numerical parameter values intact. However, it is useful to familiarize yourself with these parameters, as they may affect the accuracy of your numerical results.&lt;br /&gt;
&lt;br /&gt;
The Planar MoM Engine Settings Dialog is organized in a number of sections. Here we describe some of the numerical parameters. The &amp;amp;quot;'''Matrix Fill'''&amp;amp;quot; section of the dialog deals with the operations involving the dyadic Green's functions. You can set a value for the '''Convergence Rate for Integration''', which is 1E-5 by default. This is used for the convergence test of all the infinite integrals in the calculation of the Hankel transform of spectral-domain dyadic Green's functions. When the substrate is lossy, the surface wave poles are captured in the complex integration plane using contour deformation. You can change the maximum number of iterations involved in this deformed contour integration, whose default value is 20. When the substrate is very thin with respect to the wavelength, the dyadic Green's functions exhibit numerical instability. Additional singularity extraction measures are taken to avoid numerical instability but at the expense of increased computation time. By default, a thin substrate layer is defined to a have a thickness less than 0.01&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;, where &amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective wavelength. You can modify the definition of &amp;amp;quot;Thin Substrate&amp;amp;quot; by entering a value for '''Thin Substrate Threshold''' different than the default 0.01. The parameter '''Max Coupling Range''' determines the distance threshold in wavelength between the observation and source points after which the Green's interactions are neglected. This distance by default is set to 1,000 wavelengths. For electrically small structures, the phase variation across the structure may be negligible. In such cases, a fast quasi-static analysis can be carried out. You can set this threshold in wavelengths in the box labeled '''Max Dimensions for Quasi-Static Analysis'''.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Spectral Domain Integration&amp;amp;quot; section of the dialog, you can set a value to '''Max Spectral Radius in k0''', which has a default value of 30. This means that the infinite spectral-domain integrals in the spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; are pre-calculated and tabulated up to a limit of 30k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant. These integrals may converge much faster based on the specified Convergence Rate for Integration described earlier. However, in certain cases involving highly oscillatory integrands, much larger integration limits like 100k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; might be needed to warrant adequate convergence. For spectral-domain integration along the real k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; axis, the interval [0, Nk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;] is subdivided into a large number of sub-intervals, within each an 8-point Gauss-Legendre quadrature is applied. The next parameter, '''No. Radial Integration Divisions per k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;''', determines how small these intervals should be. By default, 2 divisions are used for the interval [0, k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;]. In other words, the length of each integration sub-interval is k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/2. You can increase the resolution of integration by increasing this value above 2. Finally, instead of 2D Cartesian integration in the spectral domain, a polar integration is performed. You can set the '''No. of Angular Integration Points''', which has a default value of 100.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM79.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Linear System Solvers ===&lt;br /&gt;
&lt;br /&gt;
After the MoM impedance matrix '''[Z]''' (not to be confused with the impedance parameters) and excitation vector '''[V]''' have been computed through the matrix fill process, the planar MoM simulation engine is ready to solve the system of linear equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[Z]}_{N\times N} \cdot \mathbf{[I]}_{N\times 1} = \mathbf{[V]}_{N\times 1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM81.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''[I]''' is the solution vector, which contains the unknown amplitudes of all the basis functions that represent the unknown electric and magnetic currents of finite extents in your planar structure. In the above equation, N is the dimension of the linear system and equal to the total number of basis functions in the planar mesh. EM.Cube's linear solvers compute the solution vector'''[I]''' of the above system. You can instruct EM.Cube to write the MoM matrix and excitation and solution vectors into output data files for your examination. To do so, check the box labeled &amp;amp;quot;'''Output MoM Matrix and Vectors'''&amp;amp;quot; in the Matrix Fill section of the Planar MoM Engine Settings dialog. These are written into three files called mom.dat1, exc.dat1 and soln.dat1, respectively.&lt;br /&gt;
&lt;br /&gt;
There are a large number of numerical methods for solving systems of linear equations. These methods are generally divided into two groups: direct solvers and iterative solvers. Iterative solvers are usually based on matrix-vector multiplications. Direct solvers typically work faster for matrices of smal to medium size (N&amp;amp;lt;3,000). EM.Cube's [[Planar Module]] offers five linear solvers:&lt;br /&gt;
&lt;br /&gt;
# LU Decomposition Method&lt;br /&gt;
# Biconjugate Gradient Method (BiCG)&lt;br /&gt;
# Preconditioned Stabilized Biconjugate Gradient Method (BCG-STAB)&lt;br /&gt;
# Generalized Minimal Residual Method (GMRES)&lt;br /&gt;
# Transpose-Free Quasi-Minimum Residual Method (TFQMR)&lt;br /&gt;
&lt;br /&gt;
Of the above list, LU is a direct solver, while the rest are iterative solvers. BiCG is a relatively fast iterative solver, but it works only for symmetric matrices. You cannot use BiCG for periodic structures or planar structures that contain both metal and slot traces at different planes, as their MoM matrices are not symmetric. The three solvers BCG-STAB, GMRES and TtFQMR work well for both symmetric and asymmetric matrices and they also belong to a class of solvers called '''Krylov Sub-space Methods'''. In particular, the GMRES method always provides guaranteed unconditional convergence.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, provides a &amp;amp;quot;'''Automatic'''&amp;amp;quot; solver option that picks the best method based on the settings and size of the numerical problem. For linear systems with a size less than N = 3,000, the LU solver is used. For larger systems, BiCG is used when dealing with symmetric matrices, and GMRES is used for asymmetric matrices. If the size of the linear system exceeds N = 15,000, the sparse version of the iterative solvers is used, utilizing a row-indexed sparse storage scheme. You can override the automatic solver option and manually set you own solver type. This is done using the '''Solver Type''' dropdown list in the &amp;amp;quot;'''Linear System Solver'''&amp;amp;quot; section of the Planar MoM Engine Settings dialog. There are also a number of other parameters related to the solvers. The default value of '''Tolerance of Iterative Solver''' is 1E-3, which can be increased for more ill-conditioned systems. The maximum number of iterations is usually expressed as a multiple of the systems size. The default value of '''Max No. of Solver Iterations / System Size''' is 3. For extremely large systems, sparse versions of iterative solvers are used. In this case, the elements of the matrix are thresholded with respect to the larges element. The default value of '''Threshold for Sparse Solver''' is 1E-6, meaning that all the matrix elements whose magnitude is less than 1E-6 times the large matrix elements are set equal to zero. There are two more parameters that are related to the Automatic Solver option. These are &amp;amp;quot;''' User Iterative Solver When System Size &amp;amp;gt;'''&amp;amp;quot; with a default value of 3,000 and &amp;amp;quot;''' Use SParse Storage When System Size &amp;amp;gt;''' &amp;amp;quot; with a default value of 15,000. In other words, you control the automatic solver when to switch between direct and iterative solvers and when to switch to the sparse version of iterative solvers.&lt;br /&gt;
&lt;br /&gt;
If your computer has an Intel CPU, then EM.Cube offers special versions of all the above linear solvers that have been optimized for Intel CPU platforms. These optimal solvers usually work 2-3 time faster than their generic counterparts. When you install EM.Cube, the option to use Intel-optimized solvers is already enabled. However, you can disable this option (e.g. if your computer has a non-Intel CPU). To do that, open the EM.Cube's Preferences Dialog from '''Menu &amp;amp;gt; Edit &amp;amp;gt; Preferences''' or using the keyboard shortcut '''Ctrl+H'''. Select the Advanced tab of the dialog and uncheck the box labeled &amp;amp;quot;''' Use Optimized Solvers for Intel CPU'''&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM82.png]]&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
Electric and magnetic currents are the fundamental output data of a planar MoM simulation. After the numerical solution of the MoM linear system, they are found using the solution vector '''[I]''' and the definitions of the electric and magnetic vectorial basis functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{[I]}_{N\times 1} = &lt;br /&gt;
\begin{bmatrix} I^{(J)} \\ \\ V^{(M)} \end{bmatrix} \quad \Rightarrow \quad&lt;br /&gt;
&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\mathbf{J(r)} = \sum_{n=1}^N I_n^{(J)} \mathbf{f_n^{(J)} (r)} \\&lt;br /&gt;
\\&lt;br /&gt;
\mathbf{M(r)} = \sum_{k=1}^K V_k^{(M)} \mathbf{f_k^{(M)} (r)}&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that currents are complex vector quantities. Each electric or magnetic current has three X, Y and Z components, and each complex component has a magnitude and phase. You can visualize the surface electric currents on metal (PEC) and conductive sheet traces, surface magnetic currents on slot (PMC) traces and vertical volume currents on the PEV vias and embedded dielectric objects. 3D color-coded intensity plots of electric and magnetic current distributions are visualized in the project workspace, superimposed on the surface of physical objects.&lt;br /&gt;
&lt;br /&gt;
In order to view the current distributions, you must first define them as observables before running the planar MoM simulation. To do that, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. At the top of the dialog and in the section titled '''Active Trace / Set''', you can select a trace or embedded object set where you want to observe the current distribution. You can also select the current map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for current amplitude and phase, while the latter generates a 3D vector plot.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM84.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Current Distribution dialog.&lt;br /&gt;
&lt;br /&gt;
Once you close the current distribution dialog, the label of the selected trace or object set is added under the '''Current Distributions''' node of the Navigation Tree. &lt;br /&gt;
&lt;br /&gt;
{{Note|You have to define a separate current distribution observable for each individual trace or embedded object set.}}&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the current distribution nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''J''') and magnetic ('''M''') currents as well as the total electric and magnetic currents defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{J_{tot}} | = \sqrt{|J_x|^2 + |J_y|^2 + |J_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{M_{tot}} | = \sqrt{|M_x|^2 + |M_y|^2 + |M_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can click on any current plot to visualize it in the project workspace. A legend box at the upper right corner of the screen shows the color map scale as well as the minimum, maximum, mean and standard deviation of the current data and its units. To exit the 3D plot view and return to EM.Cube's normal view, hit the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM85(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The current distribution map of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM86(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Vectorial (cone) visualization of the current distribution on a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
Once all the current distributions are known in a planar structure, the electric and magnetic fields can be calculated everywhere in that structure using the dyadic Greens's functions of the background structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{EJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{EM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{HJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{HM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM92(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above equations can be cast into the spectral domain as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{EJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{EM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{HJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{HM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM93(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Calculation of the near-zone fields (fields at the vicinity of the unknown currents) is done at the post-processing stage and in a Cartesian coordinate systems. These calculations involve doubly infinite spectral-domain integrals, which are computed numerically. As was mentioned earlier, EM.Cube's planar MoM engine rather uses a polar integration scheme, where the radial spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; is integrated over the interval [0, Mk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;], M being a large enough number to represent infinity, and the angular spectral variable t is integrated over the interval [0, 2&amp;amp;pi;]. You also saw some of the numerical parameters related to this spectral-domain integration scheme.&lt;br /&gt;
&lt;br /&gt;
{{Note|When the observation plane is placed very close to the radiating J and M currents, the Green's functions exhibit singularities, which translate to very slow convergence or divergence of the integrals. You need to be careful to place field sensors at adequate distances from these radiating sources.}}&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|300px|[[Planar Module]]'s Field Sensor dialog]]&lt;br /&gt;
In order to view the near field distributions, you must first define field sensor observables before running the planar MoM simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of near field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear.&lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.&lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a planar MoM simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{E_{tot}}| = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{H_{tot}}| = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules, near field calculations in the [[Planar Module]] usually takes substantial time. This is due to the fact that at the end of a planar MoM simulation, the fields are not available anywhere (as opposed to the [[FDTD Module]]), and their computation requires integration of complex dyadic Green's functions (as opposed to [[MoM3D Module]]'s free space Green's functions).&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM116.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone electric field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone magnetic field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
Unlike differential-based methods, MoM simulators do not need a radiation box to calculate the far field data. The far-zone fields are calculated directly by integrating the currents on the traces and across the embedded objects using the asymptotic form of the background structure’s dyadic Green's functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{ff}(r)} = \iiint_V \mathbf{ \overline{\overline{G}}_{EJ,ff}(r|r') \cdot J(r') } \, d\nu ' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM,ff}(r|r') \cdot M(r') } \, d\nu '&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \dfrac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; is the characteristic impedance of the free space. As can be seen from the above equations, the far fields have the form of a TEM wave propagating in the radial direction away from the origin of coordinates. This means that the far-field magnetic field is always perpendicular to the electric field and the propagation vector, which in this case happens to be the radial unit vector in the spherical coordinate system. In other words, one only needs to know the far-zone electric field and can easily calculate the far-zone magnetic field from it. In EM.Cube's mixed potential integral equation formulation, the far-zone electric field can be expressed in terms of the asymptotic form of the vector electric and magnetic potentials '''A''' and '''F''':&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{E^{ff}}(x,y,z) = j k_0 \eta_0 \hat{r} \times [\hat{r} \times \mathbf{A}(r \to \infty)] +&lt;br /&gt;
j k_0 \hat{r} \times \mathbf{F}(r \to \infty)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The asymptotic form of these vector potentials are calculated using the &amp;amp;quot;'''Method of Stationary Phase'''&amp;amp;quot; when k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;rarr; &amp;amp;infin;. In that case, one can use the approximation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_0 |\mathbf{r-r'}| \approx k_0 (r - \mathbf{\hat{r} \cdot r'}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM115.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After applying the stationary phase method, one can extract the spherical wave factor exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/r from the far-zone electric field, leaving the rest as functions of the spherical angles &amp;amp;theta; and &amp;amp;phi;. In other words, the far field is normalized to r, the distance from the field observation point to the origin. It is customary to express the far fields in spherical components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;. Note that the outward propagating, TEM-type, far fields do not have radial components, i.e. E&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 0.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\theta}}(\theta, \phi) = \cos\theta \cos\phi E_x + \cos\theta \sin\phi E_y - \sin\theta E_z &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\phi}}(\theta, \phi) = -\sin\phi E_x + \cos\phi E_y &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM114.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM118.png|thumb|300px|[[Planar Module]]'s Radiation Pattern dialog]]&lt;br /&gt;
Even though the planar MoM engine does not need a radiation box, you still have to define a &amp;amp;quot;Far Field&amp;amp;quot; observable for radiation pattern calculation. This is because far field calculations take time and you have to instruct EM.Cube to perform these calculations. To define a far field, right click the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...'''. The Radiation Pattern Dialog opens up. You may accept the default settings, or you can change the value of '''Angle Increment''', which is expressed in degrees. You can also choose to '''Normalize 2D Patterns'''. In that case, the maximum value of a 2D paten graph will have a value of 1; otherwise, the actual far field values in V/m will be used on the graph.&lt;br /&gt;
&lt;br /&gt;
Once a planar MoM simulation is finished, three far field items are added under the Far Field item in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the &amp;amp;quot;Total&amp;amp;quot; far field. The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the whole structure or parts of it. In a 3D radiation pattern plot, the fields are always normalized to the maximum value of the total far field for visualization purpose:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM89.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM119.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D polar radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM120.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D vectorial (cone) radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
The 2D radiation pattern graphs can be plotted from EM.Cube's '''Data Manager'''. A total of eight 2D radiation pattern graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section of Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM124.png|thumb|300px|Planar Module's Radar Cross Section dialog]]&lt;br /&gt;
&lt;br /&gt;
When a planar structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields of that planar structure. EM.Cube can also calculate the radar cross section (RCS) of a planar target:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{|E_{\theta}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{|E_{\phi}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{|E_{tot}^{scat}|^2}{|E^{inc}|^2} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM123.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note that in this case the RCS is defined for a finite-sized target in the presence of an infinite background structure.''' The scattered &amp;amp;theta; and &amp;amp;phi; components of the far-zone electric field are indeed what you see in the 3D far field visualization of radiation (scattering) patterns. Instead of radiation or scattering patterns, you can instruct EM.Cube to plot 3D visualizations of &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and the total RCS. To do so, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* At the end of a planar MoM simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This fourth plane cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D mono-static radar cross section plot of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Running a Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
In a frequency sweep, the operating frequency of a planar structure is varied during each sweep run. EM.Cube's [[Planar Module]] offers two types of frequency sweep: Uniform and Adaptive. In a uniform frequency sweep, the frequency range and the number of frequency samples are specified. The samples are equally spaced over the frequency range. At the end of each individual frequency run, the output data are collected and stored. At the end of the frequency sweep, the 3D data can be visualized and/or animated, and the 2D data can be graphed in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
To run a uniform frequency sweep, open the '''Simulation Run Dialog''', and select the '''Frequency Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the frequency sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Frequency Settings''' dialog. The '''Frequency Range'''is initially set equal to your project's center frequency minus and plus half bandwidth. But you can change the values of '''Start Frequency'''and '''End Frequency''' as well as the '''Number of Samples'''. The dialog offers two options for '''Frequency Sweep Type''': '''Uniform''' or '''Adaptive'''. Select the former type. It is very important to note that in a MoM simulation, changing the frequency results in a change of the mesh of the structure, too. This is because the mesh density is defined in terms of the number of cells per effective wavelength. By default, during a frequency sweep, EM.Cube fixes the mesh density at the highest frequency, i.e., at the &amp;amp;quot;End Frequency&amp;amp;quot;. This usually results in a smoother frequency response. You have the option to fix the mesh at the center frequency of the project or let EM.Cube &amp;amp;quot;remesh&amp;amp;quot; the planar structure at each frequency sample during a frequency sweep. You can make one of these three choices using the radio button in the '''Mesh Settings''' section of the dialog. Closing the Frequency Settings dialog returns you to the Simulation Run dialog, where you can start the planar MoM frequency sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Frequency Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Adaptive Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
Frequency sweeps are often performed to study the frequency response of a planar structure. In particular, the variation of scattering parameters like S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; (return loss) and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; (insertion loss) with frequency are of utmost interest. When analyzing resonant structures like patch antennas or planar filters over large frequency ranges, you may have to sweep a large number of frequency samples to capture their behavior with adequate details. The resonant peaks or notches are often missed due to the lack of enough resolution. EM.Cube's [[Planar Module]] offers a powerful adaptive frequency sweep option for this purpose. It is based on the fact that the frequency response of a physical, causal, multiport network can be represented mathematically using a rational function approximation. In other words, the S parameters of a circuit exhibit a finite number of poles and zeros over a given frequency range. EM.Cube first starts with very few frequency samples and tries to fit rational functions of low orders to the scattering parameters. Then, it increases the number of samples gradually by inserting intermediate frequency samples in a progressive manner. At each iteration cycle, all the possible rational functions of higher orders are tried out. The process continues until adding new intermediate frequency samples does not improve the resolution of the &amp;amp;quot;S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;&amp;amp;quot; curves over the given frequency range. In that case, the curves are considered as having converged.&lt;br /&gt;
&lt;br /&gt;
You must have defined one or more ports for your planar structure run an adaptive frequency sweep. Open the Frequency Settings dialog from the Simulation Run dialog and select the '''Adaptive''' option of '''Frequency Sweep Type'''. You have to set values for '''Minimum Number of Samples''' and '''Maximum Number of Samples'''. Their default values are 3 and 9, respectively. You also set a value for the '''Convergence Criterion''', which has a default value of 0.1. At each iteration cycle, all the S parameters are calculated at the newly inserted frequency samples, and their average deviation from the curves of the last cycle is measured as an error. When this error falls below the specified convergence criterion, the iteration is ended. If EM.Cube reaches the specified maximum number of iterations and the convergence criterion has not yet been met, the program will ask you whether to continue the process or exit it and stop.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large frequency ranges, you may have to increase both the minimum and maximum number of samples. Moreover, remeshing the planar structure at each frequency may prove more practical than fixing the mesh at the highest frequency.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Settings adaptive frequency sweep parameters in [[Planar Module]]'s Frequency Settings Dialog.&lt;br /&gt;
&lt;br /&gt;
=== Examining Port Characteristics ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure is excited by gap sources or probe sources or de-embedded sources, and one or more ports have been defined, the planar MoM engine calculates the scattering, impedance and admittance (S/Z/Y) parameters of the designated ports. The scattering parameters are defined based on the port impedances specified in the project's Port Definition dialog. If more than one port has been defined in the project, the S/Z/Y matrices of the multiport network are calculated. Note that the S/Z/Y matrices of an N-port structure are related to each other through the following equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM121.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively, and &amp;lt;math&amp;gt;\mathbf{[\sqrt{Z_0}]}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM122.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the values of S/Z/Y parameters and VSWR data are calculated and reported in the output message window. The S, Z and Y parameters are written into output ASCII data files of complex type with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Every file begins with a header consisting of a few comment lines that start with the &amp;amp;quot;#&amp;amp;quot; symbol. The complex values are arranged into two columns for the real and imaginary parts. In the case of multiport structures, every single element of the S/Z/Y matrices is written into a separate complex data file. For example, you will have data files like S11.CPX, S21.CPX, ..., Z11.CPX, Z21.CPX, etc. The VSWR data are saved to an ASCII data file of real type with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension called, VSWR.DAT.&lt;br /&gt;
&lt;br /&gt;
If you run an analysis, the port characteristics have single complex values, which you can view using EM.Cube's data manager. However, there are no curves to graph. You can plot the S/Z/Y parameters and VSWR data when you have data sets, which are generated at the end of any type of sweep including a frequency sweep. In that case, the &amp;amp;quot;.CPX&amp;amp;quot; files have multiple rows corresponding to each value of the sweep parameter (e.g. frequency). EM.Cube's 2D graph data are plotted in EM.Grid, a versatile graphing utility. You can plot the port characteristics directly from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting port characteristics data to plot from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
You can also see a list of all the port characteristics data files in EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. By default, the S parameters are plotted as double magnitude-phase graphs, while the Y and Z parameters are plotted as double real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You can change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM129.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Data Manager showing a list of the port characteristics data files.&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it in the Data Manager and click its '''Edit''' button. In the Edit File Dialog, choose one of the options provided in the dropdown list labeled '''Graph Type'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM130.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Changing the graph type by editing a data file's properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM134.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plotted on a Smith Chart graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
=== Rational Interpolation Of Scattering Parameters ===&lt;br /&gt;
&lt;br /&gt;
The adaptive frequency sweep described earlier is an iterative process, whereby the Planar MoM simulation engine is run at a certain number of frequency samples at each iteration cycle. The frequency samples are progressively built up, and rational fits for these data are found at each iteration cycle. A decision is then made whether to continue more iterations. At the end of the whole process, a total number of scattering parameter data samples have been generated, and new smooth data corresponding to the best rational fits are written into new data files for graphing. EM.Cube's [[planar Module]] also allows you to generate a rational fit for all or any existing scattering parameter data as a post-processing operation without a need to run additional simulation engine runs.&lt;br /&gt;
&lt;br /&gt;
You can interpolate all the scattering parameters together or select individual parameters. You do this post-processing operation from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select Smart Fit. At the top of the Smart Fit Dialog, there is a dropdown list labeled '''Interpolate''', which gives a list of all the available S parameter data for rational interpolation. The default option is &amp;amp;quot;All Available Parameters&amp;amp;quot;. Then you see a box labeled '''Number of Available Samples''', whose value is read from the data content of the selected complex .CPX data file. Based on the number of available data samples, the dialog reports the '''Maximum Interpolant Order'''. You can choose any integer number for '''Interpolant Order''', from 1 to the maximum allowed. &lt;br /&gt;
&lt;br /&gt;
{{Note|Interpolant order more than 15 will suffer from numerical instabilities even if you have a very large number of data samples.}}&lt;br /&gt;
&lt;br /&gt;
You can use the '''Update''' button of the dialog to generate the interpolated data for a given order. The new data are written to a complex data file with the same name as the selected S parameter and a &amp;amp;quot;'''_RationalFit'''&amp;amp;quot; suffix. While this dialog is still open, you can plot the new data either directly from the Navigation Tree or from the Data Manager. If you are not satisfied with the results, you can return to the Smart Fit dialog and try a higher or lower interpolant order and compare the new data.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM131.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Smart Fit dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM133(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of a two-port structure in magnitude-phase format.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM132(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The smoothed version of the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of the two-port structure using EM.Cube's Smart Fit.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Output Simulation Data ===&lt;br /&gt;
&lt;br /&gt;
Depending on the source type and the types of observables defined in a project, a number of output data are generated at the end of a planar MoM simulation. Some of these data are 2D by nature and some are 3D. The output simulation data generated by EM.Cube's [[Planar Module]] can be categorized into the following groups:&lt;br /&gt;
&lt;br /&gt;
* '''Port Characteristics''': S, Z and Y Parameters and Voltage Standing Wave Ratio (VSWR)&lt;br /&gt;
* '''Radiation Characteristics''': Radiation Patterns, Directivity, Total Radiated Power, Axial Ratio, Main Beam Theta and Phi, Radiation Efficiency, Half Power Beam Width (HPBW), Maximum Side Lobe Level (SLL), First Null Level (FNL), Front-to-Back Ratio (FBR), etc.&lt;br /&gt;
* '''Scattering Characteristics''': Bi-static and Mono-static Radar Cross Section (RCS)&lt;br /&gt;
* '''Periodic Characteristics''': Reflection and Transmission Coefficients&lt;br /&gt;
* '''Current Distributions''': Electric and magnetic current amplitude and phase on all metal and slot traces and embedded objects&lt;br /&gt;
* '''Near-Field Distributions''': Electric and magnetic field amplitude and phase on specified planes and their central axes&lt;br /&gt;
&lt;br /&gt;
At the end of an analysis, the 2D quantities usually have a single value that is written into an ASCII data file. Complex-valued quantities are written into complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Real-valued quantities are written into real data files with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension. Polar 2D radiation pattern data and some other radiation characteristics are written into angular data files with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; extension. In this latter file type, polar data are stored as functions of an angle expressed in degrees. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). If a sweep simulation involves N sweep [[variables]], then the first N columns of the output data files show the samples of those sweep [[variables]]. All the 2D data files are listed in the '''2D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
3D output data, on the other hand, are defined as functions of the space coordinates and are usually of vectorial nature. Cartesian-type and mesh-type data such as current distributions and near-field field distributions are expressed as functions of the Cartesian (X, Y, Z) coordinates. Spherical-type data like far-field radiation patterns and RCS are expressed as functions of the spherical angles (&amp;amp;theta;, &amp;amp;phi;). The 3D radiation patterns are written into a file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension. This file contains the complex values of the &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field (E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;) as well as the total far field magnitude as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The 3D RCS patterns are written into a file with a &amp;amp;quot;'''.RCS'''&amp;amp;quot; extension. This file contains the real values of the &amp;amp;theta;- and &amp;amp;phi;-polarized RCS values as well as the total RCS as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The current distributions are written into data files with a &amp;amp;quot;'''.CUR'''&amp;amp;quot; extension. They contain the real and imaginary parts of the X, Y and Z components of electric ('''J''') and magnetic ('''M''') current on each cells together with the definition of all the node coordinates and node indices of the cells. The near-field distributions are written into data files with a &amp;amp;quot;'''.SEN'''&amp;amp;quot; extension. They contain the amplitude and phase of the X, Y and Z components of electric ('''E''') and magnetic ('''H''') fields as functions of the coordinates of sampling points. All the 3D data files are listed in the '''3D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The 3D Data Files tab of EM.Cube's Data Manager.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM139.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Viewing the contents of a mesh-type 3D data file in Data Manager.&lt;br /&gt;
&lt;br /&gt;
=== Standard vs. Custom Output ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a number of computed quantities are designated as &amp;amp;quot;Standard Output&amp;amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[File:functions_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Functions...'''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[File:custom_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Custom Output...'''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add''' button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit''' button, or you can delete any parameter from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
=== Viewing &amp;amp;amp; Visualizing Various Output Data Types ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a variety of 2D and 3D output data are generated. Some of these can be visualized or graphed directly from the Navigation Tree, while the others can only be accessed from the Data Manager. All of EM.Cube's simulation data are always written into ASCII data files that you can open and inspect or edit. Lists of these 2D and 3D data files appear under Data Manager's various tabs. The generated data also include all of [[Planar Module]]'s legitimate standard outputs that the simulation engine can compute given the specified source and observable types as well as all of your own previously defined custom output parameters. Note that in this release of EM.Cube, all the custom outputs are real-type data. Each custom output is written into a separate real data file with the same name as the parameter's given label and a &amp;amp;quot;'''.DAT'''&amp;amp;quot; file extension. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot its graph in '''EM.Grid'''. You can also view the contents of a data file by selecting its row in th file list and clicking the '''View''' button of the dialog or by simply double-clicking the highlighted row. This opens up a new window containing a convenient spreadsheet that gives a tabular view of the contents of the selected data file. There are a large number of data operations and manipulations that you can perform on the data content including matrix, calculus and statistical calculations as well as computing and plotting new datasets using the &amp;amp;quot;Compute&amp;amp;quot; feature of the spreadsheet. You can make multiple file selection using the keyboard's '''Ctrl''' and '''Shift''' keys.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing an angular file selected and highlighted for further action.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Data Manager's spreadsheet showing the contents of an angular data file.&lt;br /&gt;
&lt;br /&gt;
The 2D output data include real or complex quantities like various port, radiation, scattering and periodic characteristics. At the end of an analysis, most .CPX and .DAT data files have a single complex or real value, respectively. in other words, there are no curves to plot. Exceptions are Cartesian 2D radiation pattern or RCS data files along the principal and user define phi-cut planes, as well as polar 2D radiation pattern or RCS data files of angular type with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; file extension. These files contain the radiation pattern or RCS data as a function of some relevant angle in the specified plane. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). You can plot graphs of the 2D output data files that contain more than one row in '''EM.Grid'''. Each data file has a default graph type. Real data are plotted on EM.Grid's Cartesian graphs. Complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension are plotted on double Cartesian graphs of &amp;amp;quot;'''Magnitude-Phase'''&amp;amp;quot; type, showing the magnitude in dB and phase in radians. You can change the complex data's graph type to the &amp;amp;quot;'''Real-Imaginary'''&amp;amp;quot; or &amp;amp;quot;'''Smith Chart'''&amp;amp;quot; by selecting its entry in the Data Manager and clicking the '''Edit'''button to open the &amp;amp;quot;Edit File Properties Dialog&amp;amp;quot;. Angular data files like polar 2D radiation patterns or RCS, by default, are plotted on EM.Grid's &amp;amp;quot;'''Polar'''&amp;amp;quot; graphs. Note that real data can be graphed on bar charts, too, just as angular can alternatively be graphed on polar stem charts.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM142.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A 2D radiation pattern polar graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's 3D output simulation data usually have a vectorial nature and are defined as functions of the Cartesian or spherical space coordinates. At the end of a planar MoM simulation, you can view 3D visualizations of the vectorial output data such as current distributions, near-field field distributions, far-field radiation patterns and RCS in EM.Cube's project workspace by clicking on the corresponding observable entries in the Navigation Tree. When you run a sweep simulation of some sort, multiple 3D plots appear on the Navigation Tree representing all the sweep variable samples. You can animate these 3D visualization plots very conveniently from the Navigation Tree. To do so, right click on an observable's name in the Navigation Tree and select the '''Animation''' item from the contextual menu. Make sure that you right click on the observable's parent node, not on one of its child components corresponding to the sweep variable samples. The 3D plot in the project workspace starts to animate and continues forever until to stop it. A new window called &amp;amp;quot;''' Animation Controls Dialog'''&amp;amp;quot; opens up at the lower right corner of the EM.Cube desktop. This dialog allows you to control the animation speed using a box labeled '''Rate''', whose value multiplied by 100 milliseconds indeed gives the frame duration. You can speed up the animation or slow it down from the default rate of one frame per 300ms. The box labeled '''Sample''' show the current frame's plot label at any time. You can pause the animation, rewind it to the first frame, fast-forward it to the last frame or manually step it through back and forth using the movement buttons marked with the symbols |&amp;amp;lt;, &amp;amp;lt;&amp;amp;lt;, ||, &amp;amp;gt;&amp;amp;gt;,&amp;amp;gt;|.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM135.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Animating 3D radiation patterns as the send of a frequency sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM136.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep ===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the planar MoM simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweep, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed later, parametric sweeps are simple and straightforward and do not required careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;amp;quot;expression&amp;amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;amp;quot;formal&amp;amp;quot; option, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[File:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; [[Variables]]...'''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;amp;quot;Add Variable Dialog&amp;amp;quot;. Choose a '''Name''' for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;amp;quot;Variable List&amp;amp;quot;. You can also see the '''Current Value''' of every variable at any time in the Variable as dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit''' button or indirectly during a parametric sweep. In the former case, you have to click the '''Update''' button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, trace and object set dialogs, stack-up dialog or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;amp;quot;Variable List&amp;amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;amp;quot;current Value&amp;amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;amp;quot;Independent&amp;amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete''' and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;amp;quot;Start&amp;amp;quot; and &amp;amp;quot;End&amp;amp;quot; value and is incremented by a predetermined &amp;amp;quot;Step&amp;amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution''' is defined by &amp;amp;quot;Minimum&amp;amp;quot; and &amp;amp;quot;Maximum&amp;amp;quot; values, while '''Normal (Gaussian) Distribution''' is defined by a &amp;amp;quot;Mean&amp;amp;quot; and &amp;amp;quot;Standard Deviation&amp;amp;quot;. You need to specify the &amp;amp;quot;Number of Samples&amp;amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;amp;quot;Define Sweep Variable Dialog&amp;amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete''' and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up''' and '''Move Down''' buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;amp;quot;fake&amp;amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. If you run a dry run while EM.Cube is in the mesh view mode, then the planar mesh of your structure is updated for each combination of the sweep variable samples during the dry run process. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Optimizing Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (Optional but Highly Recommended) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;amp;lt;, &amp;amp;lt;=, &amp;amp;gt; or &amp;amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;amp;quot;'''=='''&amp;amp;quot; are regarded a &amp;amp;quot;'''Goals'''&amp;amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;amp;quot;'''Target Value'''&amp;amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;amp;quot;(LHS - RHS) == 0&amp;amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;amp;quot;non-Equal&amp;amp;quot; logical operators are regarded a &amp;amp;quot;'''Constraints'''&amp;amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[File:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;amp;quot;=== (Equal To)&amp;amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit''' button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation Run Dialog''', and select the '''[[Optimization]]''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;amp;quot;'''[[Optimization]] Algorithm'''&amp;amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm''' and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size''' as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;amp;quot;Define [[Optimization]] Variable Dialog&amp;amp;quot; opens up, where you have to set the '''Minimum'''and '''Maximum'''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog to change those value. If you check the box labeled &amp;amp;quot;''' Update [[Variables]] with Optimal Values'''&amp;amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;amp;quot;saturated&amp;amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;amp;quot;'''Exit Local Min Trap'''&amp;amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;amp;quot;'''Error Function'''&amp;amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;amp;quot;'''Maximum Error'''&amp;amp;quot; value for the objective function, which terminates the process as &amp;amp;quot;converged&amp;amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals''' and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those cases, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute''' button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals''' or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
== Periodic Planar Structures &amp;amp;amp; Antenna Arrays ==&lt;br /&gt;
&lt;br /&gt;
=== Finite Arrays vs. Infinite Periodic Structures ===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that exhibits a repeated geometric pattern. It is made up of identical elements that are arranged in the form of a periodic lattice. The spacing between the elements is denoted by Sx along the X direction and Sy along the Y direction. The number of elements is denoted by Nx along the X direction and Ny along the Y direction (i.e. a total of Nx.Ny elements). If Nx and Ny are finite numbers, you have a finite-sized periodic structure, which is constructed using an &amp;amp;quot;'''Array Object'''&amp;amp;quot; in EM.Cube. If Nx and Ny are infinite, you have an infinite periodic structure with periods Sx and Sy along the X and Y directions, respectively. An infinite periodic structure in EM.Cube is represented by a &amp;amp;quot;'''Periodic Unit Cell'''&amp;amp;quot;. Periodic structures have many applications including phased array antennas, frequency selective surfaces (FSS), electromagnetic bandgap structures (EBG), metamaterial structures, etc. EM.Cube allows you to model both finite and infinite periodic structures.&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; Real practical periodic structures obviously have finite extents. You can easily and quickly construct finite-sized arrays of arbitrary complexity using EM.Cube's &amp;amp;quot;Array Tool&amp;amp;quot;. However, for large values of Nx and Ny, the size of the computational problem may rapidly get out of hand and become impractical. For very large periodic arrays, you can alternatively analyze a unit cell subject to the periodic boundary conditions and calculate the current distribtutions and far fields of the periodic unit cell. For their radiation patterns, you can multiply the &amp;amp;quot;Element Pattern&amp;amp;quot; by an &amp;amp;quot;Array Factor&amp;amp;quot; that captures the finite extents of the structure. In many cases, an approximation of this type works quite well. But in some other cases, the edge effects and particularly the field behavior at the corners of the finite-sized array cannot be modeled accurately. Periodic surfaces like FSS, EBG and metamaterials are also modeled as infinite periodic structures, for which one can define reflection and transmission coefficients. For this purpose, the periodic structure is excited using a plane wave source. Reflection and transmission coefficients are typically functions of the angles of incidence.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
The straightforward approach to the modeling of finite-sized antenna arrays is to use the full-wave method of moments (MoM). This requires building an array of radiating elements using EM.Cube's '''Array Tool''' and feeding the individual array elements using some type of excitation. For example, if the antenna elements are excited using a gap source or a probe source, you can assign a certain array weight distribution among the elements as well as phase progression among the elements along the X and Y directions. EM.Cube currently offers uniform, binomial, Chebyshev and (arbitrary) data file-based weight distribution types. The full-wave MoM approach is very accurate and takes into account all the inter-element coupling effects. At the end of a planar MoM simulation of the array structure, you can plot the radiation patterns and other far field characteristics of the antenna array just like any other planar structure.&lt;br /&gt;
&lt;br /&gt;
The radiation pattern of antenna arrays usually has a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' such as first null level and first null beam width. To have EM.Cube calculate all such parameters, you must check the relevant boxes in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. In particular, you can plot such data files at the end of a sweep simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM91.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
Another approach to modeling a finite-sized antenna array is to analyze one of its elements and use the &amp;amp;quot;Array Factor&amp;amp;quot; concept to calculate its radiation patterns. This method ignores any inter-element coupling effects. In other words, you can regard the structure in the project workspace as a single isolated radiating element. To define an array factor, open the '''Radiation Pattern Dialog''' of the project. In the section titled &amp;amp;quot;'''Impose Array Factor'''&amp;amp;quot;, you will see a default value of 1 for the '''Number of Elements''' along the X and Y directions. This implies a single radiator, representing the structure in the project workspace. There are also default zero values for the '''Element Spacing''' along the X and Y directions. You should change both the number of elements and element spacing in the X and Y directions to define a finite array lattice. For example, you can define a linear array by setting the number of elements to 1 in one direction and entering a larger value for the number of elements along the other direction. Keep in mind that when using an array factor for far field calculation, you cannot assign non-uniform amplitude or phase distributions to the array elements. For that purpose, you have to define an array object with a source array.&lt;br /&gt;
&lt;br /&gt;
=== Defining A Periodic Domain ===&lt;br /&gt;
&lt;br /&gt;
In general, a planar structure in EM.Cube's [[Planar Module]] is assumed to have open boundaries. This means that the structure has infinite dimensions along the X and Y directions. In other words, the layers of the background structure extend to infinity, while the traces and embedded object sets have finite sizes. Along the Z direction, a planar structure can be open-boundary, or it may be truncated by PEC ground planes from the top or bottom or both. You can define a planar structure to be infinitely periodic along the X and Y directions. In this case, you only need to define the periodic unit cell. EM.Cube automatically reproduces the unit cell infinitely and simulates it using a spectral domain periodic version of the Green's functions of your project's background structure.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, you must open [[Planar Module]]'s Periodicity Settings Dialog by right clicking the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Periodicity Settings...''' from the contextual menu or by selecting '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt; 'Computational Domain &amp;amp;gt; Periodicity Settings...''' from the Menu Bar. In the Periodicity Settings Dialog, check the box labeled '''Periodic Structure'''. This will enable the section titled''&amp;amp;quot;''Lattice Properties&amp;amp;quot;. You can define the periods along the X and Y axes using the boxes labeled '''Spacing'''. You can also define values for periodic '''Offset''' along the X and Y directions, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
In a periodic structure, the virtual domain is replaced by a default blue periodic domain that is always centered around the origin of coordinates. Keep in mind that the periodic unit cell must always be centered at the origin of coordinates. The relative position of the structure within this centered unit cell will change the phase of the results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM99.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Regular vs. Generalized Periodic Lattices ===&lt;br /&gt;
&lt;br /&gt;
Besides conventional rectangular lattices, EM.Cube's [[Planar Module]] can also handle complex non-rectangular periodic lattices. For example, many frequency selective surfaces have skewed grids. In order to simulate skewed-grid periodic structures, the definition of the grid has to be generalized. A periodic structure is a repetition of a basic structure (unit cell) at pre-determined locations. Let these locations be described by (x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;, y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;), where m and n are integers ranging from -8 to 8. For a general skewed grid, x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; and y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; can be described by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; x_{mn} = m\Delta x + n \Delta x' \\&lt;br /&gt;
&amp;amp; y_{mn} = m\Delta y + n \Delta y'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; is the primary offset in the X direction (X Spacing) controlled by index m and &amp;lt;math&amp;gt;\Delta x'&amp;lt;/math&amp;gt; is the secondary offset in the X direction (X Offset) controlled by index n. The meanings of &amp;lt;math&amp;gt;\Delta y&amp;lt;/math&amp;gt; (Y Spacing) and &amp;lt;math&amp;gt;\Delta y'&amp;lt;/math&amp;gt; (Y Offset) are similar with the roles of indices m and n interchanged. To illustrate how to use this definition, consider an example of an equilateral triangular grid with side length L as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:image121.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of an equilateral triangular periodic lattice.&lt;br /&gt;
&lt;br /&gt;
From the figure, it is obvious that the y coordinate of each row is fixed and identical, thus &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. While in each row the spacing between adjacent elements is L, there is an offset of L/2 between the consecutive rows. This results in &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;. To sum up, an equilateral triangular grid can be described by &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. In an EM.Cube [[Planar Module]] project, the secondary offsets are equal to zero by default, implying a rectangular lattice. You can change the values of the secondary offsets using the boxes labeled '''X Offset''' and '''Y Offset''' in the '''Periodicity Settings Dialog''', respectively. Triangular and Hexagonal lattices are popular special cases of the generalized lattice type. In a triangular lattice with alternating Rows, &amp;lt;math&amp;gt;\Delta x' = \Delta x/2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. A Hexagonal lattice (with alternating rows) is a special case of triangular lattice in which &amp;lt;math&amp;gt;\Delta y = \sqrt{3\Delta x / 2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Interconnectivity Among Unit Cells ===&lt;br /&gt;
&lt;br /&gt;
In many cases, your planar structure's traces or embedded objects are entirely enclosed inside the periodic unit cell and do not touch the boundary of the unit cell. In EM.Cube's [[Planar Module]], you can define periodic structures whose unit cells are interconnected. Interconnectivity applies only to PEC, PMC and conductive sheet traces, and embedded object sets are excluded. Note that in a periodic planar structure, your objects cannot cross the periodic domain. However, you can arrange objects with linear edges such as one or more flat edges line up with the domain's bounding box. In such cases, EM.Cube's planar MoM mesh generator will take into account the continuity of the currents across the adjacent connected unit cells and will create the connection basis functions at the right and top boundaries of the unit cell. It is clear that due to periodicity, the basis functions do not need to be extended at the left or bottom boundaries of the unit cell.&lt;br /&gt;
&lt;br /&gt;
As an example, consider the periodic structure in the figure below that shows a metallic screen or wire grid. The unit cell of this structure can be defined as a rectangular aperture in a PEC ground plane (marked as Unit Cell 1). In this case, the rectangle object is defined as a slot trace. Alternatively, you can define a unit cell in the form of a microstrip cross on a metal trace. In the latter case, however, the microstrip cross should extend across the unit cell and connect to the crosses in the neighboring cells in order to provide current continuity.&lt;br /&gt;
&lt;br /&gt;
[[File:image122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Modeling a periodic screen using two different types of unit cell.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per3_tn.png|400px]] [[File:pmom_per4_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The PMC aperture unit cell and its planar mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per5_tn.png|400px]] [[File:pmom_per6_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The PEC cross unit cell and its planar mesh. Notice the cell extensions at the unit cell's boundaries.&lt;br /&gt;
&lt;br /&gt;
=== Periodic MoM Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the case of an infinite periodic planar structure, the field equations can be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E(r) = E^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{H(r) = H^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM94.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J_{mn}(r) = J_{mn}}(x,y,z) = \mathbf{J_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{M_{mn}(r) = M_{mn}}(x,y,z) = \mathbf{M_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; -\infty &amp;lt; m, n &amp;lt; \infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM95(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, &amp;lt;math&amp;gt;\mathbf{J_{00}(r)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{M_{00}(r)}&amp;lt;/math&amp;gt; are the periodic unit cell's electric and magnetic currents that are repeated everywhere in space on a rectangular lattice with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. &amp;lt;math&amp;gt;k_{x00}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;k_{y00}&amp;lt;/math&amp;gt; are the periodic propagation constants along the X and Y directions, respectively, and they are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{x00} = k_0 \sin\theta \cos\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{y00} = k_0 \sin\theta \sin\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM96(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;theta; and &amp;amp;phi; are the beam scan angles in the case of periodic excitation of lumped sources, or they are the spherical angles of incidence in the case of a plane wave source illuminating the periodic structure. Using the infinite summations, one can define periodic dyadic Green's functions in the spectral domain in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ \overline{\overline{G}}_{\mu \nu}^{PER} (r|r') } =&lt;br /&gt;
\frac{1}{S_x S_y} \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\mathbf{ \tilde{\overline{\overline{G}}}_{\mu \nu} } (k_x, k_y, z|z')&lt;br /&gt;
e^{-j[k_{xm}(x-x') + k_{yn}(y-y')]}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
k_{xm} = k_{x00} + \frac{2\pi m}{S_x} \quad \text{and} \quad&lt;br /&gt;
k_{ym} = k_{y00} + \frac{2\pi m}{S_y}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM97.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above doubly infinite periodic Green's functions are said to be expressed in terms of &amp;amp;quot;Floquet Modes&amp;amp;quot;. The exact formulation involves an infinite set of these periodic Floquet modes. During the MoM matrix fill process for a periodic structure, a finite number of Floquet modes are calculated. By default, EM.Cube's planar MoM engine considers M&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; = M&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; = 25. This implies a total of 51 modes along the X direction and a total of 51 modes along the Y direction, or a grand total of 51&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 2,601 Floquet modes. You can increase the number of Floquet modes for your project from the Planar MoM Engine Settings Dialog. In the section titled &amp;amp;quot;Periodic Simulation&amp;amp;quot;, you can change the values of '''Number of Floquet Modes''' in the two boxes designated X and Y.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM98.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Changing the number of Floquet modes from the Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Phased Arrays ===&lt;br /&gt;
&lt;br /&gt;
Earlier, it was argued that you can calculate the radiation pattern of a finite antenna array by modeling a single isolated element and multiplying its &amp;amp;quot;Element Pattern&amp;amp;quot; by the &amp;amp;quot;Array Factor&amp;amp;quot;. This method gives acceptable results only when the inter-element coupling effects are negligible, as it does not take into account such effects. Planar antennas printed on dielectric substrates usually exhibit inter-element coupling effects due to the propagation of the substrate surface wave modes. If your finite-sized array is very large and you cannot afford a straightforward full-wave MoM simulation of it, you can alternatively model it as an infinite array represented by a periodic unit cell. In this case, you calculate the radiation pattern of the unit cell structure and use it as the &amp;amp;quot;Element Pattern&amp;amp;quot; in conjunction with the &amp;amp;quot;Array Factor&amp;amp;quot;. The periodic Green's functions, in this case, capture the inter-element coupling effects. What is missing from this picture is the finite edge effects and/or corner effects, if any.&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a gap or probe source, it acts like an infinite periodic phased array. All the periodic replicas of the unit cell structure are excited. You can even impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the gap or probe source. At the bottom of the '''Gap Source Dialog''' or '''Probe Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. You can enter desired values for '''Theta''' and '''Phi''' beam scan angles in degrees. The corresponding phase progressions are calculated and applied to the periodic Green's functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\Psi_x = -\frac{2\pi S_x}{\lambda_0} \sin\theta \cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\Psi_y = -\frac{2\pi S_y}{\lambda_0} \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you have to define a finite-sized array factor in the Radiation Pattern dialog. You do this in the '''Impose Array Factor''' section of this dialog. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of '''Element Spacing''' along the X and Y directions are automatically set equal to the value of '''Periodic Lattice Spacing''' along those directions. You have to set the '''Number of Elements''' along the X and Y directions, which are both equal to one initially, representing a single radiator. If you forget to define an array factor, the radiation pattern of the unit cell structure will be displayed, which does not show beam scanning.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM100.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the periodic scan angles in [[Planar Module]]'s Gap Source dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per9_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The 3D radiation pattern of a beam-steered periodic printed dipole array.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Periodic Structures Using Plane Waves ===&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a plane wave source, it acts as a periodic surface that reflects or transmits the incident wave. You can model frequency selective surfaces, electromagnetic band-gap structures and metamaterials in this way. EM.Cube calculates the reflection and transmission coefficients of periodic surfaces or planar structures. If you run a single plane wave simulation, the reflection and transmission coefficients are reported in the Output Window at the end of the simulation. Note that these periodic characteristics depend on the polarization of the incident plane wave. You set the polarization (TMz or TEz) in the '''Plane Wave Dialog''' when defining your excitation source. In this dialog you also set the values of the incident '''Theta''' and '''Phi''' angles.&lt;br /&gt;
&lt;br /&gt;
At the end of the planar MoM simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. As a result, you can run an adaptive sweep of periodic structures with a plane wave source just like projects with gap or probe sources. The reflection and transmission (R/T) coefficients can be plotted in EM.Grid on 2D graphs similar to the S parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
{{Note|In the absence of any finite traces or embedded objects in the project workspace, EM.Cube computes the reflection and transmission coefficients of the layered background structure of your project.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM102.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A periodic planar layered structure with slot traces excited by a normally incident plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Characterizing Periodic Surfaces Using Angular Sweeps ===&lt;br /&gt;
&lt;br /&gt;
The reflection and transmission characteristics of a period surface as functions of the incidence angle are often of great interest. For that purpose, you can run an angular sweep of your periodic structure, where you normally fix the &amp;amp;phi; angle and sweep the &amp;amp;theta; angle from 180 to 90 degrees for one-sided surfaces and from 180 to 0 degrees for two-sided surface. To run an angular sweep, open the [[Planar Module]]'s '''Simulation Run Dialog''' and select the '''Angular Sweep''' option from its '''Simulation Mode''' dropdown list. This enables the '''Settings''' button, which opens up the '''Angle Settings Dialog'''. First, you must choose either Theta or Phi as the '''Sweep Angle'''. Then you can set the '''Start''' and '''End''' values of the selected incidence angle as well as the '''Number of Samples'''. At the end of an angular sweep simulation, you can plot the reflection and transmission coefficients from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The reflection and transmission coefficients of the structure are saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM103.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Structures Using Adaptive Frequency Sweeps ===&lt;br /&gt;
&lt;br /&gt;
You learned earlier how to use EM.Cube's powerful, adaptive frequency sweep utility to study the frequency response of a planar structure. Adaptive frequency sweep uses rational function interpolation to generate smooth curves of the scattering parameters with a relatively small number of full-wave simulation runs in a progressive manner. Therefore, you need a port definition in your planar structure to be able to run an adaptive frequency sweep. This is clear in the case of an infinite periodic phased array, where your periodic unit cell structure must be excited using either a gap source or a probe source. You run an adaptive frequency sweep of an infinite periodic phased array in exactly the same way to do for regular, aperiodic, planar structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar Modules also allows you to run an adaptive frequency sweep of periodic surfaces excited by a plane wave source. In this case, the planar MoM engine calculates the reflection and transmission coefficients of the periodic surface. Note that you can conceptually consider a periodic surface as a two-port network, where Port 1 is the top half-space and Port 2 is the bottom half-space. In that case, the reflection coefficient R is equivalent to S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter, while the transmission coefficient T is equivalent to S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameter. This is, of course, the case when the periodic surface is illuminated by the plane wave source from the top half-space, corresponding to 90°&amp;amp;lt; &amp;amp;theta; = 180°. You can also illuminate the periodic surface by the plane wave source from the bottom half-space, corresponding to 0° = &amp;amp;theta; &amp;amp;lt; 90°. In this case, the reflection coefficient R and transmission coefficient T are equivalent to S&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;12&amp;lt;/sub&amp;gt; parameters, respectively. Having these interpretations in mind, EM.Cube enables the &amp;amp;quot;'''Adaptive Frequency Sweep'''&amp;amp;quot; option of the '''Frequency Settings Dialog''' when your planar structure has a periodic domain together with a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite-Sized Periodic Arrays Using NCCBF Technique ===&lt;br /&gt;
&lt;br /&gt;
Previously, you saw how the concept of &amp;amp;quot;Array Factor&amp;amp;quot; is used to approximate the far field radiation pattern of a finite-sized array of radiators. The total radiation pattern can be expressed as the product of the array factor and the &amp;amp;quot;Element Pattern&amp;amp;quot;. The array factor captures the topology of the array lattice and depends on the number of elements along the X and Y directions as well as the element spacing along those directions. As for the choice of element pattern, you saw two extreme cases. In the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; option, you compute the radiation pattern of a single stand-alone radiator and completely ignore any coupling effects from the neighboring elements. This option is readily available in the Radiation Pattern Dialog of the Far Field observable. In the &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; option, you analyze a periodic version of the radiating element with periods equal to the element spacing. The computed radiation pattern of the periodic unit cell in this case captures the coupling effects from an infinite number of elements.&lt;br /&gt;
&lt;br /&gt;
The array factor approach works well when the inter-element coupling is negligible or when the array contains a very large number of elements. However, finite edge and corner effects cannot be modeled accurately using a simple array factor. A full-wave approach is needed where all the elements are discretized properly, and their interactions are incorporated into the final solution. EM.Cube's Planar MoM simulation engine lets you analyze finite-sized antenna arrays in a rigorous, full-wave manner. As you saw earlier, you can even introduce a source array with arbitrary (amplitude and phase) weights and realize a complex, non-uniformly excited, finite-sized antenna array. Note that if the array contains a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; . N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; elements, and each radiating element involves a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; vectorial basis functions, the numerical solution of the problem will produce a system of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;linear equations. As an example, consider a rectangular patch antenna element that involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. Now consider a not-so-large, 8 × 8 array of these patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. The resulting linear system will have an enormous size of N = 30,720. Keep in mind that, unlike the sparse matrices of the Finite Element Method (FEM), MoM linear systems are dense by nature and typically ill-conditioned. The inversion of dense matrices of such sizes or larger takes a significant amount of computation time even if you use fast iterative solvers.&lt;br /&gt;
&lt;br /&gt;
EMAG Technologies Inc. has recently developed a novel technique, called '''Numerically Constructed Characteristic Basis Functions (NCCBF)''', which generates physics-based entire-domain basis functions for the elements of a finite-sized array. These &amp;amp;quot;sophisticated&amp;amp;quot; basis functions are linear combinations of the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; solutions and &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; solutions. Unlike the array factor method, which is a post-processing calculation of far-field data, the NCCBF method generate a full-wave MoM solution with entire-domain basis functions. Considering the same example of the patch antenna array discussed earlier, the NCCBF method generates a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 4 entire-domain basis functions on each patch element: an isolated X-directed solution, a periodic X-directed solution, an isolated Y-directed solution, and a periodic Y-directed solution. The same approach applies equally well to triangular RWG basis functions and is not limited to rectangular cells. As a result, the new MoM linear system has a dimension of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = (4)(64) = 256. In other words, the NCCBF method compresses the original MoM matrix of size N = 30,720 to one of significantly reduced size N = 256 (i.e. a compression factor of 120x).&lt;br /&gt;
&lt;br /&gt;
=== Running a NCCBF Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the current release of EM.Cube's [[Planar Module]], the NCCBF MoM solver works with any number of distinct, finite-sized arrays if they are excited with one of the following three source types:&lt;br /&gt;
&lt;br /&gt;
# Gap Sources&lt;br /&gt;
# Probe Sources&lt;br /&gt;
# Plane Wave Sources&lt;br /&gt;
&lt;br /&gt;
Note that you can have several coexisting finite arrays with different element spacings (or different periodicities). You can also have regular (aperiodic) objects coexisting with your collection of finite arrays. In that case, the NCCBF process will create entire-domain basis functions for the elements of the finite arrays, while the regular method of moments will apply to the aperiodic portions of your planar structure. This flexibility makes NCCBF a very versatile and powerful technique.&lt;br /&gt;
&lt;br /&gt;
There are a few rules that must be followed and observed when planning a NCCBF simulation. '''Each finite-sized array must be constructed using an EM.Cube &amp;amp;quot;Array Object&amp;amp;quot;. Additionally, each array object must stand alone in a dedicated trace or embedded object set of its own.''' In other words, if an array object belongs to a trace or embedded object set that contains other objects, it will be excluded from the NCCBF process and will get a regular MoM treatment. Keep in mind that [[Planar Module]] allows you to define different traces located at the same Z-plane, although the objects belonging to these separate traces cannot be connected to one another according to the planar meshing rules. Similarly, you can define two or more PEC via sets hosted by the same substrate layer. Therefore, if your planar structure contains finite arrays and aperiodic objects, you have to group them into separate traces or embedded object sets.&lt;br /&gt;
&lt;br /&gt;
To run an NCCBF simulation, open the '''Simulation Run Dialog''', and then open the'''Planar MoM Engine Settings Dialog'''. In the &amp;amp;quot;'''Finite Array Simulation'''&amp;amp;quot; section of the latter dialog, check the box labeled &amp;amp;quot;'''NCCBF Matrix Compression'''&amp;amp;quot;. This box is unchecked by default. Checking it enables the NCCBF Settings button. Click this button to open the NCCBF Settings Dialog. The dialog features a &amp;amp;quot;List of Unit Cells Used for NCCBF Matrix Compression&amp;amp;quot;. This list initially empty. To add unit cells to it, click the '''Add''' button of the dialog to open the &amp;amp;quot;'''Add Unit Cell Dialog'''&amp;amp;quot;. This dialog has two tables: Available Unit Cells on the left side and Associated Unit Cells on the right side. The left table shows a list of all the available, legitimate array objects in your project workspace. Remember that for an array object to be eligible for NCCBF compression, it has to stand alone on a dedicated trace or embedded object set, whichever applies. Select an array object from the left table and use the right arrow button (--&amp;amp;gt;) to move it to the right table to associate it with the new NCCBF unit cell. You can associate more than one array object with the same NCCBF unit cell. In this case, the parent elements of all the associated array objects collectively constitute the NCCBF unit cell. The NCCBF unit cell is the planar structure that is analyzed separately, first, as a stand-alone isolated element, and next, as a periodic unit cell, to generate the NCCBF entire-domain basis function solutions. It is therefore very important that the array objects be positioned carefully with respect to the origin of coordinated and relative to one another to form the correct NCCBF unit cell. Once you move one or more array object names to the &amp;amp;quot;Associated&amp;amp;quot; table on the right, you can move them back to the &amp;amp;quot;Available&amp;amp;quot; table on the left using the left arrow (&amp;amp;lt;--) button. You can also instruct EM.Cube to use only the isolated element solution by unchecking the box labeled &amp;amp;quot;'''Include Periodic Solution of Unit Cell'''&amp;amp;quot;. Once you are satisfied with the definition of your NCCBF unit cell, close the dialog to return to the NCCBF Settings dialog. Here you see the name of the newly added NCCBF unit cell in the list along with the Number of Solutions and the names of all the associated array objects for each NCCBF unit cell. You can modify each row using the '''Edit''' button or remove it from the list using the '''Delete''' button. Close the NCCBF Settings dialog to return to the Planar MoM Engine Settings dialog, and close the latter to return to the Simulation Run dialog, where you can now start the NCCBF simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM163.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar MoM's NCCBF Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM162.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Planar MoM's &amp;amp;quot;Add Unit Cell&amp;amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
=== Symmetries, Array Objects &amp;amp;amp; Composite Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] treats array objects in a special way. That is why you need to use array objects with certain rules for NCCBF simulations. In general, if the mesh of your planar structure involves a total of N vectorial basis functions, the MoM matrix will contain a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; elements. Instead of computing the entire N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; basis interactions, the Planar MoM simulation engine takes advantage of the inherent symmetry properties of the dyadic Green's functions and camputes the diagonal elements of the matrix and all the elements below the diagonal. This amounts to N.(N+1)/2 basis interactions. In many cases, the MoM matrix is symmetric, and the elements above the diagonal are simply mirror-image of the below-diagonal elements. In planar structures that involve both metal and slot traces, there will be sign reversals for some interactions.&lt;br /&gt;
&lt;br /&gt;
In many cases, especially in the areas that contain sizable numbers of rectangular mesh cells, the basis functions are naturally grouped into distinct sets that are called domains. As you saw earlier in the discussion of planar mesh generation, uniform domains with identical rectangular cells bring significant savings during the matrix fill process. Using the concept of domains renders the MoM matrix as a block matrix, whose blocks represent the interactions among the domains. The diagonal blocks therefore correspond to self-domain interactions. By a similar argument, if your planar structure is made up of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; domains, then a total of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) are computed. An EM.Cube array object consists of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical geometrical elements. If the array object belongs to a trace that has other objects in it, then by the planar mesh generator's rules, the elements of the array object are merged with the other objects on the same trace using the &amp;amp;quot;Union&amp;amp;quot; Boolean operation. If some array elements possibly have connections with other objects, such connections are taken care of in the meshing process. '''However, if an array object stands alone in a dedicated trace, then only the parent (first) element is meshed, and it mesh is copied and cloned for all the other elements of the array.''' This produces a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical domains of vectorial basis functions. A direct consequence of this is identification of only N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; unique domain-pair interactions or matrix blocks. In the absence of these symmetries, a total of at least N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) must be computed. To better illustrate such matrix fill savings, let us consider the previous, not-so-large, 8 × 8 array of patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. It was previously assumed that each rectangular patch antenna element involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. The numerical solution of this structure produces a linear system of total size N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 30,720. The total number of complex-valued elements of this matrix is 9.44E+08. This is the total number of highly sophisticated multi-dimensional integrals that you need to compute during a brute-force matrix fill process. For the sake of generality of the argument, here we ignore the huge additional savings that rectangular cells offer, and we assume that each unique domain-pair interaction involves N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 230,400 elements, except for the self-domain interaction which requires N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 115,440 integral computations. This amounts to a total of (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; -1) . N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 1.46E+07 integral computations, which is roughly N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;(64) times fewer and faster than a brute-force matrix fill process.&lt;br /&gt;
&lt;br /&gt;
To remedy the limitation that stand-alone array objects on dedicated traces cannot be connected to anything and therefore would severely limit the geometrical complexity of individual elements, EM.Cube allows you to build arrays of composite objects. A &amp;amp;quot;'''Composite Object'''&amp;amp;quot; in EM.Cube is a group of objects that are tied together only for the purpose of organization. As a result, the mesh of a composite object is the same as that of its constituent member objects (including any possible connections), had they not been grouped together. In a similar manner to simpler array objects, if a composite array stands alone in a dedicated trace or embedded object set, then only the parent composite object is meshed, and its mesh is copied and cloned for all the other composite elements of the array object. Furthermore, all the unique domain-pair interactions are identified during the matrix fill process, and lead to a major saving in computation time. '''Note that you can assign gap or probe sources to composite arrays in a similar way as you excite simpler array objects.''' If your planar structure involves a composite array, whose composite parent element has constituent members: Object1, Object2, ..., then the Gap Source dialog or Probe Source dialog will include the names of all the eligible constituent members (rectangle strips or PEC via objects) that can host the respective source types. '''Complex composite arrays hosting gap or probe source arrays or illuminated by plane wave sources are great candidates for NCCBF simulation.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM165.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Assigning gap sources to the elements of a composite array object.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Picasso</id>
		<title>EM.Picasso</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Picasso"/>
				<updated>2013-06-14T20:00:12Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Gap Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Picasso® is a versatile planar structure simulator for modeling and design of printed antennas, planar microwave circuits, and layered periodic structures. EM.Picasso's simulation engine is based on a 2.5-D full-wave Method of Moments (MoM) formulation that provides the ultimate modeling accuracy and computational speed for open-boundary multilayer structures. It can handle planar structures with arbitrary numbers of metal layouts, slot traces, vertical interconnects and lumped elements interspersed among different substrate layers. You can use EM.Picasso to model large finite-sized antenna arrays as well as infinite periodic structures such as frequency selective surfaces.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Picasso has been successfully used by numerous users around the globe in industry, academia and government. The new EM.Picasso 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has introduced far more powerful CAD utilities, greater geometrical variety, and a vast array of capabilities like parametric sweep, [[optimization]], data visualization and post-processing computations. The new foundation also facilitates import and export of many popular CAD formats and provides a seamless interface with our other simulation tools.&lt;br /&gt;
&lt;br /&gt;
== A Planar Method Of Moments Primer ==&lt;br /&gt;
&lt;br /&gt;
The Method of Moments (MoM) is a rigorous, full-wave numerical technique for solving open boundary electromagnetic problems. Using this technique, you can analyze electromagnetic radiation, scattering and wave propagation problems with relatively short computation times and modest computing resources. The method of moments is an integral equation technique; it solves the integral form of Maxwell’s equations as opposed to their differential forms that are used in the finite element or finite difference time domain methods.&lt;br /&gt;
&lt;br /&gt;
In a planar MoM simulation, the background structure is usually a layered planar structure that consists of one or more laterally infinite material layers. In EM.Cube’s [[Planar Module]], the layered structure is stacked along the Z axis. In other words, the dimensions of the layers are infinite along the X and Y axes. Metallic traces are placed at the boundaries between the substrate or superstrate layers. These are modeled by perfect electric conductor (PEC) traces or conductive sheet traces of finite thickness and finite conductivity. Some layers might be separated by infinite perfectly conducting ground planes. The two sides of a ground plane can be electromagnetically coupled through one or several slots or apertures. Such slots or apertures are modeled by magnetic currents and are realized and represented by perfectly magnetic conductor (PMC) traces. Furthermore, the metallic traces can be interconnected or connected to ground planes using embedded objects. Such objects can be used to model circuit vias, plated-through holes or dielectric inserts. These are modeled as volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
The currents in a planar MoM simulation are discretized as a collection of elementary currents with small finite spatial extents. These elementary currents are called basis functions and obviously have a vectorial nature. The total currents (solution of the problem) are summations of these elementary currents. The basis functions are well defined and easy to calculate; however, their amplitudes are initially unknown in a MoM problem. Through the planar MoM solution, you find these unknown amplitudes. Once the total currents are known, you can calculate the fields everywhere in the structure.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Green’s Functions ===&lt;br /&gt;
&lt;br /&gt;
The Green’s functions are the solutions of boundary value problems when they are excited by an elementary source. This is usually assumed to be an infinitesimally small vectorial point source. In order for Green’s functions to be computationally useful, they must have analytical closed forms like a mathematical expression, or one should be able to compute them using a recursive process. It turns out that only very few boundary value problems have closed-form Green’s functions. Planar layered structures with laterally infinite extents are one of those few cases, which can be represented by recursive dyadic Green's functions.&lt;br /&gt;
&lt;br /&gt;
In general, a structure may support both electric ('''J''') and magnetic ('''M''') currents. The total electric ('''E''') and magnetic ('''H''') fields can be expressed in terms of the electric and magnetic currents in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;E = E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;H = H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''GH&amp;lt;sub&amp;gt;M&amp;lt;/sub&amp;gt;''' are the dyadic Green’s functions for the electric and magnetic currents due to electric and magnetic current source, respectively, and '''E&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' and '''H&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' are the incident or impressed electric and magnetic fields, respectively. In these equations, '''r''' is the position vector of the observation point and '''r'''' is the position vector of the source point. V is the volume that contains all the sources and the volume integration is performed with respect to the primed coordinates. The incident or impressed fields provide the excitation of the structure. They may come from an incident plane wave or a gap source on a microstrip line, a short dipole, etc. The complexity of the Green’s functions depends on what is considered as the background structure. If you remove all the unknown currents from the structure, you are left with the background structure.&lt;br /&gt;
&lt;br /&gt;
=== Planar Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
To derive a system of integral equations, we enforce the boundary conditions on the integral definitions of the '''E''' and '''H''' fields as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_E(E) = L_E \bigg\{ E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_H(H) = L_H \bigg\{ H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM4(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' is the boundary value operator for the electric field and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' is the boundary value operator for the magnetic field. For example, '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E'''field vanish on perfect conductors:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = 0, \quad \mathbf{r} \in PEC &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM65.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E''' and '''H''' fields be continuous across an aperture in a perfect ground plane:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{E}^+ - \mathbf{E}^-) = 0 \\&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{H}^+ - \mathbf{H}^-) = 0&lt;br /&gt;
\end{cases} &lt;br /&gt;
\quad \Rightarrow \quad&lt;br /&gt;
\mathbf{M}^+(r) = \mathbf{M}^-(r), \quad r \in PMC&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM66(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the fact that the dyadic Green’s functions and the incident or impressed fields are all known, one can solve the above system of integral equations to find the unknown currents '''J''' and '''M'''.&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE's [[Planar Module|Planar module]], magnetic currents are always surface current with units of V/m. Electric currents, however, can be surface currents with units of A/m as in the case of metallic traces like microstrip lines, or they can be volume currents with units of A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; as in the case of perfectly conducting vias. Dielectric inserts are modeled as volume polarization currents that are related to the electric field '''E''' in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J}_p(r) = jk_0 Y_0(\varepsilon_r - \varepsilon_b)\mathbf{E}(r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant, &amp;lt;math&amp;gt;Y_0 = \tfrac{1}{Z_0} = \tfrac{1}{120\pi}&amp;lt;/math&amp;gt; is the free space intrinsic admittance, &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is the permittivity of the dielectric insert, and &amp;amp;epsilon;&amp;lt;sub&amp;gt;b&amp;lt;/sub&amp;gt; is the permittivity of its background layer. In a 2.5-D formulation, it is assumed that the volume currents have only a vertical component along the Z direction, and their circumferential components are negligible.&lt;br /&gt;
&lt;br /&gt;
=== Numerical Solution Of Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
The planar integral equations derived earlier can be solved numerically by discretizing the unknown currents using a proper meshing scheme. The original functional equations are reduced to discretized linear algebraic equations over elementary cells. The unknown quantities are found by solving this system of linear equations, and many other parameters can be computed thereafter. This method of numerical solution of integral equations is known as the Method of Moments (MoM). In this method, the unknown electric and magnetic currents are represented by expansions of basis functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;J(r) = \sum_{n=1}^N I_n^{(J)} f_n^{(J)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;M(r) = \sum_{k=1}^K V_k^{(M)} f_k^{(M)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_k^{(M)}&amp;lt;/math&amp;gt; are the generalized vector basis functions for the expansion of electric and magnetic currents, respectively, and &amp;lt;math&amp;gt;I_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;V_k^{(M)}&amp;lt;/math&amp;gt; are the unknown amplitudes of these basis functions, which have to be determined. Substituting these expansions into the integral equations generates a set of discretized integral equations, which can further be converted to a system of linear algebraic equations. This is accomplished by testing the discretized integral equations using the a set of test functions. In the method of moments, the Galerkin technique is typically used, which chooses the expansion basis functions as test functions. This leads to the following linear system:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
Z^{(EJ)} &amp;amp; T^{(EM)} \\&lt;br /&gt;
U^{(HJ)} &amp;amp; Y^{(HM)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
\cdot&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
I^{(J)} \\&lt;br /&gt;
V^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
=&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
V^{(E)} \\&lt;br /&gt;
I^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(EJ)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot &lt;br /&gt;
\iiint\limits_{V_j} dv' \overline{\overline{G}}_{EJ}(r|r') \cdot f_i^{(J)}(r')&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_i^{(E)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot E^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_i^{(H)} = \iiint\limits_{V_i} dv f_i^{(M)}(r) \cdot H^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similar expressions can be derived for the T&amp;lt;sup&amp;gt;(EM)&amp;lt;/sup&amp;gt;, U&amp;lt;sup&amp;gt;(HJ)&amp;lt;/sup&amp;gt; and Y&amp;lt;sup&amp;gt;(HM)&amp;lt;/sup&amp;gt;elements of the MoM matrix.&lt;br /&gt;
&lt;br /&gt;
=== Discretization Of Electric &amp;amp;amp; Magnetic Currents ===&lt;br /&gt;
&lt;br /&gt;
The right choice of the basis functions to represent the elementary currents is very important. It will determine the accuracy and computational efficiency of the resulting numerical solution. Rooftop basis functions are one of the most popular types of basis functions used in a variety of MoM formulations. The surface currents (whether electric or magnetic) are discretized using 2D rooftop basis functions shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image055_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Rooftop or RWG basis functions built over two rectangular, triangular or mixed cells.&lt;br /&gt;
&lt;br /&gt;
The rooftop basis functions are defined over two adjacent cells with a common edge of length. If the two cells are triangular, then the so-called RWG functions are obtained. It is also possible to define rooftop functions over two adjacent rectangular cells or two adjacent rectangular and triangular cells with a common edge. On a rectangular cell, the function is defined as having a (descending or ascending) linear profile in one direction and a constant profile in the other perpendicular direction.&lt;br /&gt;
&lt;br /&gt;
The volume polarization currents in 2.5-D MoM have a vertical direction along the Z-axis. These are discretized using prismatic basis functions that have either a rectangular or triangular base with a constant profile along the Z-axis.&lt;br /&gt;
&lt;br /&gt;
[[File:image065_tn.png]][[File:image066_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Prismatic basis functions built over single triangular and rectangular cells.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Planar Structure ==&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM14.png|thumb|350px|A typical planar layered structure]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] is intended for constructing and modeling planar layered structures. By a planar structure we mean one that contains a background substrate of laterally infinite extents, made up of one or more material layers all stacked up vertically along the Z axis. Objects of finite size are then interspersed among these substrate layers. This is somehow different than EM.Cube's other computational modules, which are geared for handling arbitrary 3D structures.&lt;br /&gt;
&lt;br /&gt;
In [[Planar Module]], the background structure, called &amp;amp;quot;'''Layer Stack-up'''&amp;amp;quot;, may involve one or more material layers of infinite extents along the X and Y axes but of finite thickness along the Z axis. When you start a new project, the background structure has a single vacuum layer. The layer stack-up is always terminated from the top and bottom by two infinite half-spaces. The terminating half-spaces might be the free space, or a perfect conductor (PEC ground), or any material medium. Most planar structures used in RF and microwave applications such as microstrip-based components have a PEC ground at their bottom. EM.Cube's default stack-up has a vacuum top half-space and a PEC bottom half-space. Some structures like stripline components require two bounding PEC grounds at both top and bottom.&lt;br /&gt;
&lt;br /&gt;
The finite-sized objects of a planar structure may include metal traces, slots and apertures, vertical vias and interconnects, or dielectric inserts including air voids inside the substrate layers. Metal traces are modeled as electric surface currents. These are planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on metal (PEC) traces and placed at the boundary (interface) plane between two substrate layers. Slots and apertures are modeled as magnetic surface currents on the surface of an infinite PEC plane and provide electromagnetic coupling between its top and bottom sides. These, too, are constructed using planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on slot (PMC) traces and placed at the boundary (interface) plane between two substrate layers. EM.Cube's [[Planar Module]] also allows prismatic objects that can be modeled by electric volume currents. These include vertical vias and dielectric inserts, and are called embedded object sets. [[Planar Module|Planar module]] does not allow construction of 3D CAD objects. Instead, you draw the cross section of prismatic objects as planar [[Surface Objects|surface objects]] parallel to the XY plane. EM.Cube then automatically extrudes these cross sections and constructs and displays 3D prisms over them. The prisms extend all the way across the thickness of the host substrate layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:PMOM14.png]]&lt;br /&gt;
Figure 1: A typical planar layered structure.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Defining Layer Stack-Up ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube’s [[Planar Module]], there is always a default background structure that consists of a finite vacuum layer sandwiched between a vacuum top half-space and a PEC bottom half-space. Every time you enter the [[Planar Module|Planar module]], the '''Stack-up Settings Dialog''' opens up. This is where you define the entire background structure. Once you close this dialog, you can open it again by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Layer Stack-up Settings...''' from the contextual menu. Or alternatively, you can select the menu item '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Layer Stack-up Settings...'''&lt;br /&gt;
&lt;br /&gt;
The Stack-up Settings dialog has two tabs: '''Layer Hierarchy''' and '''Embedded Sets'''. The Layer Hierarchy tab has a table that shows all the background layers in hierarchical order from the top half-space to the bottom half-space. It also lists the material label of each layer, Z-coordinate of the bottom of each layer, its thickness (in project units) and material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). There is also a column that lists the names of embedded object sets inside each substrate layer, if any.&lt;br /&gt;
&lt;br /&gt;
You can add new layers to your project's stack-up or delete its layers, or move layers up or down and thus change the layer hierarchy. To add a new background layer, click the arrow symbol on the '''Insert...'''button at the bottom of the dialog and select '''Substrate Layer''' from the button's dropdown list. A new dialog opens up where you can enter a label for the new layer and values for its material properties and thickness in project units.&lt;br /&gt;
&lt;br /&gt;
You can delete a layer by selecting its row in the table and clicking the '''Delete''' button. To move a layer up and down, click on its row to select and highlight it. Then click either the '''Move Up''' or '''Move Down''' buttons consecutively to move the selected layer to the desired location in the stack-up. Note that you cannot delete or move the top or bottom half-spaces.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM8(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Editing Substrate Layers ===&lt;br /&gt;
After creating a substrate layer, you can always edit its properties in the Layer Stack-up Settings dialog. Click on any layer's row in the table to select and highlight it and then click the '''Edit''' button. The substrate layer dialog opens up, where you can change the layer's label and assigned color. In the material properties section of the dialog, you can change the name of the material and its properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). To define electrical losses, you can either assign a value for electric conductivity (s), or alternatively, define a loss tangent for the material. In the latter case, check the box labeled &amp;amp;quot;'''Specify Loss Tangent'''&amp;amp;quot; and enter a value for it. In this case, the electric conductivity field becomes greyed out and reflects the corresponding s value at the center frequency of the project.&lt;br /&gt;
&lt;br /&gt;
You can also set the thickness of the substrate layer in the project units. Note that you cannot change the thickness of the top and bottom half-spaces. You can only change their material properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM9.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Substrate Layer dialog.&lt;br /&gt;
&lt;br /&gt;
You can also use EM.Cube's Material List to define the material properties of a substrate layer. In the Substrate Layer Dialog, click the '''Material''' button to open the '''Material List'''. In the Material List Dialog, pick any material or type the first letter of a material to highlight it. Then click the '''OK''' button or simply hit the '''Enter''' key of your keyboard to close the list and return to the substrate layer dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM10.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Materials dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Object Types ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] groups objects by their material and electromagnetic properties. Each object group shares the same color and same position in the layer stack-up. All the planar objects belonging to the same trace are located on the same substrate layer boundary. All the prismatic objects belonging to the same embedded set lie inside the same substrate layer and have the same material composition. Theoretically speaking, all the objects belonging to a group are governed by the same boundary conditions. EM.Cube’s [[Planar Module]] currently provides the following types of objects for building a planar layered structure:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC) Traces:''' These represent infinitesimally thin metallic objects that are deposited or metallized on or between substrate layers. PEC objects are modeled by surface electric currents that satisfy the PEC boundary condition.&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC) Traces:''' These are used to model slots and apertures in infinite PEC ground planes. PMC objects are always assumed to lie on an infinite horizontal PEC ground plane with zero thickness. They are modeled by surface magnetic currents, enforcing the continuity of tangential fields across the slots or apertures.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metals. They have a finite conductivity and a very small thickness. A surface impedance boundary condition is enforced on the surface of such traces.&lt;br /&gt;
# '''PEC Via Sets:''' These are metallic objects such as shorting pins, interconnect vias, plated-through holes, etc. that are grouped together as prismatic object sets. The embedded objects are modeled as vertical volume conduction currents.&lt;br /&gt;
# '''Embedded Dielectric Sets:''' These are prismatic dielectric objects inserted inside a substrate layer. You can define a finite permittivity and conductivity for such objects, but their height is always the same as the height of their host layer. The embedded dielectric objects are modeled as vertical volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
=== Defining Traces &amp;amp;amp; Object Sets ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]], the project workspace looks empty, and there are no finite objects in it. However, a default background structure is always assumed to exist by default. Objects are defined as part of traces or embedded sets. Once defined, you can see a list of project objects in the '''Physical Structure''' section of the Navigation Tree. Traces and object sets can be defined either from Layer Stack-up Settings dialog or from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
In the '''Layer Stack-up Settings''' dialog, you can add a new trace to the stack-up by clicking the arrow symbol on the '''Insert''' button of the dialog. You have to choose from '''Metal (PEC)''', '''Slot (PMC)''' or '''Conductive Sheet''' options. A respective dialog opens up, where you can enter a label and assign a color other than default ones. Once a new trace is defined, it is added, by default, to the top of the stack-up table underneath the top half-space. From here, you can move the trace down to the desired location on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Every time you define a new trace, it is also added under the respective category in the Navigation Tree. Alternatively, you can define a new trace from the Navigation Tree by right clicking on one of the trace type names and selecting '''Insert New PEC Trace...'''or '''Insert New PMC Trace...'''or '''Insert New Conductive Sheet Trace...'''A respective dialog opens up for setting the trace properties. Once you close this dialog, it takes you directly to the Layer Stack-up Settings dialog so that you can set the right position of the trace on the stack-up.&lt;br /&gt;
&lt;br /&gt;
=== Drawing Planar Objects ===&lt;br /&gt;
&lt;br /&gt;
As soon as you start drawing geometrical objects in the project workspace, the Physical Structure section of the Navigation Tree gets populated. The names of traces are added under their respective trace type category, and the names of objects appear under their respective trace group. At any time, one and only one trace is active in the project workspace. An active trace is where all the new objects you draw belong to. When you define a new trace, it is set as active and you can immediately start drawing new objects on that trace. You can also set any trace active at any time by right clicking its name on the Navigation Tree and selecting '''Activate''' from the contextual menu. The name of the active trace is always displayed in bold letter in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM13.png]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] has a special feature that makes construction of planar structures quite easy and straightforward. '''The active work plane of the project workspace is always set at the plane of the active trace.''' In EM.Cube's other modules, all objects are drawn in the XY plane (z = 0) by default. In [[Planar Module]], all new objects are drawn on a horizontal plane that is located at the Z-coordinate of the currently active trace. As you change the active trace or add a new trace, you will also change the active work plane.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Metallic Traces ===&lt;br /&gt;
&lt;br /&gt;
A trace is a group of finite-sized planar objects that have the same conductive properties and same Z-coordinate. In other words, they are located on the same horizontal plane, or at the same vertical level on the layer stack-up. You can define two types of metallic traces in the [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
# '''PEC Traces:''' These represent perfect conductor objects that have zero thickness and no editable material properties.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metal objects. They have a very small finite thickness t and a finite conductivity s.&lt;br /&gt;
&lt;br /&gt;
The conductive sheet traces are modeled using the surface impedance boundary condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = -Z_s\mathbf{J_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM17(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;Z_s&amp;lt;/math&amp;gt; is the surface impedance of the conductive sheet. If the thickness of the sheet is greater than the skin depth of the metal at the project frequency, then the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1+j}{\sigma \delta}, \quad \delta = \sqrt{\dfrac{2}{k_0 Z_0 \sigma}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM18.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the thickness t of the sheet is less than the skin depth, then the conductive sheet transition boundary condition is used instead, and the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1}{[j k_0 Y_0 (\varepsilon_r - 1) + \sigma] \tau} = \dfrac{1}{\sigma_{tot} \tau} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM19(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]] with no traces defined, if you simply draw a new object, a default PEC trace is created and added to the Navigation Tree to hold that object. Alternatively, you can define your own new traces from the Layer Stack-up Settings dialog or directly from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
NOTE: Two or more PEC and conductive sheet traces can coexist at the same Z-coordinate. In this case, the Layer Stack-up Settings dialog shows these trace rows stacked up on top of each other between their common top and bottom substrate layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM15.png]] [[File:PMOM16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PEC and Conductive Sheet Trace dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Slot Traces ===&lt;br /&gt;
&lt;br /&gt;
Slots and apertures are cut-out and removed metal in an infinite perfectly conducting (PEC) ground plane. When a slot is excited, tangential electric fields are formed on the aperture, which can be modeled as finite magnetic surface currents confined to the area of the slot. Therefore, instead of modeling the electric surface currents on the PEC ground around the slot, one can alternatively model the finite-extent magnetic surface currents on PMC traces. In EM.Cube's [[Planar Module]], you define slot objects under PMC traces. A PMC trace at a certain Z-plane implies the presence of an infinite PEC plane at that Z-coordinate. Therefore, you do not need to define an additional PEC plane at that location on the layer stack-up. The slot (PMC) objects provide the electromagnetic coupling between the two sides of this infinite ground plane. By the same token, you cannot place a PEC trace and a PMC trace at the same Z-level, as the latter's ground will short the former. However, you can define two or more PMC traces at the same Z-plane. In this case, all the slot objects lie on the same infinite PEC ground plane. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM20.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PMC Trace dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Embedded Object Sets ===&lt;br /&gt;
&lt;br /&gt;
Embedded object sets represent short material insertions inside substrate layers. They can be metal or dielectric. Metallic embedded objects can be used to model vias, plated-through holes, shorting pins and interconnects. These are called PEC via sets. Embedded dielectric objects can be used to model air voids, thin films and material inserts in metamaterial structures. Embedded magnetic object are not currently supported by EM.Cube’s [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Embedded objects can be defined either from the Layer Stack-up Settings dialog or directly from the Navigation Tree. In the former case, open the &amp;amp;quot;Embedded Sets&amp;amp;quot; tab of the stack-up dialog. This tab has a table that lists all the embedded object sets along with their material type, the host substrate layer, the host material and their height. &lt;br /&gt;
&lt;br /&gt;
{{Note|The height of an embedded object is always identical to the thickness of its host substrate layer.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up dialog showing the Embedded Sets tab.&lt;br /&gt;
&lt;br /&gt;
To add a new object set, click the arrow symbol on the '''Insert''' button of the dialog and select one of the two options, '''PEC Via Set''' or '''Embedded Dielectric Set''', from the dropdown list. This opens up a new dialog where first you have to set the host layer of the new object set. A dropdown list labeled &amp;amp;quot;'''Host Layer'''&amp;amp;quot; gives a list of all the available finite substrate layers. You can also set the properties of the embedded object set, including its label, color and material properties. Keep in mind that you cannot control the height of embedded objects. Moreover, you cannot assign material properties to PEC via sets, while you can set values for the '''Permittivity'''(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity'''(&amp;amp;sigma;) of embedded dielectric sets. Vacuum is the default material choice. You may use EM.Cube's Material List for this purpose, which can be opened up by clicking the '''Material''' button. Once embedded object sets are added to the Embedded Sets table, you can edit their properties at any time by selecting their row and clicking the '''Edit''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM21.png]] [[File:PMOM22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The [[Planar Module]]'s PEC Via Set and Embedded Dielectric Set dialogs.&lt;br /&gt;
&lt;br /&gt;
To define an embedded set from the Navigation Tree, right click on the '''Embedded Object Sets''' item in the '''Physical Structure''' section of the Navigation Tree and select either '''Insert New PEC Via Set...''' or '''Insert New Embedded Dielectric Set...''' The respective New Embedded Object Set dialog opens up, where you set the properties of the new object set. As soon as you close this dialog, it takes you to the Layer Stack-up Settings dialog, where you can examine the location of the new object set on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
After a new embedded object set has been defined and added to the Navigation Tree, it becomes the active trace. You are now ready to create geometrical objects in the new active trace. Remember that [[Planar Module]] does not allow you to draw 3D objects. The solid object buttons in the '''Object Toolbar''' are disabled to prevent you from doing so. Instead, you draw planar [[Surface Objects|surface objects]] as the cross section of embedded sets. EM.Cube extends these planar objects across their host layer automatically and displays them as wire-frame, 3D extruded objects. Extrusion of embedded object sets happen after meshing and before every simulation. You can enforce this extrusion manually by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Update Planar Structure...''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Rules &amp;amp;amp; Limitations ===&lt;br /&gt;
&lt;br /&gt;
# Terminating PEC ground planes at the top or bottom of a planar structure are defined as PEC top or bottom half-spaces, respectively.&lt;br /&gt;
# A PEC ground plane placed in the middle of a substrate stack-up requires at least one slot object to provide electromagnetic coupling between its top and bottom sides. In this case, a PMC trace is rather introduced at the given Z-plane, which implies the presence of an infinite PEC ground although it is not explicitly indicated in the Navigation Tree.&lt;br /&gt;
# Metallic and slot traces cannot coexist on the same Z-plane. However, you can stack up multiple PEC and conductive sheet traces at the same Z-coordinate. Similarly, multiple PMC traces can be placed at the same Z-coordinate.&lt;br /&gt;
# Metallic and slot traces are strictly defined at the interface planes between substrate layers. To define a suspended metallic trace in a substrate layer (as in the case of the center conductor of a stripline), you must split the dielectric layer into two thinner layers and place your PEC trace at the interface between them.&lt;br /&gt;
# The current version of the Planar MoM simulation engine is based on a 2.5-D MoM formulation. Only vertical volume currents and no circumferential components are allowed on embedded objects. The 2.5-D assumption holds very well in two cases: (a) when embedded objects are very thin with a very small cross section (with lateral dimensions less than 2-5% of the material wavelength) or (b) when embedded objects are very short and sandwiched between two closely spaced PEC traces or grounds from the top and bottom.&lt;br /&gt;
# The current release of EM.Cube allows any number of PEC via sets collocated in the same substrate layer. However, you can define only one embedded dielectric object set per substrate layer, and no vias sets collocated in the same layer. Note that the single set can host an arbitrary number of embedded dielectric objects of the same material properties.&lt;br /&gt;
&lt;br /&gt;
=== Managing Objects, Traces &amp;amp;amp; Sets ===&lt;br /&gt;
&lt;br /&gt;
You can manage your project's layer hierarchy from the Layer Stack-up Settings dialog. You can add, delete and move around substrate layers, metallic and slot traces and embedded object sets. Metallic and slot traces can move among the interface planes between neighboring substrate layers. Embedded object sets including PEC vias and finite dielectric objects can move from substrate layer into another. When you delete a trace from the Layer Stack-up Settings dialog, all of its objects are deleted from the project workspace, too. You can also delete metallic and slot traces or embedded object sets from the Navigation Tree. To do so, right click on the name of the trace or object set in the Navigation Tree and select '''Delete''' from the contextual menu. You can also delete all the traces or object sets of the same type from the contextual menu of the respective type category in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
For better visualization of your planar structure, EM.Cube displays a virtual domain in a default orange color to represent part of the infinite background structure. The size of this virtual domain is a quarter wavelength offset from the largest bounding box that encompasses all the finite objects in the project workspace. You can change the size of the virtual domain or its display color from the Domain Settings dialog, which you can access either by clicking the '''Computational Domain''' [[File:domain_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Domain Settings...''' from the Simulate Menu or by right clicking the '''Virtual Domain''' item of the Navigation Tree and selecting '''Domain Settings...''' from the contextual menu, or using the keyboard shortcut '''Ctrl+A'''. But keep in mind that the virtual domain is only for visualization purpose and does not affect the MoM simulation. The virtual domain also shows the substrate layers in translucent colors. As you change the colors assigned to the substrate layers, you will see a multilayer virtual domain box surrounding your project structure.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_phys5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Virtual Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the last defined trace or embedded object set is active. You can activate any trace or embedded object set at any time for drawing new objects. You can move one or more selected objects from any trace or embedded object set to another group of the same type or of different type. First select an object in the project workspace or in the Navigation Tree. Then, right click on the highlighted selection and select '''Move To &amp;amp;gt;''' from the contextual menu. This opens another sub-menu containing '''Planar''' and a list of all the other EM.Cube modules that have already defined object groups. Select '''Planar''' or any other available module, and yet another sub-menu opens up with a list of all the available traces and embedded object sets already defined in your project. Select the desired group, and all the selected objects will move to that group. When selecting multiple objects from the Navigation Tree, make sure that you hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting a group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Discretizing Planar Structures ==&lt;br /&gt;
&lt;br /&gt;
=== The Planar MoM Mesh ===&lt;br /&gt;
&lt;br /&gt;
The method of moments (MoM) discretizes all the finite-sized objects of a planar structure (excluding the background structure) into a set of elementary cells. The planar integral equations are then solved approximately on these elementary cells. As this method does not require a discretization of the entire computational domain, it is often computationally much more efficient than differential-based techniques like FEM or FDTD, which mesh the whole domain. The accuracy of the MoM numerical solution depends greatly on the quality of the generated mesh. The mesh density gives a measure of how electrically small these elementary cells are. Low mesh resolutions compromise the accuracy of the numerical solution. On the other hand, very high mesh densities may lead to numerical instability of the method of moments. As a rule of thumb, a mesh density of about 20-30 cells per effective wavelength usually yields acceptable results. Yet, for structures with lots of fine geometrical details or for highly resonant structures, higher mesh densities may be required. Also, the particular simulation data that you seek in a project will also influence your choice of mesh resolution. For example, far field characteristics like radiation patterns are less sensitive to the mesh density than field distributions on a structure with a highly irregular shape and a rugged boundary.&lt;br /&gt;
&lt;br /&gt;
It is well known that any planar geometry with any degree of complexity can be reasonably discretized using a surface triangular mesh. EM.Cube's [[Planar Module]] provides a versatile triangular mesh generator for this purpose. This generates a regular mesh, in which most of the triangular cells have almost equal areas. The uniformity or regularity of mesh is an important factor in warranting a stable numerical solution. A highly incongruous mesh may even produce completely erroneous results. EM.Cube's [[Planar Module]] also offers another mesh generator that creates a &amp;amp;quot;Hubrid&amp;amp;quot; planar mesh combining triangular and rectangular cells. Although triangular cells are more versatile than rectangular cells in adapting to arbitrary geometries, many practical planar structures contain a large number of rectangular parts like patch antennas, microstrip lines and components, etc.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM32.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar hybrid and triangular meshes for rectangular patches.&lt;br /&gt;
&lt;br /&gt;
=== The Rectangular Mesh Advantage ===&lt;br /&gt;
&lt;br /&gt;
Rectangular cells offer a major advantage over triangular cells for numerical MoM simulation of planar structures. This is due to the fact that the dyadic Green's functions of planar layered background structures are space-invariant on the transverse plane. Recall that the elements of the moment matrix are given by the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(\mu \nu)} = \iiint_{V_i} d\nu f_i^{(\mu)}(r) \cdot \iiint_{V_j}d\nu ' \overline{\overline{G}}_{\mu \nu}(r|r') \cdot f_j^{(v)}(r') &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM24(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the spatial-domain dyadic Green's functions are a function of the observation and source coordinates, '''r'''and '''r' '''. The MoM matrix elements can indeed be interpreted as interactions between two elementary basis functions '''f&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;(r)''' and '''f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;(r')''' on that particular background structure. The spatial-domain dyadic Green's functions can themselves be expressed in terms of the spectral-domain dyadic Green's functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\overline{\overline{G}}_{\mu \nu}(r|r') = \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{\overline{\overline{G}}}_{\mu \nu} (k_p, z|z') e^{-j[k_x(x-x')+k_y(y-y')]} \, dk_x \, dk_y ,&lt;br /&gt;
\quad {k_p}^2 = {k_x}^2 + {k_y}^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM26.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the doubly infinite integration is performed with respect to the spectral [[variables]] k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;. As can be seen from the above expression, the spatial-domain dyadic Green's functions are functions of z, z', as well as (x-x') and (y-y'). The MoM matrix elements can now be transformed into the spectral domain as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
Z_{ij}^{(\mu \nu)} = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{f}_i^{(\mu)} (k_x, k_y) \cdot \tilde{\overline{\overline{G}}}_{\mu \nu} (k_{\rho}, z|z') \cdot&lt;br /&gt;
\tilde{f}_j^{(\nu)} (k_x, k_y) \, dk_x \, dk_y&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM27.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the tilde symbol signifies the Fourier transform of a function defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\tilde{f}(k_x, k_y) = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
f(x,y) e^{j(k_x x + k_y y)} \, dx \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM28(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rectangular cells have simple Fourier transforms. The rooftop basis functions are triangular functions in the direction of current flow and constant in the perpendicular direction. This means that their Fourier transform is a product of a sinc-squared function along one spectral direction and a sinc function along the other. You can see from the figure below that if one deals with a rectangular mesh of identical cells (all equal and parallel), then the interactions among the rooftop basis functions become a functions of the index differences and not the absolute indices:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{(i,k)|(j,l)} = Z \Big\langle f_{i,k}(x,y)| f_{j,l}(x', y') \Big\rangle = Z_{(i-j)|(k-l)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM29.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equation, the vectorial rooftop basis functions have explicit, double indices: i and k along the local X and Y directions, respectively, for the test (observation) basis function, and j and l along the local X and Y directions, respectively, for the expansion (source) basis function. Thus, uniform rectangular cells, i.e. structured rectangular cells of identical size aligned in the same direction, can speed up the planar MoM simulation significantly due to these symmetry and the invariance properties. For example, all the self-interactions are identical regardless of the location of a rooftop basis function. This reduces the matrix fill process for a total of N rooftop basis functions from an N2 process to one of order N.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Pairs of rooftop basis functions that have identical MoM interactions.&lt;br /&gt;
&lt;br /&gt;
=== Generating A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
The planar MoM mesh generation process involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties&lt;br /&gt;
# Creating and viewing the mesh&lt;br /&gt;
# Verifying the mesh for integrity&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] offers two mesh generation algorithms for discretizing planar structures: Hybrid and Triangular. The hybrid mesh consists of both rectangular and triangular cells. The hybrid mesh generator creates a kind of “object-centric” mesh that depends on the geometry of each object. It tries to discretize rectangular objects with rectangular cells as much as possible. In certain connection areas, a few triangular cells might be inserted to provide the mesh transition for current continuity. All the non-rectangular objects (circular, polygonal, etc.) are discretized using triangular cells. The triangular mesh generator, on the other hand, discretizes the planar objects with all triangular cells regardless of their shape. The only exceptions are feed lines that contain gap sources or lumped elements, which are always meshed with rectangular cells.&lt;br /&gt;
&lt;br /&gt;
You can generate and view a planar mesh by clicking the '''Show Mesh''' [[File:mesh_tool.png]] button of the '''Simulate Toolbar''' or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' or using the keyboard shortcut '''Ctrl+M'''. When the mesh of the planar structure is displayed in EM.Cube’s project workspace, its &amp;amp;quot;Mesh View&amp;amp;quot; mode is enabled. In this mode you can perform view operations like rotate view, pan or zoom, but you cannot create new objects or edit existing ones. To exit the mesh view mode, press the keyboard's '''Esc Key''' or click the '''Show Mesh''' [[File:mesh_tool.png]] button once again.&lt;br /&gt;
&lt;br /&gt;
Once a mesh is generated, it stays in the memory until the structure is changed or the mesh density or other settings are modified. Every time you view mesh, the one in the memory is displayed. You can force EM.Cube to create a new mesh from the ground up by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''Planar Mesh''' item in the '''Discretization''' section of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Mesh Density ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, generates a hybrid mesh of your planar structure with a mesh density of 20 cells per effective wavelength. It is important to understand the concept of mesh density (either hybrid or triangular) as used by [[Planar Module]]. It gives a measure of the number of cells per effective wavelength that are placed in various regions of your planar structure. The higher the mesh density, the more cells are created on the geometrical objects. Keep in mind that only the finite-sized objects of your structure are discretized. No mesh is generated for the substrate layers of your background structure. The free-space wavelength is defined as &amp;lt;math&amp;gt;\lambda_0 = \tfrac{2\pi f}{c}&amp;lt;/math&amp;gt;, where f is the center frequency of your project and c is the speed of light in the free space. The effective wavelength is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where e&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity.&lt;br /&gt;
&lt;br /&gt;
The effective permittivity is defined differently for different types of traces and embedded object sets. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivity of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivity of the two substrate layers just above and below the metallic trace. These definitions of effective permittivity are consistent with the effective propagation constant of transmission lines realized on such trace types. For embedded object sets, the effective permittivity is defined as the largest of the permittivities of all the substrate layers and embedded dielectric sets. In all cases, for the purpose of calculating the effective wavelength, only the real part of the permittivities are considered. The reason for using an effective wavelength so defined for determination of mesh resolution is to make sure that enough cells are placed in areas that might feature higher field concentration.&lt;br /&gt;
&lt;br /&gt;
Due to the different definitions of effective wavelength in different parts of your planar structure, you will see different mesh resolutions. For example, if you structure has several substrate layers with different permittivities, the mesh of metal traces on layers with a higher permittivity value will feature more cells than the mesh of metal traces on layers with a lower permittivity value even though the mesh density value is the same for the whole structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM30.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of two rectangular patches at two different planes. The lower substrate layer has a higher permittivity.&lt;br /&gt;
&lt;br /&gt;
=== Customizing A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the planar mesh including the mesh type and density from the planar Mesh Settings Dialog. You can also change these settings while in the mesh view mode, and you can update the changes to view the new mesh. To open the mesh settings dialog, either click the '''Mesh Settings''' [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Mesh Settings...''', or by right click on the '''Planar 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 mesh algorithm from the dropdown list labeled '''Mesh Type''', which offers two options: '''Hybrid''' and '''Triangular'''. You can also enter a different value for '''Mesh Density''' in cells per effective wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;). For each value of mesh density, the dialog also shows the average &amp;amp;quot;Cell Edge Length&amp;amp;quot; in the free space. To get an idea of the size of mesh cells on the traces and embedded object sets, divide this edge length by the square root of the effective permittivity a particular trace or set. Click the '''Apply''' button to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM31.png]]&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Of Connected Trace Objects ===&lt;br /&gt;
&lt;br /&gt;
Using the generated mesh of a planar structure, EM.Cube creates a set of vectorial basis functions that are passed to the input file of the Planar MoM simulation engine. This engine requires edge-based basis functions. The common edges between adjacent cells are used to define edge-based rooftop or RWG basis functions. These elementary basis functions indeed provide the current flow and warrant the continuity among the mesh cells. Therefore, when two objects overlap or share a common edge, the connection between them must be translated into &amp;amp;quot;bridge&amp;amp;quot; basis functions, which carry the information about current flow to the simulation engine.&lt;br /&gt;
&lt;br /&gt;
'''The most important rule of object connections in EM.Cube's [[Planar Module]] is that only objects belonging to the same trace can be connected to one another.''' For example, if two objects reside on the same Z-plane and geometrically have a common edge which you can clearly see in the project workspace, but organizationally they belong to two different metal traces, then the bridge basis functions will not be generated between them, and the simulation engine will see them disconnected. If two objects belong to the same trace and have a common overlap area, EM.Cube first merges the two objects using the &amp;amp;quot;Boolean Union&amp;amp;quot; operation and converts them into a single object for the purpose of meshing. The mesh of &amp;amp;quot;unioned&amp;amp;quot; areas is usually made up of triangular cells. If two objects reside on the same Z-plane and geometrically overlap with each other but organizationally belong to two different trace groups, incongruous, overlapped cells will be generated that will either blow up the linear system or produce completely wrong simulation results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM36.png|250px]] [[File:PMOM38.png|250px]] [[File:PMOM37.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Two overlapping planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
When two planar objects belonging to the same trace are connected via a common edge, it is critical to generate a consistent mesh at the connection area and properly transition and merge the meshes of the individual objects. EM.Cube's triangular planar mesh generator simply &amp;amp;quot;unions&amp;amp;quot; the two objects and generates a connected mesh. EM.Cube's hybrid planar mesh generator, however, behave differently when it comes to the connection between rectangular objects. The rule in this case is the following:&lt;br /&gt;
&lt;br /&gt;
* If the two connected rectangular objects have the same side dimensions along the common linear edge with perfect alignment, a rectangular bridge mesh is produced.&lt;br /&gt;
* If the two connected rectangular objects have different side dimensions along the common linear edge or have edge offset, a set of triangular cells is generated along the edge of the object with the large side.&lt;br /&gt;
* Rectangular objects that contain gap source or lumped elements, always have a rectangular mesh around the gap area.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM33.png|250px]] [[File:PMOM35.png|250px]] [[File:PMOM34.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edge-connected rectangular planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
=== Mesh of Embedded Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] models embedded objects as vertical volume currents. The vectorial basis functions in this case are Z-directed prisms as opposed to rooftop basis functions. If an embedded object is located under or above a metallic trace or connected from both top and bottom, it is critical to create mesh continuity between the embedded object and its connected metallic traces. In other words, the generated mesh must ensure current continuity between the vertical volume currents and horizontal surface currents. EM.Cube’s planar mesh generator automatically handles situations of this kind and generates all the required connection meshes.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that EM.Cube’s Planar MoM engine uses a 2.5-D approximation, whereby only vertical volume currents are assumed inside embedded objects. When the height of an embedded object is small (as should typically be under the 2.5-D assumption), one prismatic cell is placed across the object along the Z-axis. Long PEC vias with a very small radius do also satisfy the 2.5-D assumption. In this case, the long via objects are discretized further along the Z direction and generate multiple stacked cells. Several prismatic cells along the Z-axis may increase the simulation time drastically. This is due to the fact that the host layer is effectively subdivided into a number of sub-layers and the stacked cells are treated as stacked vias embedded inside these sub-layers. As a result, the simulation engine needs to compute all the dyadic Green’s functions accounting for the interactions between all such sub-layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM39.png|400px]] [[File:PMOM40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of a vertical PEC via connecting two horizontal metallic strips. The shorter via has one prismatic cell along the Z direction, while the longer via is discretized into several stacked cells.&lt;br /&gt;
&lt;br /&gt;
=== Refining Mesh At Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
It is very important to apply the right mesh density to capture all the geometrical details of your planar structure. This is especially true for &amp;amp;quot;field discontinuity&amp;amp;quot; regions such as junction areas between objects of different side dimensions, where larger current concentrations are usually observed at sharp corners, or at the connection areas between metallic traces and PEC vias, as well as the areas around gap sources and lumped elements, as these create voltage or current discontinuities. For large planar structures, using a higher mesh density may not always be a practical option since it will quickly lead to a very large MoM matrix and thus growing the size of the numerical problem. Sometimes a slightly non-uniform mesh still produces stable numerical results. In other words, you may choose to increase the mesh resolution around the discontinuity regions only.&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh around geometrical and field discontinuities. You can check the check box labeled &amp;amp;quot;'''Refine Mesh at Junctions'''&amp;amp;quot;, which increases the mesh resolution at the connection area between rectangular objects. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Gap Locations'''&amp;amp;quot;, which may prove particularly useful when gap sources or lumped elements are placed on a short transmission line connected from both ends. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Vias'''&amp;amp;quot;, which increases the mesh resolution on the cross section of embedded object sets and by extension at the connection regions of the metallic objects connected to them. EM.Cube typically doubles the mesh resolution locally at the discontinuity areas when the respective boxes are checked.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM41.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Refining the planar mesh at the via and surrounding area.&lt;br /&gt;
&lt;br /&gt;
=== Checking Mesh Integrity ===&lt;br /&gt;
&lt;br /&gt;
You should always visually inspect EM.Cube's default generated mesh to see if the current mesh settings have produced an acceptable mesh. You may often need to change the mesh density or other parameters and regenerate the mesh. The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, highly incongruous meshes should always be avoided. Sometimes EM.Cube's default mesh may contain very narrow triangular cells due to very small angles between two edges. In some rare cases, extremely small triangular cells may be generated, whose area is a small fraction of the average mesh cell. These cases typically happen at the junctions and other discontinuity regions or at the boundary of highly irregular geometries with extremely fine details. In such cases, increasing or decreasing the mesh density by one or few cells per effective wavelength often resolves that problem and eliminates those defective cells. Nonetheless, EM.Cube's planar mesh generator offers an option to identify the defective triangular cells and either delete them or cure them. By curing we mean removing a narrow triangular cell and merging its two closely spaced nodes to fill the crack left behind.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM44.png|400px]] [[File:PMOM42.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Deleting or curing defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
EM.Cube by default deletes or cures all the triangular cells that have angles less than 10º. Sometimes removing defective cells may inadvertently cause worse problems in the mesh. You may choose to disable this feature and uncheck the box labeled &amp;amp;quot;'''Remove Defective Triangular Cells'''&amp;amp;quot; in the Planar Mesh Settings dialog. You can also change the value of the minimum allowable cell angle.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM43(1).png]]&lt;br /&gt;
&lt;br /&gt;
Setting the minimum allowable angle for non-defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
=== Locking Mesh Of Object Groups ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides different ways of controlling the mesh of a planar structure locally. Earlier you saw how to increase the mesh resolution at the discontinuity regions without affecting the mesh of uniform or regular areas of a planar structure. Another way of local mesh control is to lock the mesh density of certain traces or object sets. The mesh density that you specify in the Planar Mesh Settings dialog is a global parameter and applies to all the traces and embedded object sets in your project. However, you can lock the mesh of individual PEC, PMC and conductive sheet traces or embedded objects sets. In that case, the locked mesh density takes precedence over the global density. Note that locking mesh of object groups, in principle, is different than refining the mesh at discontinuities. In the latter case, the mesh of connection areas is affected. However, objects belonging to different traces cannot be connected to one another. Therefore, locking mesh can be useful primarily for isolated object groups that may require a higher (or lower) mesh resolution.&lt;br /&gt;
&lt;br /&gt;
You can lock the local mesh density by accessing the property dialog of a specific trace or embedded object set and checking the box labeled '''Lock Mesh'''. This will enable the '''Mesh Density''' box, where you can accept the default global value or set any desired new value.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM45.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of an object group from its property dialog.&lt;br /&gt;
&lt;br /&gt;
=== Local Mesh Control Using Polymesh Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to manually and individually mesh geometrical objects using the concept of polymesh. The Polymesh tool converts a planar surface object to a set of interconnected triangular cells, which is basically identical to its triangular surface mesh. Simply select an object and click the '''Polymesh Tool''' [[File:polymesh_tool_tn.png]] button of '''Tools Toolbar''', or select '''Menu &amp;amp;gt; Tools &amp;amp;gt; Polymesh''', or use the keyboard shortcut '''P'''. You can also right click on a selected object and select '''Polymesh''' from the contextual menu. From the Polymesh Dialog, you can control the mesh resolution through the '''Edge Length''' parameter, which is expressed in project units. Note that unlike the planar mesh generator which uses a frequency-dependent mesh density to drive the mesh resolution, the ploymesh's edge length is fixed and purely geometrical and does not change with the project frequency. '''EM.Cube's mesh generator considers a polymesh object as a &amp;amp;quot;final&amp;amp;quot; mesh and reproduces it &amp;amp;quot;As Is&amp;amp;quot; during the meshing process.'''&lt;br /&gt;
&lt;br /&gt;
You have access to every single node of a polymesh object and you can change its coordinates arbitrarily. You do this by opening the property dialog of a polymesh object and selecting a certain node index in the box labeled '''Active Node'''. You can also select a node by hovering the mouse over the node to highlight it and then click to select it. A red ball appears on the current active node. You can delete the nodes arbitrarily using the '''Delete''' button of the dialog, which results in lowering the mesh resolution at the location of the deleted node. Or you can insert new nodes in the faces of a polymesh object. To insert a node, first you have to select a face. Change the '''Mode''' option by selecting the '''Face''' radio button and then select the right '''Active Face''' index. A red triangular border appears around the selected face. You can also simply click on the surface of a face and select it using the mouse. With the desired face selected, click the '''Insert''' button of the dialog to create a new node at the centroid of the selected face. You can adjust the coordinates of the newly inserted node from the three X, Y and Z '''Coordinate''' boxes. Note that immediately after the insertion of a new node, the label of these coordinate boxes changes to &amp;amp;quot;'''New Node'''&amp;amp;quot; and they show the relative local X, Y and Z offsets with respect to the original node position. Once you close the Polymesh Dialog, the new node is added to the existing node list and can be edited later like the other polymesh nodes. By inserting a new node, you increase the mesh resolution locally and selectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM46(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Discretizing a planar surface object using EM.Cube's Polymesh tool.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that since a polymesh object it considered a final mesh, its mesh cannot be connected to other objects. In other words, bridge basis functions are not generated if even some of the polymesh edges may coincide with other objects' edges. A polymesh object is treated by the mesh generator as an isolated mesh. However, EM.Cube allows you to connect polymesh objects manually. To do so, bring two or more polymesh objects close to each other so that they have one or more common edges. No face overlaps are allowed in this case. Select the polymesh objects and click the '''Merge Tool'''[[File:merge_tool_tn.png]] button of '''Tools Toolbar''' to merge the polymesh objects into a single polymesh object. The new merged polymesh object will provide all the necessary bridge basis functions among the original, separate polymesh objects.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
In a typical electromagnetic simulation in EM.Cube's [[Planar Module]], you define a planar structure that consists of a layered background structure with a number of finite-sized metal and slot traces and possibly embedded metal or dielectric objects interspersed among the substrate layers. The planar structure is then excited by some sort of a signal source that induces electric currents on metal parts and magnetic currents on slot traces. The method of moments (MoM) solver computes these unknown electric and magnetic currents by discretizing the finite-sized objects. The induced currents, in turn, produce their own electric and magnetic fields which coexist (are superposed) with the impressed electric and magnetic fields of the signal source. From a knowledge of the near fields, EM.Cube calculates the port characteristics of the planar structure, if any ports have been defined. From a knowledge of the far fields, EM.Cube calculates the radiation or scattering characteristics of the planar structure.&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure in a number of different ways. The excitation source you choose depends on the observables you seek in your project. [[Planar Module]] provides the following source for exciting planar structures:&lt;br /&gt;
&lt;br /&gt;
* Lumped Sources with three varieties: [[#Gap Sources|Gap Sources]], [[#De-embedded Sources|De-embedded Sources]] and [[#Probe Sources|Probe Sources]]&lt;br /&gt;
* [[#Plane Wave Sources|Plane Wave Sources]]&lt;br /&gt;
* [[#Short Dipole Sources|Short Dipole Sources]]&lt;br /&gt;
* [[#Huygens Sources|Huygens Sources]]&lt;br /&gt;
&lt;br /&gt;
For antennas and planar circuits, where you typically define one or more ports, you usually use lumped sources. A lumped source is indeed a gap discontinuity that is placed on the path of an electric or magnetic current flow, where a voltage or current source is connected to inject a signal. Gap sources are placed across metal or slot traces. Probe sources are placed across vertical PEC vias. A de-embedded source is a special type of gap source that is placed near the open end of an elongated metal or slot trace to create a standing wave pattern, from which the scattering parameters can be calculated accurately. To calculate the scattering characteristics of a planar structure, e.g. its radar cross section (RCS), you excite it with a plane wave source. Short dipole sources are used to explore propagation of points sources along a layered structure. Huygens sources are virtual equivalent sources that capture the radiated electric and magnetic fields from another structure possibly in another EM.Cube computational module and bring them as a new source to excite your planar structure.&lt;br /&gt;
&lt;br /&gt;
=== Gap Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM47.png|thumb|250px|The [[Planar Module]]'s Gap Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A gap is an infinitesimally narrow discontinuity that is placed on the path of current flow on a feed line. In planar structures, feed lines are typically in the form of a microstrip, stripline, slotline or coplanar waveguide (CPW). You use rectangle strip objects to construct such feed lines. A gap source can be placed on any rectangle strip object on a PEC, PMC or conductive sheet trace. Depending on the type of the trace on which a gap source is placed, it will have a different physical interpretation.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PEC or conductive sheet trace can be regarded as a strip transmission line that carries electric currents along its length (local X direction). The characteristic impedance of the line is a function of its width (local Y direction). A gap source is placed somewhere along the length and across the width of such a rectangle strip object, thus creating an infinitesimally narrow gap at its location. In this case, the gap source represents an ideal voltage source in series with a lumped impedance that is connected across the gap to excite the strip transmission line. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the gap. The source pumps electric current into the line. If the voltage source is shorted (having a zero amplitude), then the gap acts like a series lumped element on the transmission line.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PMC trace can be regarded as a slot transmission line on an infinite PEC ground plane that carries a magnetic current along its length (local X direction). The characteristic impedance of the slot line is a function of its width (local Y direction). A slot gap source is placed somewhere along the length and across the width of the rectangle strip object on a PMC trace and creates an infinitesimally narrow gap at its location. In this case, the slot gap source represents an ideal current source with a shunt lumped admittance that is connected across the slot to excite the slot transmission line. When the admittance is zero, the gap acts like an ideal current filament, which creates electric fields across the slot, equivalent to a magnetic current flowing into the slot line. If the current source is open (having a zero amplitude), then the gap acts like a shunt (parallel) lumped element on the slot line. As you will see later, a coplanar waveguide (CPW) can be realized using two parallel slot lines with two aligned, collocated gap sources.&lt;br /&gt;
&lt;br /&gt;
To define a gap source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Gap Source Dialog by right clicking on the '''Gap Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' available in the project workspace. Select the desired host rectangle strip object. The box labeled '''Direction''' shows the direction or polarity of the new gap source on its host rectangle strip object. You have the option to select either the positive or negative direction for the source polarity.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the gap source from the start point of the rectangle strip feed line. The value of '''Offset''' by default is initially set to the center of the line. As you change the offset value, you can see the gap move on its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of a gap on a slot trace) and '''Phase''' in degrees.&lt;br /&gt;
* You can also change the default label as well as the default color of the gap source using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
&lt;br /&gt;
=== Probe Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM48.png|thumb|300px|The [[Planar Module]]'s Probe Source dialog]]&lt;br /&gt;
&lt;br /&gt;
Another way of exciting a planar structure is by placing a gap on the path of a vertical current on a PEC via. This represents a filament source, which is used to model coaxial probe excitation. A probe source can be placed only on a PEC via object. Most planar transmission lines are fed using SMA connectors. The outer conductor of the coaxial line is connected to the ground and its inner conductor is extended across the substrate layer and connected to a metallic line. EM.Cube's [[Planar Module]] models a coaxial probe as an infinitesimal gap discontinuity placed across a thin via, representing an ideal voltage source in series with a lumped impedance. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the via. The source pumps vertical electric current into the probe. If the voltage source is shorted (having a zero amplitude), then the gap acts like a shunt lumped element across the via.&lt;br /&gt;
&lt;br /&gt;
To define a probe source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Probe Source Dialog by right clicking on the '''Probe Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, in the dropdown list labeled '''Embedded Objects''', you will find a list of all the PEC via objects available in the project workspace. Select the desired host PEC via object. The box labeled '''Direction''' shows the direction or polarity of the new probe source on its host PEC via object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the probe source from the bottom of the via object. The value of '''Offset''' by default is initially set to the center of the via.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and '''Phase''' in degrees.&lt;br /&gt;
&lt;br /&gt;
Unlike gap sources, whose offset parameter determines their exact location on their host line, the offset parameter of a probe source is not relevant except for long host vias. In the case of a short via that is discretized using a single prismatic element across its host substrate layer, the probe gap is always placed at the middle of its height. Longer vias may have a mesh that consists of two or more stacked prismatic elements. In this case, the probe source's offset determines which prismatic element will host the probe gap discontinuity at its middle.&lt;br /&gt;
&lt;br /&gt;
=== Defining Source Arrays ===&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects, the array object will also be listed as an eligible object for gap source placement. A gap source will then be placed on each element of the array. All the gap sources will have identical direction and offset. Similarly, if the project workspace contains an array of PEC via objects, the embedded array object will also be listed as an eligible object for probe source placement. A probe source will then be placed on each via object of the array. All the probe sources will have identical direction and offset.&lt;br /&gt;
&lt;br /&gt;
However, you can prescribe certain amplitude and/or phase distribution over the array of gap or probe sources. By default, all the gap or probe sources have identical amplitudes of 1V (or 1A for the slot case) and zero phase. The available amplitude distributions to choose from include '''Uniform''', '''Binomial''' and '''Chebyshev''' and '''Date File'''. In the Chebyshev case, you need to set a value for minimum side lobe level ('''SLL''') in dB. You can also define '''Phase Progression''' in degrees along all three principal axes. You can view the amplitude and phase of individual sources by right clicking on the top '''Sources''' item in the Navigation Tree and selecting '''Show Source Label''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM49.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining gap sources on an array of rectangle strip objects with a Chebyshev amplitude distribution.&lt;br /&gt;
&lt;br /&gt;
In the data file option, the complex amplitude are directly read in from a data file using a real - imaginary format. When this option is selected, you can either improvise the complex array weights or import them from an existing file. In the former case click the '''New Data File''' button. This opens up the Windows Notepad with default formatted data file that has a list of all the array element indices with default 1+j0 amplitudes for all of them. You can replace the default complex values with new one and save the Notepad data file, which brings you back to the Gap Source dialog. To import the array weights, click the '''Open Data File''' button, which opens the standard Windows Open dialog. You can then select the right data file from the one of your folders. It is important to note that the data file must have the correct format to be read by EM.Cube. For this reason, it is recommended that you first create a new data file with the right format using Notepad as described earlier and then save it for later use.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining gap source array weights using a data file.&lt;br /&gt;
&lt;br /&gt;
=== Defining Ports ===&lt;br /&gt;
&lt;br /&gt;
Ports are used in a planar structure to order and index the sources for calculation of circuit parameters such as scattering (S), impedance (Z) and admittance (Y) parameters. In EM.Cube's [[Planar Module]], you can use the following types of sources to define ports:&lt;br /&gt;
&lt;br /&gt;
* Gap Sources&lt;br /&gt;
* Probe Sources&lt;br /&gt;
* Active Lumped Elements&lt;br /&gt;
* De-Embedded Sources&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your planar structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree. Note that your project can have mixed gap and probes sources as well as active lumped element sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
'''You can define any number of ports equal to or less than the total number of sources in your project.''' The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50S by default. You can delete any port by selecting it from the Port List and clicking the '''Delete''' button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment and make sure that is what you intend. You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit''' button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM53.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edit Port dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Coupled Ports ===&lt;br /&gt;
&lt;br /&gt;
Sources can be coupled to each other to model coupled strip lines (CPS) on metal traces or coplanar waveguides (CPW) on slot traces. Similarly, probe sources may be coupled to each other. Coupling two or more sources does not change the way they excite a planar structure. It is intended only for the purpose of S parameter calculation. The feed lines or vias which host the coupled sources are usually parallel and aligned with one another and they are all grouped together as a single transmission line represented by a single port. This single &amp;amp;quot;coupled&amp;amp;quot; port then interacts with other coupled or uncoupled ports.&lt;br /&gt;
&lt;br /&gt;
You couple two or more sources using the '''Port Definition Dialog'''. To do so, you need to change the default port assignments. First, delete all the ports that are to be coupled from the Port List of the dialog. Then, define a new port by clicking the '''Add''' button of the dialog. This opens up the Add Port dialog, which consists of two tables: '''Available''' sources on the left and '''Associated''' sources on the right. A right arrow ('''--&amp;amp;gt;''') button and a left arrow ('''&amp;amp;lt;--''') button let you move the sources freely between these two tables. You will see in the &amp;amp;quot;Available&amp;amp;quot; table a list of all the sources that you deleted earlier. You may even see more available sources. Select all the sources that you want to couple and move them to the &amp;amp;quot;Associated&amp;amp;quot; table on the right. You can make multiple selections using the keyboard's '''Shift''' and '''Ctrl''' keys. Closing the Add Port dialog returns you to the Port Definition dialog, where you will now see the names of all the coupled sources next to the name of the newly added port.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is your responsibility to set up coupled ports and coupled transmission lines properly. For example, to excite the desirable odd mode of a coplanar waveguide (CPW), you need to create two rectangular slots parallel to and aligned with each other and place two gap sources on them with the same offsets and opposite polarities. To excite the even mode of the CPW, you use the same polarity for the two collocated gap sources. Whether you define a coupled port for the CPW or not, the right definition of sources will excite the proper mode. The couple ports are needed only for correct calculation of the port characteristics.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM51(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Coupling gap sources in the Port Definition dialog by associating more than one source with a single port.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Port Characteristics At Gap Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
A gap source on a metal trace and a probe source on a PEC via behave like a series voltage source with a prescribed strength (of 1V and zero phase by default) that creates a localized discontinuity on the path of electric current flow. At the end of a planar MoM simulation, the electric current passing through the voltage source is computed and integrated to find the total input current. From this one can calculate the input admittance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_W \hat{y} \cdot \mathbf{J_s} \, dy} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM54(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for gap sources on metal traces, where the line integration is performed across the width of the metal strip, and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_S \hat{z} \cdot \mathbf{J_p} \, ds} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM55.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for probe sources on PEC vias, where the surface integration is performed over the cross section of the via. On the other hand, a gap source on a slot trace behaves like a shunt current source with a prescribed strength (of 1A and zero phase by default) that creates a localized discontinuity on the path of magnetic current flow. At the end of a planar MoM simulation, the magnetic current passing through the current source is computed and integrated to find the total input voltage across the current filament. From this one can calculate the input impedance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{in} = \frac{V_{in}}{I_s} = \frac{\int_W \hat{y} \cdot \mathbf{M_s} \,dy} {V_s} = \frac{\int_W E_y \, dy}{V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM56.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the input admittance or impedance defined at a gap source port is referenced to the two terminals of the voltage source connected across the gap as shown in the figure below. This is different than the input admittance or impedance that one may normally define for a microstrip port, which is referenced to the substrate's ground.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM59(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Definition of different input impedances at the gap location.&lt;br /&gt;
&lt;br /&gt;
To resolve this problem, you can place a gap source on a metal strip line by a distance of a quarter guide wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/4) away from its open end. Note that (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; = 2p/ß), where ß is the propagation constant of the metallic transmission line. As show in the figure below, the impedance looking into an open quarter-wave line segment is zero, which effectively shorts the gap source to the planar structure's ground. The gap admittance or impedance in this case is identical to the input admittance or impedance of the planar structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM60(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing a gap source a quarter guide wavelength away from the open end of a feed line to effectively short it to the ground at the gap location.&lt;br /&gt;
&lt;br /&gt;
The same principle applies to the gap sources on slot traces. The figure below shows how to place two gap sources with opposite polarities a quarter guide wavelength away from their shorted ends to calculate the correct input impedance of the CPW line looking to the left of the gap sources. Note that in this case, you deal with shunt filament current sources across the two slot lines and that the slot line carry magnetic currents. The end of the slot lines look open to the magnetic currents, but in reality they short the electric field. The quarter-wave CPW line acts as an open circuit to the current sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM61(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing two oppositely polarized gap sources a quarter guide wavelength away from the short end of a CPW line to effectively create an open circuit beyond the gap location.&lt;br /&gt;
&lt;br /&gt;
The case of a probe source placed on a PEC via that is connected to a ground plane is more straightforward. In this case, the probe source's gap discontinuity is placed at the middle plane of the PEC via. If the via is short, it is meshed using a single prismatic element, which is connected to the ground from one side and to the metal strip line from the other. Therefore, the probe admittance or impedance is equal to that of the structure at a reference plane that passed through the host via.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM62(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Input impedance of a probe source on a PEC via connected to a ground plane.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Multiport Structures Using Linear Superposition ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure has two or more sources, but you have not defined any ports, all the lumped sources excite the structure locally and contribute to the excitation vector needed for the MoM solution of the problem. However, when you assign N ports to the sources, then you have a multiport structure that is characterized by an N×N admittance matrix (instead of a single Y&amp;lt;sub&amp;gt;in&amp;lt;/sub&amp;gt; parameter), or an N×N impedance matrix, or an N×N scattering matrix. To calculate these matrices, EM.Cube uses a binary excitation scheme in conjunction with the principle of linear superposition. In this binary scheme, the structure is analyzed N times. Each time one of the N port-assigned sources is excited, and all the other port-assigned sources are turned off.&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on metal traces and probe sources on PEC vias, turning a source off means shorting a series voltage source. The electric currents passing through these sources are then found at each port location, and the admittance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_m = \sum_{n=1}^N Y_{mn} V_n, \quad \quad Y_{mn} = \frac{I_m}{V_n} \bigg|_{V_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM57.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on slot traces, turning a source off means opening a shunt filament current source. The magnetic currents passing through the source locations, and thus the voltages across them, are then found at all ports, and the impedance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_m = \sum_{n=1}^N Z_{mn} I_n, \quad \quad Z_{mn} = \frac{V_m}{I_n} \bigg|_{I_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM58.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The N solution vectors that are generated through the N binary excitation analyses are finally superposed to produce the actual solution to the problem. However, in this process, EM.Cube also calculates all the port characteristics. Keep in mind that the impedance (Z) and admittance (Y) matrices are inverse of each other. From the impedance matrix, the scattering matrix is calculated using the following relation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM63.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Lumped Elements In Planar MoM ===&lt;br /&gt;
&lt;br /&gt;
Lumped elements are components, devices, or circuits whose overall dimensions are very small compared to the wavelength. As a result, they are considered to be dimensionless compared to the dimensions of a mesh cell. In fact, a lumped element is equivalent to an infinitesimally narrow gap that is placed in the path of current flow, across which the device's governing equations are enforced. Using Kirkhoff's laws, these device equations normally establish a relationship between the currents and voltages across the device or circuit. Crossing the bridge to Maxwell's domain, the device equations must now be cast into a from o boundary conditions that relate the electric and magnetic currents and fields. EM.Cube's [[Planar Module]] allows you to define passive circuit elements: '''Resistors'''(R), C'''apacitors'''(C), I'''nductors'''(L), and series and parallel combinations of them as shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image106.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A series-parallel RLC combination that can be modeled as a lumped circuit in [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Lumped elements are conceptualized in a similar way as gap or probe sources. They are indeed considered as infinitesimally narrow gaps placed in the path of current flow, across which Ohm's law is enforced. If a lumped element is placed on a PEC or conductive sheet trace, it is treated as a series connection. The boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; &lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{x}\cdot \mathbf{E_{gap}} \, dx = Z_L \int_W \hat{y} \cdot \mathbf{J_s} \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM67.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Z&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total impedance across the two terminals of the series element. If the lumped element is placed on a slot trace, it is treated as a shunt connection that creates a current discontinuity. In this case, the magnetic current across the gap is continuous, and the boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_{gap} = Y_L V_{in} \quad\quad \int_{\delta} J_Y^{fila} \, dx = Y_L \int_W E_y \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \int_{\delta} \hat{x}\cdot\hat{n} \times (\mathbf{H_{gap}^+ - H_{gap}^-}) \, dx = Y_L \int_W \hat{y}\cdot\mathbf{M_s} \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM70(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Y&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total admittance across the two terminals of the shunt element. If a lumped element is placed on a PEC via that is connected to a metal strip from one side and to a PEC ground plane from the other end, it is indeed as a series connection across a gap discontinuity at the middle plane of the via. If the via is short, it is meshed using a single prismatic element. In that case, the lumped element in effect shunts the metal strip to the ground. The boundary condition at the location of the lumped element across the PEC via is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{z}\cdot \mathbf{E_{gap}} \, dz = Z_L \int_S \hat{z} \cdot \mathbf{J_p} \, ds&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM68.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM69.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Using a shunt lumped element on a PEC via to terminate a metallic strip line.&lt;br /&gt;
&lt;br /&gt;
=== Defining Lumped Circuits ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM64.png|thumb|400px|Lumped Element dialog]]&lt;br /&gt;
To define a lumped RLC circuit in your planar structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Lumped Element Dialog by right clicking on the '''Lumped Elements''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Gap Topology''' section of the dialog, select one of the two options: '''Gap on Line''' and '''Gap on Via'''.&lt;br /&gt;
* In the '''Lumped Circuit Type''' section of the dialog, select one of the two options: '''Passive RLC''' and '''Active with Gap Source'''.&lt;br /&gt;
* Depending on your choice of gap topology, in the '''Lumped Circuit Location''' section of the dialog, you will find either a list of all the '''Rectangle Strip Objects''' or a list of all the '''PEC Via Objects''' available in the project workspace. Select the desired rectangle strip or embedded PEC via object.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the rectangle strip line or from the bottom of the via object, whichever the case. The value of '''Offset''' by default is initially set to the center of the line or via.&lt;br /&gt;
* In the '''Load Properties''' section, the series and shunt resistance values Rs and Rp are specified in Ohms, the series and shunt inductance values Ls and Lp are specified in nH (nanohenry), and the series and shunt capacitance values Cs and Cp are specified in pF (picofarad). Only the checked elements are taken into account in the total impedance calculation. By default, only the series resistor is checked with a value of 50S, and all other circuit elements are initially greyed out.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] allows you to define a voltage source in series with a series-parallel RLC combination and place them across the gap. This is called an active lumped element. If you choose the '''Active with Gap Source''' option of the '''Lumped Circuit Type''' section of the dialog, the right section of the dialog entitled '''Source Properties''' becomes enabled, where you can you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of PMC traces) and the '''Phase''' in degrees. Also, the box labeled '''Direction''' becomes relevant in this case which contains a gap source. Otherwise, a passive RLC circuit does not have polarity.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects or PEC via objects, the array object will also be listed as an eligible object for lumped element placement. A lumped element will then be placed on each element of the array. All the lumped elements will have identical direction, offset, resistance, inductance and capacitance values. If you define an active lumped element, you can prescribe certain amplitude and/or phase distribution to the gap sources just like in the case of gap and probe sources. The available amplitude distributions include '''Uniform''', '''Binomial'''''', Chebyshev''' and '''Data File'''.&lt;br /&gt;
&lt;br /&gt;
{{Note|The impedance of the lumped circuit is calculated at the operating frequency of the project using the specified R, L and C values. As you change the frequency, the value of the impedance that is passed to the Planar MoM engine will change.}}&lt;br /&gt;
&lt;br /&gt;
=== Calculating Scattering Parameters Using Prony's Method ===&lt;br /&gt;
&lt;br /&gt;
The calculation of the scattering (S) parameters is usually an important objective of modeling planar structures especially for planar circuits like filters, couplers, etc. As you saw earlier, you can use lumped sources like gaps and probes and even active lumped elements to calculate the circuit characteristics of planar structures. The admittance / impedance calculations based on the gap voltages and currents are accurate at RF and lower microwave frequencies or when the port transmission lines are narrow. In such cases, the electric or magnetic current distributions across the width of the port line are usually smooth, and quite uniform current or voltage profiles can easily be realized. At higher frequencies, however, a more robust method is needed for calculating the port parameters.&lt;br /&gt;
&lt;br /&gt;
One can calculate the scattering parameters of a planar structure directly by analyzing the current distribution patterns on the port transmission lines. The discontinuity at the end of a port line typically gives rise to a standing wave pattern that can clearly be discerned in the line's current distribution. From the location of the current minima and maxima and their relative levels, one can determine the reflection coefficient at the discontinuity, i.e. the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter. A more robust technique is Prony’s method, which is used for exponential approximation of functions. A complex function f(x) can be expanded as a sum of complex exponentials in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f(x) \approx \sum_{n=1}^N c_i e^{-j\gamma_i x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM73.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are complex coefficients and &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are, in general, complex exponents. From the physics of transmission lines, we know that lossless lines may support one or more propagating modes with pure real propagation constants (real &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents). Moreover, line discontinuities generate evanescent modes with pure imaginary propagation constants (imaginary &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents) that decay along the line as you move away from the location of such discontinuities.&lt;br /&gt;
&lt;br /&gt;
In practical planar structures for which you want to calculate the scattering parameters, each port line normally supports one, and only one, dominant propagating mode. Multi-mode transmission lines are seldom used for practical RF and microwave applications. Nonetheless, each port line carries a superposition of incident and reflected dominant-mode propagating signals. An incident signal, by convention, is one that propagates along the line towards the discontinuity, where the phase reference plane is usually established. A reflected signal is one that propagates away from the port plane. Prony's method can be used to extract the incident and reflected propagating and evanescent exponential waves from the standing wave data. From a knowledge of the amplitudes (expansion coefficients) of the incident and reflected dominant propagating modes at all ports, the scattering matrix of the multi-port structure is then calculated. In Prony's method, the quality of the S parameter extraction results depends on the quality of the current samples and whether the port lines exhibit a dominant single-mode behavior. Clean current samples can be drawn in a region far from sources or discontinuities, typically a quarter wavelength away from the two ends of a feed line.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM71.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Minimum and maximum current locations of the standing wave pattern on a microstrip line feeding a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== De-Embedded Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM74.png|thumb|300px|The [[Planar Module]]'s De-embedded Source dialog]]&lt;br /&gt;
EM.Cube's [[Planar Module]] provides de-embedded sources for the exclusive purpose of accurate S parameter calculation based on Prony's method. A de-embedded source is indeed a gap source that is placed close to an open end of a feed line. The other end of the line is typically connected to a planar structure of interest. Like gap sources, de-embedded sources can be placed only on rectangle strip objects. '''During mesh generation, EM.Cube automatically extends the length of a port line that hosts a de-embedded source to about two effective wavelengths.''' This is done to provide enough length for formation of a clean standing wave current pattern. The effective wavelength of a transmission line for length extension purposes is calculated in a similar manner as for the planar mesh resolution. It is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where &amp;amp;epsilon;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivities of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivities of the two substrate layers just above and below the metallic trace. The host port line must always be open from one end to allow for its length extension. You have to make sure that there are no objects standing on the way of the extended port line to avoid any unwanted overlaps.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM72.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The mesh of a patch antenna excited with a de-embedded source. Note the feed line extension in the mesh view.&lt;br /&gt;
&lt;br /&gt;
You can define de-embedded source on metal (PEC), slot (PMC) and conductive sheet traces. To define a de-embedded source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the De-Embedded Source Dialog by right clicking on the '''De-Embedded Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' or arrays of such objects that are available in the project workspace. The box labeled '''Direction''' shows the direction the phase reference plane for S parameter calculation and determines which end of the host line to place the source at. You have the option to select either the positive or negative direction to bounce the source between the two ends of the line.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the phase reference plane from the end of the feed line object. The value of '''Offset''' by default is initially set to zero, meaning that the S parameters are calculated at the plane passing through the end of the feed line. Type in a new offset value or use the spin buttons to move the source arrow along the line away from its end. As you change the offset value, you can see the source arrow move along its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of slot traces) and '''Phase''' in degrees.&lt;br /&gt;
* In the '''Prony Mode Extraction''' section, you can specify the '''Number of Prony Modes''', which refers to the number of positive-negative exponential pairs that are extracted from the standing wave current data. The default value is 1 and represents the dominant quasi-TEM incident/reflected signal pair.&lt;br /&gt;
&lt;br /&gt;
In a planar project with de-embedded sources, if you do not define any ports, the feed lines will simply be extended, and the exciting gap sources will be placed at the open ends of these extended lines. Note that if you define a de-embedded source along with a port definition in your project, then all the other port-assigned sources of your project must be of the same de-embedded type. You can define de-embedded sources for coplanar waveguides (CPW) on slot traces. To do so, you need to place two collocated, de-embedded sources with identical offsets (same phase reference plane), same source amplitudes but 180° phase difference. Note that for CPW structures, setting the number of Prony modes to 2 can get you more accurate results. In this case, the two extracted Prony modes will include the incident and reflected, odd and even, propagating modes of the CPW.&lt;br /&gt;
&lt;br /&gt;
=== Using the Line Calculator ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides a simple calculator for analyzing planar transmission lines. It is based on the frequency domain finite difference (FDFD) technique. You can find the characteristic impedance, effective permittivity and guide wavelength of a TEM or quasi-TEM transmission line defined based on your project's background structure. Therefore, any arbitrary stack-up configuration with any number of substrate layers can be considered.&lt;br /&gt;
&lt;br /&gt;
To access the Line Calculator, first you have to select a metal (PEC) trace or a slot (PMC) trace in the Navigation Tree. Right click on the name of a trace and select '''Line Calc...''' from the contextual menu to open the Line Calc Dialog. You can analyze a metal strip line on any PEC trace or a coplanar waveguide (coupled slot lines) on any PMC trace. The 2D line structure to be analyzed by the FDFD method consists of the background structure of your project with a metal strip or CPW located at the Z-plane of your selected trace. Depending on whether your open the Line Calc dialog from a metal trace or a slot trace, a picture of a microstrip line or a CPW line appear at the top of the dialog, respectively. In the former case, you have to specify '''Strip Width''' in the project units. In the latter case, you have to specify '''Slot Width''', too. Keep in mind that the strip width is equal to the spacing between the two slot lines minus the width of individual slot lines. Clicking the Analyze button of the dialog evokes the FDTD simulator, and calculated results are reflected in the boxes labeled '''Zo''', '''Effective Permittivity''' and '''Guide Wavelength'''.&lt;br /&gt;
&lt;br /&gt;
When your background structure involves a slot (PMC) trace, then there is an infinite PEC ground plane at the plane of the slot trace. In that case, when you analyze a strip line on a metal trace, you must keep in mind that your stack-up configuration will be truncated by the slot's ground plane just for purpose of Z&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; calculation. A typical case of this type is a slot-coupled patch antenna fed by a microstrip line underneath the slot. From the point of view of the Line Calculator, the microstrip line lies on a substrate layer that is backed by the slot's ground plane and it does not see the substrate layer lying above the slot plane.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM75.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Analyzing a metal strip line using the line calculator.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM76.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Analyzing a coplanar waveguide using the line calculator.&lt;br /&gt;
&lt;br /&gt;
=== Short Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM110.png|thumb|250px|Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A short dipole is the simplest type of radiator, which consists of a short current element of length &amp;amp;amp;DELTA;l, aligned along a unit vector û and carrying a current of I Amperes. The product I&amp;amp;amp;DELTA;l is often called the dipole moment and gives a measure of the radiator's strength. A short dipole in the free space generates an azimuth-symmetric, almost omni-directional, far field. However, the radiated fields of a short dipole above a layered planar background structure are greatly altered by the presence of the substrate layers. Note that the electric and magnetic field radiated by a short dipole in the presence of a layered background structure are indeed nothing but the dyadic Green's functions of that structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{EJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{HJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM109(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To define a short dipole source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Short Dipoles''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' The Short Dipole Dialog opens up.&lt;br /&gt;
* In the section titled '''Source Location''', enter values for the X, Y and Z coordinates of the dipole's center. By default, a new dipole is placed at the origin of coordinates. As you change the coordinates using the spin buttons, you will see the dipole move in the project workspace.&lt;br /&gt;
* In the section titled '''Source Properties''', you can change the values of the dipole's '''Amplitude''' (in A), '''Phase''' (in degrees) and '''Length''' in the project's length units. A new dipole, by default, is Z-directed. You can change its orientation by entering the components of its unit vector in the three boxes labeled '''Direction Unit Vector'''.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM77.png|thumb|300px|[[Planar Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure with an incident plane wave to explore its scattering characteristics such as radar cross section (RCS). Exciting an antenna structure with an incident plane wave is equivalent to operating it in the &amp;amp;quot;receive&amp;amp;quot; mode. Plane wave excitation in the [[Planar Module]] is particularly useful for calculation of reflection and transmission coefficients of periodic surfaces. Note that the incident plane wave in your project bounces off the layered background structure and part of it also penetrates the substrate layers. The total incident field that is used to calculate the excitation vector of the MoM linear system is a superposition of the incident, reflected and transmitted plane waves at various regions of your planar structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{inc}(r)} = E_0 (\mathbf{\hat{e}_1} e^{ -jk_0 \mathbf{\hat{k}_1\cdot r} } + &lt;br /&gt;
R \mathbf{\hat{e}_2} e^{ -jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{inc}(r)} = \frac{E_0}{\eta_0} ( \mathbf{\hat{k}_1 \times \hat{e}_1} e^{-jk_0 \mathbf{\hat{k}_1 \cdot r} } + &lt;br /&gt;
R \mathbf{\hat{k}_2 \times \hat{e}_2} e^{-jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi&amp;lt;/math&amp;gt; is the characteristic impedance of the free space, '''k&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the unit propagation vectors of the incident plane wave and the wave reflected off the topmost substrate layer, respectively, and '''ê&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''ê&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the polarization vectors corresponding to the electric field of those waves. R is the reflection coefficient at the interface between the top half-space and the topmost substrate layer and has different values for the TM and TE polarizations.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the theta and phi angles of the propagation vector in the spherical coordinate system. The default values are &amp;amp;theta; = 180° and &amp;amp;phi; = 0°, representing a normally incident plane wave propagating along the -Z direction with a +X-polarized electric field vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization cases, the magnetic and electric fields are parallel to the XY plane, respectively. The left-hand (LCP) and right-hand (RCP) circular polarization cases are restricted to normal incidences only (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the '''Amplitude''' of the incident electric field in V/m and '''Phase''' in degrees. The default field Amplitude is 1 V/m, with a zero Phase.&lt;br /&gt;
* The direction of the Plane Wave is determined by the incident '''Theta''' and '''Phi''' angles expressed in the spherical coordinate system in degrees. You have to choose the '''Polarization''' of the plane wave from the four options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''and '''RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''. The components of the unit propagation vector are shown based on your choice of the angles of incidence. The components of the normalized E- and H-field vectors are also displayed based on your choice of polarization.&lt;br /&gt;
&lt;br /&gt;
== Running Planar MoM Simulations ==&lt;br /&gt;
&lt;br /&gt;
The first step of planning a planar MoM simulation is defining your planar structure. This consists of the background structure plus all the finite-sized metal and slot trace objects and possibly embedded metal or dielectric objects that are interspersed among the substrate layers. The background stack-up is defined in the Layer Stack-up dialog, which automatically opens up as soon as you enter the [[Planar Module]]. The metal and slot traces and embedded object sets are listed in the Navigation Tree, which also shows all the geometrical (CAD) objects you draw in the project workspace under each object group at different Z-planes.&lt;br /&gt;
&lt;br /&gt;
The next step is to decide on the excitation scheme. If your planar structure has one or more ports and you seek to calculate its port characteristics, then you have to choose one of the lumped source types or a de-embedded source. If you are interested in the scattering characteristics of your planar structure, then you must define a plane wave source. Before you can run a planar MoM simulation, you also need to decide on the project's observables. These are the simulation data that you expect EM.Cube to generate as the outcome of the numerical simulation. EM.Cube's [[Planar Module]] offers the following observables:&lt;br /&gt;
&lt;br /&gt;
* Current Distribution&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Far Fields (Radiation Patterns or Radar Cross Section)&lt;br /&gt;
* Huygens Surfaces&lt;br /&gt;
* Port Characteristics&lt;br /&gt;
* Periodic Characteristics&lt;br /&gt;
&lt;br /&gt;
If you run a simulation without having defined any observables, no data will be generated at the end of the simulation. Some observables require a certain type of excitation source. For example, port characteristics will be calculated only if the project contains a port definition, which in turn requires the existence of at least one gap or probe or de-embedded source. The periodic characteristics (reflection and transmission coefficients) are calculated only if the structure has a periodic domain and excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Simulation Modes ===&lt;br /&gt;
&lt;br /&gt;
The simplest simulation type in EM.Cube is an analysis. In this mode, the planar structure in your project workspace is meshed at the center frequency of the project. EM.Cube generates an input file at this single frequency, and the Planar MoM simulation engine is run once. Upon completion of the planar MoM simulation, a number of data files are generated depending on the observables you have defined in your project. An analysis is a single-run simulation.&lt;br /&gt;
&lt;br /&gt;
EM.Cube offers a number of multi-run simulation modes. In such cases, the Planar MoM simulation engine is run multiple times. At each engine run, certain parameters are varied and a collection of simulation data are generated. At the end of a multi-run simulation, you can graph the simulation results in EM.Grid or you can animate the 3D simulation data from the Navigation Tree. For example, in a frequency sweep, the frequency of the project is varied over its specified bandwidth. Port characteristics are usually plotted vs. frequency, representing your planar structure's frequency response. In an angular sweep, the &amp;amp;theta; or &amp;amp;phi; angle of incidence of a plane wave source is varied over their respective ranges. EM.Cube's [[Planar Module]] currently provides the following types of multi-run simulation modes:&lt;br /&gt;
&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
* Angular Sweep&lt;br /&gt;
* R/T Macromodel&lt;br /&gt;
* Huygens Sweep&lt;br /&gt;
* [[Optimization]]&lt;br /&gt;
* HDMR&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting a simulation mode in [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
To run a planar MoM analysis of your project structure, open the Run Simulation Dialog by clicking the '''Run''' [[File:run_icon.png]] button on the '''Simulate Toolbar''' or select '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt;''' '''Run''' or use the keyboard shortcut '''Ctrl+R'''. The '''Analysis''' option of the '''Simulation Mode''' dropdown list is selected by default. Once you click the '''Run''' button, the simulation starts. A new window, called the '''Output Window''', opens up that reports the different stages of simulation and the percentage of the tasks completed at any time. After the simulation is successfully completed, a message pops up and reports the end of simulation. In certain cases like calculating scattering parameters of a circuit or reflection / transmission characteristics of a periodic surface, some results are also reported in the Output Window. At the end of a simulation, you need to click the '''Close''' button of the Output Window to return to the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM78.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Stages Of A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar MoM simulation engine uses a particular formulation of the method of moments called mixed potential integral equation (MPIE). Due to high-order singularities, the dyadic Green's functions for electric fields generated by electric currents as well as the dyadic Green's functions for magnetic fields generated by magnetic currents have very slow convergence behaviors. Instead of using these slowly converging dyadic Green's function, the MPIE formulation uses vector and scalar potentials. These include vector electric potential '''A(r)''', scalar electric potential K&amp;lt;sup&amp;gt;&amp;amp;Phi;&amp;lt;/sup&amp;gt;'''(r)''', vector magnetic potential '''F(r)''' and scalar magnetic potential K&amp;lt;sup&amp;gt;&amp;amp;Psi;&amp;lt;/sup&amp;gt;'''(r)'''. These potentials have singularities of lower orders. As a result, they coverage relatively faster. The speed of their convergence is further increased drastically using special singularity extraction techniques.&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation consists of two major stages: matrix fill and linear system inversion. In the first stage, the moment matrix and excitation vector are calculated. In the second stage, the MoM system of linear equations is inverted using one of the several available matrix solvers to find the unknown coefficients of all the basis functions. The unknown electric and magnetic currents are linear superpositions of all these elementary solutions. These can be visualized in EM.Cube using the current distribution observables. Having determined all the electric and magnetic currents in your planar structure, EM.Cube can then calculate the near fields on prescribed planes. These are introduced as field sensor observables. The near-zone electric and magnetic fields are calculated using a spectral domain formulation of the dyadic Green's functions. Finally the far fields of the planar structure are calculated in the spherical coordinate system. These calculations are performed using the asymptotic form of the dyadic Green's functions using the &amp;amp;quot;stationary phase method&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Setting Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation involves a number of numerical parameters that take preset default values unless you change them. You can access these parameters and change their values by clicking the '''Settings''' button next to the '''Select Engine''' dropdown list in the [[Planar Module]]'s Simulation Run dialog. In most cases, you do not need to open this dialog and you can leave all the default numerical parameter values intact. However, it is useful to familiarize yourself with these parameters, as they may affect the accuracy of your numerical results.&lt;br /&gt;
&lt;br /&gt;
The Planar MoM Engine Settings Dialog is organized in a number of sections. Here we describe some of the numerical parameters. The &amp;amp;quot;'''Matrix Fill'''&amp;amp;quot; section of the dialog deals with the operations involving the dyadic Green's functions. You can set a value for the '''Convergence Rate for Integration''', which is 1E-5 by default. This is used for the convergence test of all the infinite integrals in the calculation of the Hankel transform of spectral-domain dyadic Green's functions. When the substrate is lossy, the surface wave poles are captured in the complex integration plane using contour deformation. You can change the maximum number of iterations involved in this deformed contour integration, whose default value is 20. When the substrate is very thin with respect to the wavelength, the dyadic Green's functions exhibit numerical instability. Additional singularity extraction measures are taken to avoid numerical instability but at the expense of increased computation time. By default, a thin substrate layer is defined to a have a thickness less than 0.01&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;, where &amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective wavelength. You can modify the definition of &amp;amp;quot;Thin Substrate&amp;amp;quot; by entering a value for '''Thin Substrate Threshold''' different than the default 0.01. The parameter '''Max Coupling Range''' determines the distance threshold in wavelength between the observation and source points after which the Green's interactions are neglected. This distance by default is set to 1,000 wavelengths. For electrically small structures, the phase variation across the structure may be negligible. In such cases, a fast quasi-static analysis can be carried out. You can set this threshold in wavelengths in the box labeled '''Max Dimensions for Quasi-Static Analysis'''.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Spectral Domain Integration&amp;amp;quot; section of the dialog, you can set a value to '''Max Spectral Radius in k0''', which has a default value of 30. This means that the infinite spectral-domain integrals in the spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; are pre-calculated and tabulated up to a limit of 30k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant. These integrals may converge much faster based on the specified Convergence Rate for Integration described earlier. However, in certain cases involving highly oscillatory integrands, much larger integration limits like 100k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; might be needed to warrant adequate convergence. For spectral-domain integration along the real k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; axis, the interval [0, Nk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;] is subdivided into a large number of sub-intervals, within each an 8-point Gauss-Legendre quadrature is applied. The next parameter, '''No. Radial Integration Divisions per k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;''', determines how small these intervals should be. By default, 2 divisions are used for the interval [0, k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;]. In other words, the length of each integration sub-interval is k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/2. You can increase the resolution of integration by increasing this value above 2. Finally, instead of 2D Cartesian integration in the spectral domain, a polar integration is performed. You can set the '''No. of Angular Integration Points''', which has a default value of 100.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM79.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Linear System Solvers ===&lt;br /&gt;
&lt;br /&gt;
After the MoM impedance matrix '''[Z]''' (not to be confused with the impedance parameters) and excitation vector '''[V]''' have been computed through the matrix fill process, the planar MoM simulation engine is ready to solve the system of linear equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[Z]}_{N\times N} \cdot \mathbf{[I]}_{N\times 1} = \mathbf{[V]}_{N\times 1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM81.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''[I]''' is the solution vector, which contains the unknown amplitudes of all the basis functions that represent the unknown electric and magnetic currents of finite extents in your planar structure. In the above equation, N is the dimension of the linear system and equal to the total number of basis functions in the planar mesh. EM.Cube's linear solvers compute the solution vector'''[I]''' of the above system. You can instruct EM.Cube to write the MoM matrix and excitation and solution vectors into output data files for your examination. To do so, check the box labeled &amp;amp;quot;'''Output MoM Matrix and Vectors'''&amp;amp;quot; in the Matrix Fill section of the Planar MoM Engine Settings dialog. These are written into three files called mom.dat1, exc.dat1 and soln.dat1, respectively.&lt;br /&gt;
&lt;br /&gt;
There are a large number of numerical methods for solving systems of linear equations. These methods are generally divided into two groups: direct solvers and iterative solvers. Iterative solvers are usually based on matrix-vector multiplications. Direct solvers typically work faster for matrices of smal to medium size (N&amp;amp;lt;3,000). EM.Cube's [[Planar Module]] offers five linear solvers:&lt;br /&gt;
&lt;br /&gt;
# LU Decomposition Method&lt;br /&gt;
# Biconjugate Gradient Method (BiCG)&lt;br /&gt;
# Preconditioned Stabilized Biconjugate Gradient Method (BCG-STAB)&lt;br /&gt;
# Generalized Minimal Residual Method (GMRES)&lt;br /&gt;
# Transpose-Free Quasi-Minimum Residual Method (TFQMR)&lt;br /&gt;
&lt;br /&gt;
Of the above list, LU is a direct solver, while the rest are iterative solvers. BiCG is a relatively fast iterative solver, but it works only for symmetric matrices. You cannot use BiCG for periodic structures or planar structures that contain both metal and slot traces at different planes, as their MoM matrices are not symmetric. The three solvers BCG-STAB, GMRES and TtFQMR work well for both symmetric and asymmetric matrices and they also belong to a class of solvers called '''Krylov Sub-space Methods'''. In particular, the GMRES method always provides guaranteed unconditional convergence.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, provides a &amp;amp;quot;'''Automatic'''&amp;amp;quot; solver option that picks the best method based on the settings and size of the numerical problem. For linear systems with a size less than N = 3,000, the LU solver is used. For larger systems, BiCG is used when dealing with symmetric matrices, and GMRES is used for asymmetric matrices. If the size of the linear system exceeds N = 15,000, the sparse version of the iterative solvers is used, utilizing a row-indexed sparse storage scheme. You can override the automatic solver option and manually set you own solver type. This is done using the '''Solver Type''' dropdown list in the &amp;amp;quot;'''Linear System Solver'''&amp;amp;quot; section of the Planar MoM Engine Settings dialog. There are also a number of other parameters related to the solvers. The default value of '''Tolerance of Iterative Solver''' is 1E-3, which can be increased for more ill-conditioned systems. The maximum number of iterations is usually expressed as a multiple of the systems size. The default value of '''Max No. of Solver Iterations / System Size''' is 3. For extremely large systems, sparse versions of iterative solvers are used. In this case, the elements of the matrix are thresholded with respect to the larges element. The default value of '''Threshold for Sparse Solver''' is 1E-6, meaning that all the matrix elements whose magnitude is less than 1E-6 times the large matrix elements are set equal to zero. There are two more parameters that are related to the Automatic Solver option. These are &amp;amp;quot;''' User Iterative Solver When System Size &amp;amp;gt;'''&amp;amp;quot; with a default value of 3,000 and &amp;amp;quot;''' Use SParse Storage When System Size &amp;amp;gt;''' &amp;amp;quot; with a default value of 15,000. In other words, you control the automatic solver when to switch between direct and iterative solvers and when to switch to the sparse version of iterative solvers.&lt;br /&gt;
&lt;br /&gt;
If your computer has an Intel CPU, then EM.Cube offers special versions of all the above linear solvers that have been optimized for Intel CPU platforms. These optimal solvers usually work 2-3 time faster than their generic counterparts. When you install EM.Cube, the option to use Intel-optimized solvers is already enabled. However, you can disable this option (e.g. if your computer has a non-Intel CPU). To do that, open the EM.Cube's Preferences Dialog from '''Menu &amp;amp;gt; Edit &amp;amp;gt; Preferences''' or using the keyboard shortcut '''Ctrl+H'''. Select the Advanced tab of the dialog and uncheck the box labeled &amp;amp;quot;''' Use Optimized Solvers for Intel CPU'''&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM82.png]]&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
Electric and magnetic currents are the fundamental output data of a planar MoM simulation. After the numerical solution of the MoM linear system, they are found using the solution vector '''[I]''' and the definitions of the electric and magnetic vectorial basis functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{[I]}_{N\times 1} = &lt;br /&gt;
\begin{bmatrix} I^{(J)} \\ \\ V^{(M)} \end{bmatrix} \quad \Rightarrow \quad&lt;br /&gt;
&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\mathbf{J(r)} = \sum_{n=1}^N I_n^{(J)} \mathbf{f_n^{(J)} (r)} \\&lt;br /&gt;
\\&lt;br /&gt;
\mathbf{M(r)} = \sum_{k=1}^K V_k^{(M)} \mathbf{f_k^{(M)} (r)}&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that currents are complex vector quantities. Each electric or magnetic current has three X, Y and Z components, and each complex component has a magnitude and phase. You can visualize the surface electric currents on metal (PEC) and conductive sheet traces, surface magnetic currents on slot (PMC) traces and vertical volume currents on the PEV vias and embedded dielectric objects. 3D color-coded intensity plots of electric and magnetic current distributions are visualized in the project workspace, superimposed on the surface of physical objects.&lt;br /&gt;
&lt;br /&gt;
In order to view the current distributions, you must first define them as observables before running the planar MoM simulation. To do that, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. At the top of the dialog and in the section titled '''Active Trace / Set''', you can select a trace or embedded object set where you want to observe the current distribution. You can also select the current map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for current amplitude and phase, while the latter generates a 3D vector plot.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM84.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Current Distribution dialog.&lt;br /&gt;
&lt;br /&gt;
Once you close the current distribution dialog, the label of the selected trace or object set is added under the '''Current Distributions''' node of the Navigation Tree. &lt;br /&gt;
&lt;br /&gt;
{{Note|You have to define a separate current distribution observable for each individual trace or embedded object set.}}&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the current distribution nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''J''') and magnetic ('''M''') currents as well as the total electric and magnetic currents defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{J_{tot}} | = \sqrt{|J_x|^2 + |J_y|^2 + |J_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{M_{tot}} | = \sqrt{|M_x|^2 + |M_y|^2 + |M_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can click on any current plot to visualize it in the project workspace. A legend box at the upper right corner of the screen shows the color map scale as well as the minimum, maximum, mean and standard deviation of the current data and its units. To exit the 3D plot view and return to EM.Cube's normal view, hit the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM85(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The current distribution map of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM86(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Vectorial (cone) visualization of the current distribution on a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
Once all the current distributions are known in a planar structure, the electric and magnetic fields can be calculated everywhere in that structure using the dyadic Greens's functions of the background structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{EJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{EM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{HJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{HM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM92(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above equations can be cast into the spectral domain as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{EJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{EM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{HJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{HM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM93(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Calculation of the near-zone fields (fields at the vicinity of the unknown currents) is done at the post-processing stage and in a Cartesian coordinate systems. These calculations involve doubly infinite spectral-domain integrals, which are computed numerically. As was mentioned earlier, EM.Cube's planar MoM engine rather uses a polar integration scheme, where the radial spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; is integrated over the interval [0, Mk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;], M being a large enough number to represent infinity, and the angular spectral variable t is integrated over the interval [0, 2&amp;amp;pi;]. You also saw some of the numerical parameters related to this spectral-domain integration scheme.&lt;br /&gt;
&lt;br /&gt;
{{Note|When the observation plane is placed very close to the radiating J and M currents, the Green's functions exhibit singularities, which translate to very slow convergence or divergence of the integrals. You need to be careful to place field sensors at adequate distances from these radiating sources.}}&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|300px|[[Planar Module]]'s Field Sensor dialog]]&lt;br /&gt;
In order to view the near field distributions, you must first define field sensor observables before running the planar MoM simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of near field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear.&lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.&lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a planar MoM simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{E_{tot}}| = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{H_{tot}}| = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules, near field calculations in the [[Planar Module]] usually takes substantial time. This is due to the fact that at the end of a planar MoM simulation, the fields are not available anywhere (as opposed to the [[FDTD Module]]), and their computation requires integration of complex dyadic Green's functions (as opposed to [[MoM3D Module]]'s free space Green's functions).&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM116.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone electric field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone magnetic field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
Unlike differential-based methods, MoM simulators do not need a radiation box to calculate the far field data. The far-zone fields are calculated directly by integrating the currents on the traces and across the embedded objects using the asymptotic form of the background structure’s dyadic Green's functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{ff}(r)} = \iiint_V \mathbf{ \overline{\overline{G}}_{EJ,ff}(r|r') \cdot J(r') } \, d\nu ' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM,ff}(r|r') \cdot M(r') } \, d\nu '&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \dfrac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; is the characteristic impedance of the free space. As can be seen from the above equations, the far fields have the form of a TEM wave propagating in the radial direction away from the origin of coordinates. This means that the far-field magnetic field is always perpendicular to the electric field and the propagation vector, which in this case happens to be the radial unit vector in the spherical coordinate system. In other words, one only needs to know the far-zone electric field and can easily calculate the far-zone magnetic field from it. In EM.Cube's mixed potential integral equation formulation, the far-zone electric field can be expressed in terms of the asymptotic form of the vector electric and magnetic potentials '''A''' and '''F''':&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{E^{ff}}(x,y,z) = j k_0 \eta_0 \hat{r} \times [\hat{r} \times \mathbf{A}(r \to \infty)] +&lt;br /&gt;
j k_0 \hat{r} \times \mathbf{F}(r \to \infty)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The asymptotic form of these vector potentials are calculated using the &amp;amp;quot;'''Method of Stationary Phase'''&amp;amp;quot; when k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;rarr; &amp;amp;infin;. In that case, one can use the approximation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_0 |\mathbf{r-r'}| \approx k_0 (r - \mathbf{\hat{r} \cdot r'}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM115.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After applying the stationary phase method, one can extract the spherical wave factor exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/r from the far-zone electric field, leaving the rest as functions of the spherical angles &amp;amp;theta; and &amp;amp;phi;. In other words, the far field is normalized to r, the distance from the field observation point to the origin. It is customary to express the far fields in spherical components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;. Note that the outward propagating, TEM-type, far fields do not have radial components, i.e. E&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 0.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\theta}}(\theta, \phi) = \cos\theta \cos\phi E_x + \cos\theta \sin\phi E_y - \sin\theta E_z &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\phi}}(\theta, \phi) = -\sin\phi E_x + \cos\phi E_y &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM114.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM118.png|thumb|300px|[[Planar Module]]'s Radiation Pattern dialog]]&lt;br /&gt;
Even though the planar MoM engine does not need a radiation box, you still have to define a &amp;amp;quot;Far Field&amp;amp;quot; observable for radiation pattern calculation. This is because far field calculations take time and you have to instruct EM.Cube to perform these calculations. To define a far field, right click the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...'''. The Radiation Pattern Dialog opens up. You may accept the default settings, or you can change the value of '''Angle Increment''', which is expressed in degrees. You can also choose to '''Normalize 2D Patterns'''. In that case, the maximum value of a 2D paten graph will have a value of 1; otherwise, the actual far field values in V/m will be used on the graph.&lt;br /&gt;
&lt;br /&gt;
Once a planar MoM simulation is finished, three far field items are added under the Far Field item in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the &amp;amp;quot;Total&amp;amp;quot; far field. The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the whole structure or parts of it. In a 3D radiation pattern plot, the fields are always normalized to the maximum value of the total far field for visualization purpose:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM89.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM119.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D polar radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM120.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D vectorial (cone) radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
The 2D radiation pattern graphs can be plotted from EM.Cube's '''Data Manager'''. A total of eight 2D radiation pattern graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section of Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM124.png|thumb|300px|Planar Module's Radar Cross Section dialog]]&lt;br /&gt;
&lt;br /&gt;
When a planar structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields of that planar structure. EM.Cube can also calculate the radar cross section (RCS) of a planar target:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{|E_{\theta}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{|E_{\phi}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{|E_{tot}^{scat}|^2}{|E^{inc}|^2} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM123.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note that in this case the RCS is defined for a finite-sized target in the presence of an infinite background structure.''' The scattered &amp;amp;theta; and &amp;amp;phi; components of the far-zone electric field are indeed what you see in the 3D far field visualization of radiation (scattering) patterns. Instead of radiation or scattering patterns, you can instruct EM.Cube to plot 3D visualizations of &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and the total RCS. To do so, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* At the end of a planar MoM simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This fourth plane cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D mono-static radar cross section plot of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Running a Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
In a frequency sweep, the operating frequency of a planar structure is varied during each sweep run. EM.Cube's [[Planar Module]] offers two types of frequency sweep: Uniform and Adaptive. In a uniform frequency sweep, the frequency range and the number of frequency samples are specified. The samples are equally spaced over the frequency range. At the end of each individual frequency run, the output data are collected and stored. At the end of the frequency sweep, the 3D data can be visualized and/or animated, and the 2D data can be graphed in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
To run a uniform frequency sweep, open the '''Simulation Run Dialog''', and select the '''Frequency Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the frequency sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Frequency Settings''' dialog. The '''Frequency Range'''is initially set equal to your project's center frequency minus and plus half bandwidth. But you can change the values of '''Start Frequency'''and '''End Frequency''' as well as the '''Number of Samples'''. The dialog offers two options for '''Frequency Sweep Type''': '''Uniform''' or '''Adaptive'''. Select the former type. It is very important to note that in a MoM simulation, changing the frequency results in a change of the mesh of the structure, too. This is because the mesh density is defined in terms of the number of cells per effective wavelength. By default, during a frequency sweep, EM.Cube fixes the mesh density at the highest frequency, i.e., at the &amp;amp;quot;End Frequency&amp;amp;quot;. This usually results in a smoother frequency response. You have the option to fix the mesh at the center frequency of the project or let EM.Cube &amp;amp;quot;remesh&amp;amp;quot; the planar structure at each frequency sample during a frequency sweep. You can make one of these three choices using the radio button in the '''Mesh Settings''' section of the dialog. Closing the Frequency Settings dialog returns you to the Simulation Run dialog, where you can start the planar MoM frequency sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Frequency Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Adaptive Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
Frequency sweeps are often performed to study the frequency response of a planar structure. In particular, the variation of scattering parameters like S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; (return loss) and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; (insertion loss) with frequency are of utmost interest. When analyzing resonant structures like patch antennas or planar filters over large frequency ranges, you may have to sweep a large number of frequency samples to capture their behavior with adequate details. The resonant peaks or notches are often missed due to the lack of enough resolution. EM.Cube's [[Planar Module]] offers a powerful adaptive frequency sweep option for this purpose. It is based on the fact that the frequency response of a physical, causal, multiport network can be represented mathematically using a rational function approximation. In other words, the S parameters of a circuit exhibit a finite number of poles and zeros over a given frequency range. EM.Cube first starts with very few frequency samples and tries to fit rational functions of low orders to the scattering parameters. Then, it increases the number of samples gradually by inserting intermediate frequency samples in a progressive manner. At each iteration cycle, all the possible rational functions of higher orders are tried out. The process continues until adding new intermediate frequency samples does not improve the resolution of the &amp;amp;quot;S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;&amp;amp;quot; curves over the given frequency range. In that case, the curves are considered as having converged.&lt;br /&gt;
&lt;br /&gt;
You must have defined one or more ports for your planar structure run an adaptive frequency sweep. Open the Frequency Settings dialog from the Simulation Run dialog and select the '''Adaptive''' option of '''Frequency Sweep Type'''. You have to set values for '''Minimum Number of Samples''' and '''Maximum Number of Samples'''. Their default values are 3 and 9, respectively. You also set a value for the '''Convergence Criterion''', which has a default value of 0.1. At each iteration cycle, all the S parameters are calculated at the newly inserted frequency samples, and their average deviation from the curves of the last cycle is measured as an error. When this error falls below the specified convergence criterion, the iteration is ended. If EM.Cube reaches the specified maximum number of iterations and the convergence criterion has not yet been met, the program will ask you whether to continue the process or exit it and stop.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large frequency ranges, you may have to increase both the minimum and maximum number of samples. Moreover, remeshing the planar structure at each frequency may prove more practical than fixing the mesh at the highest frequency.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Settings adaptive frequency sweep parameters in [[Planar Module]]'s Frequency Settings Dialog.&lt;br /&gt;
&lt;br /&gt;
=== Examining Port Characteristics ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure is excited by gap sources or probe sources or de-embedded sources, and one or more ports have been defined, the planar MoM engine calculates the scattering, impedance and admittance (S/Z/Y) parameters of the designated ports. The scattering parameters are defined based on the port impedances specified in the project's Port Definition dialog. If more than one port has been defined in the project, the S/Z/Y matrices of the multiport network are calculated. Note that the S/Z/Y matrices of an N-port structure are related to each other through the following equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM121.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively, and &amp;lt;math&amp;gt;\mathbf{[\sqrt{Z_0}]}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM122.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the values of S/Z/Y parameters and VSWR data are calculated and reported in the output message window. The S, Z and Y parameters are written into output ASCII data files of complex type with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Every file begins with a header consisting of a few comment lines that start with the &amp;amp;quot;#&amp;amp;quot; symbol. The complex values are arranged into two columns for the real and imaginary parts. In the case of multiport structures, every single element of the S/Z/Y matrices is written into a separate complex data file. For example, you will have data files like S11.CPX, S21.CPX, ..., Z11.CPX, Z21.CPX, etc. The VSWR data are saved to an ASCII data file of real type with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension called, VSWR.DAT.&lt;br /&gt;
&lt;br /&gt;
If you run an analysis, the port characteristics have single complex values, which you can view using EM.Cube's data manager. However, there are no curves to graph. You can plot the S/Z/Y parameters and VSWR data when you have data sets, which are generated at the end of any type of sweep including a frequency sweep. In that case, the &amp;amp;quot;.CPX&amp;amp;quot; files have multiple rows corresponding to each value of the sweep parameter (e.g. frequency). EM.Cube's 2D graph data are plotted in EM.Grid, a versatile graphing utility. You can plot the port characteristics directly from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting port characteristics data to plot from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
You can also see a list of all the port characteristics data files in EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. By default, the S parameters are plotted as double magnitude-phase graphs, while the Y and Z parameters are plotted as double real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You can change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM129.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Data Manager showing a list of the port characteristics data files.&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it in the Data Manager and click its '''Edit''' button. In the Edit File Dialog, choose one of the options provided in the dropdown list labeled '''Graph Type'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM130.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Changing the graph type by editing a data file's properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM134.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plotted on a Smith Chart graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
=== Rational Interpolation Of Scattering Parameters ===&lt;br /&gt;
&lt;br /&gt;
The adaptive frequency sweep described earlier is an iterative process, whereby the Planar MoM simulation engine is run at a certain number of frequency samples at each iteration cycle. The frequency samples are progressively built up, and rational fits for these data are found at each iteration cycle. A decision is then made whether to continue more iterations. At the end of the whole process, a total number of scattering parameter data samples have been generated, and new smooth data corresponding to the best rational fits are written into new data files for graphing. EM.Cube's [[planar Module]] also allows you to generate a rational fit for all or any existing scattering parameter data as a post-processing operation without a need to run additional simulation engine runs.&lt;br /&gt;
&lt;br /&gt;
You can interpolate all the scattering parameters together or select individual parameters. You do this post-processing operation from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select Smart Fit. At the top of the Smart Fit Dialog, there is a dropdown list labeled '''Interpolate''', which gives a list of all the available S parameter data for rational interpolation. The default option is &amp;amp;quot;All Available Parameters&amp;amp;quot;. Then you see a box labeled '''Number of Available Samples''', whose value is read from the data content of the selected complex .CPX data file. Based on the number of available data samples, the dialog reports the '''Maximum Interpolant Order'''. You can choose any integer number for '''Interpolant Order''', from 1 to the maximum allowed. &lt;br /&gt;
&lt;br /&gt;
{{Note|Interpolant order more than 15 will suffer from numerical instabilities even if you have a very large number of data samples.}}&lt;br /&gt;
&lt;br /&gt;
You can use the '''Update''' button of the dialog to generate the interpolated data for a given order. The new data are written to a complex data file with the same name as the selected S parameter and a &amp;amp;quot;'''_RationalFit'''&amp;amp;quot; suffix. While this dialog is still open, you can plot the new data either directly from the Navigation Tree or from the Data Manager. If you are not satisfied with the results, you can return to the Smart Fit dialog and try a higher or lower interpolant order and compare the new data.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM131.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Smart Fit dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM133(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of a two-port structure in magnitude-phase format.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM132(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The smoothed version of the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of the two-port structure using EM.Cube's Smart Fit.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Output Simulation Data ===&lt;br /&gt;
&lt;br /&gt;
Depending on the source type and the types of observables defined in a project, a number of output data are generated at the end of a planar MoM simulation. Some of these data are 2D by nature and some are 3D. The output simulation data generated by EM.Cube's [[Planar Module]] can be categorized into the following groups:&lt;br /&gt;
&lt;br /&gt;
* '''Port Characteristics''': S, Z and Y Parameters and Voltage Standing Wave Ratio (VSWR)&lt;br /&gt;
* '''Radiation Characteristics''': Radiation Patterns, Directivity, Total Radiated Power, Axial Ratio, Main Beam Theta and Phi, Radiation Efficiency, Half Power Beam Width (HPBW), Maximum Side Lobe Level (SLL), First Null Level (FNL), Front-to-Back Ratio (FBR), etc.&lt;br /&gt;
* '''Scattering Characteristics''': Bi-static and Mono-static Radar Cross Section (RCS)&lt;br /&gt;
* '''Periodic Characteristics''': Reflection and Transmission Coefficients&lt;br /&gt;
* '''Current Distributions''': Electric and magnetic current amplitude and phase on all metal and slot traces and embedded objects&lt;br /&gt;
* '''Near-Field Distributions''': Electric and magnetic field amplitude and phase on specified planes and their central axes&lt;br /&gt;
&lt;br /&gt;
At the end of an analysis, the 2D quantities usually have a single value that is written into an ASCII data file. Complex-valued quantities are written into complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Real-valued quantities are written into real data files with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension. Polar 2D radiation pattern data and some other radiation characteristics are written into angular data files with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; extension. In this latter file type, polar data are stored as functions of an angle expressed in degrees. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). If a sweep simulation involves N sweep [[variables]], then the first N columns of the output data files show the samples of those sweep [[variables]]. All the 2D data files are listed in the '''2D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
3D output data, on the other hand, are defined as functions of the space coordinates and are usually of vectorial nature. Cartesian-type and mesh-type data such as current distributions and near-field field distributions are expressed as functions of the Cartesian (X, Y, Z) coordinates. Spherical-type data like far-field radiation patterns and RCS are expressed as functions of the spherical angles (&amp;amp;theta;, &amp;amp;phi;). The 3D radiation patterns are written into a file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension. This file contains the complex values of the &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field (E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;) as well as the total far field magnitude as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The 3D RCS patterns are written into a file with a &amp;amp;quot;'''.RCS'''&amp;amp;quot; extension. This file contains the real values of the &amp;amp;theta;- and &amp;amp;phi;-polarized RCS values as well as the total RCS as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The current distributions are written into data files with a &amp;amp;quot;'''.CUR'''&amp;amp;quot; extension. They contain the real and imaginary parts of the X, Y and Z components of electric ('''J''') and magnetic ('''M''') current on each cells together with the definition of all the node coordinates and node indices of the cells. The near-field distributions are written into data files with a &amp;amp;quot;'''.SEN'''&amp;amp;quot; extension. They contain the amplitude and phase of the X, Y and Z components of electric ('''E''') and magnetic ('''H''') fields as functions of the coordinates of sampling points. All the 3D data files are listed in the '''3D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The 3D Data Files tab of EM.Cube's Data Manager.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM139.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Viewing the contents of a mesh-type 3D data file in Data Manager.&lt;br /&gt;
&lt;br /&gt;
=== Standard vs. Custom Output ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a number of computed quantities are designated as &amp;amp;quot;Standard Output&amp;amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[File:functions_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Functions...'''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[File:custom_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Custom Output...'''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add''' button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit''' button, or you can delete any parameter from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
=== Viewing &amp;amp;amp; Visualizing Various Output Data Types ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a variety of 2D and 3D output data are generated. Some of these can be visualized or graphed directly from the Navigation Tree, while the others can only be accessed from the Data Manager. All of EM.Cube's simulation data are always written into ASCII data files that you can open and inspect or edit. Lists of these 2D and 3D data files appear under Data Manager's various tabs. The generated data also include all of [[Planar Module]]'s legitimate standard outputs that the simulation engine can compute given the specified source and observable types as well as all of your own previously defined custom output parameters. Note that in this release of EM.Cube, all the custom outputs are real-type data. Each custom output is written into a separate real data file with the same name as the parameter's given label and a &amp;amp;quot;'''.DAT'''&amp;amp;quot; file extension. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot its graph in '''EM.Grid'''. You can also view the contents of a data file by selecting its row in th file list and clicking the '''View''' button of the dialog or by simply double-clicking the highlighted row. This opens up a new window containing a convenient spreadsheet that gives a tabular view of the contents of the selected data file. There are a large number of data operations and manipulations that you can perform on the data content including matrix, calculus and statistical calculations as well as computing and plotting new datasets using the &amp;amp;quot;Compute&amp;amp;quot; feature of the spreadsheet. You can make multiple file selection using the keyboard's '''Ctrl''' and '''Shift''' keys.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing an angular file selected and highlighted for further action.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Data Manager's spreadsheet showing the contents of an angular data file.&lt;br /&gt;
&lt;br /&gt;
The 2D output data include real or complex quantities like various port, radiation, scattering and periodic characteristics. At the end of an analysis, most .CPX and .DAT data files have a single complex or real value, respectively. in other words, there are no curves to plot. Exceptions are Cartesian 2D radiation pattern or RCS data files along the principal and user define phi-cut planes, as well as polar 2D radiation pattern or RCS data files of angular type with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; file extension. These files contain the radiation pattern or RCS data as a function of some relevant angle in the specified plane. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). You can plot graphs of the 2D output data files that contain more than one row in '''EM.Grid'''. Each data file has a default graph type. Real data are plotted on EM.Grid's Cartesian graphs. Complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension are plotted on double Cartesian graphs of &amp;amp;quot;'''Magnitude-Phase'''&amp;amp;quot; type, showing the magnitude in dB and phase in radians. You can change the complex data's graph type to the &amp;amp;quot;'''Real-Imaginary'''&amp;amp;quot; or &amp;amp;quot;'''Smith Chart'''&amp;amp;quot; by selecting its entry in the Data Manager and clicking the '''Edit'''button to open the &amp;amp;quot;Edit File Properties Dialog&amp;amp;quot;. Angular data files like polar 2D radiation patterns or RCS, by default, are plotted on EM.Grid's &amp;amp;quot;'''Polar'''&amp;amp;quot; graphs. Note that real data can be graphed on bar charts, too, just as angular can alternatively be graphed on polar stem charts.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM142.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A 2D radiation pattern polar graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's 3D output simulation data usually have a vectorial nature and are defined as functions of the Cartesian or spherical space coordinates. At the end of a planar MoM simulation, you can view 3D visualizations of the vectorial output data such as current distributions, near-field field distributions, far-field radiation patterns and RCS in EM.Cube's project workspace by clicking on the corresponding observable entries in the Navigation Tree. When you run a sweep simulation of some sort, multiple 3D plots appear on the Navigation Tree representing all the sweep variable samples. You can animate these 3D visualization plots very conveniently from the Navigation Tree. To do so, right click on an observable's name in the Navigation Tree and select the '''Animation''' item from the contextual menu. Make sure that you right click on the observable's parent node, not on one of its child components corresponding to the sweep variable samples. The 3D plot in the project workspace starts to animate and continues forever until to stop it. A new window called &amp;amp;quot;''' Animation Controls Dialog'''&amp;amp;quot; opens up at the lower right corner of the EM.Cube desktop. This dialog allows you to control the animation speed using a box labeled '''Rate''', whose value multiplied by 100 milliseconds indeed gives the frame duration. You can speed up the animation or slow it down from the default rate of one frame per 300ms. The box labeled '''Sample''' show the current frame's plot label at any time. You can pause the animation, rewind it to the first frame, fast-forward it to the last frame or manually step it through back and forth using the movement buttons marked with the symbols |&amp;amp;lt;, &amp;amp;lt;&amp;amp;lt;, ||, &amp;amp;gt;&amp;amp;gt;,&amp;amp;gt;|.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM135.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Animating 3D radiation patterns as the send of a frequency sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM136.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep ===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the planar MoM simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweep, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed later, parametric sweeps are simple and straightforward and do not required careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;amp;quot;expression&amp;amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;amp;quot;formal&amp;amp;quot; option, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[File:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; [[Variables]]...'''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;amp;quot;Add Variable Dialog&amp;amp;quot;. Choose a '''Name''' for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;amp;quot;Variable List&amp;amp;quot;. You can also see the '''Current Value''' of every variable at any time in the Variable as dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit''' button or indirectly during a parametric sweep. In the former case, you have to click the '''Update''' button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, trace and object set dialogs, stack-up dialog or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;amp;quot;Variable List&amp;amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;amp;quot;current Value&amp;amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;amp;quot;Independent&amp;amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete''' and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;amp;quot;Start&amp;amp;quot; and &amp;amp;quot;End&amp;amp;quot; value and is incremented by a predetermined &amp;amp;quot;Step&amp;amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution''' is defined by &amp;amp;quot;Minimum&amp;amp;quot; and &amp;amp;quot;Maximum&amp;amp;quot; values, while '''Normal (Gaussian) Distribution''' is defined by a &amp;amp;quot;Mean&amp;amp;quot; and &amp;amp;quot;Standard Deviation&amp;amp;quot;. You need to specify the &amp;amp;quot;Number of Samples&amp;amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;amp;quot;Define Sweep Variable Dialog&amp;amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete''' and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up''' and '''Move Down''' buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;amp;quot;fake&amp;amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. If you run a dry run while EM.Cube is in the mesh view mode, then the planar mesh of your structure is updated for each combination of the sweep variable samples during the dry run process. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Optimizing Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (Optional but Highly Recommended) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;amp;lt;, &amp;amp;lt;=, &amp;amp;gt; or &amp;amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;amp;quot;'''=='''&amp;amp;quot; are regarded a &amp;amp;quot;'''Goals'''&amp;amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;amp;quot;'''Target Value'''&amp;amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;amp;quot;(LHS - RHS) == 0&amp;amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;amp;quot;non-Equal&amp;amp;quot; logical operators are regarded a &amp;amp;quot;'''Constraints'''&amp;amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[File:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;amp;quot;=== (Equal To)&amp;amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit''' button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation Run Dialog''', and select the '''[[Optimization]]''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;amp;quot;'''[[Optimization]] Algorithm'''&amp;amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm''' and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size''' as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;amp;quot;Define [[Optimization]] Variable Dialog&amp;amp;quot; opens up, where you have to set the '''Minimum'''and '''Maximum'''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog to change those value. If you check the box labeled &amp;amp;quot;''' Update [[Variables]] with Optimal Values'''&amp;amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;amp;quot;saturated&amp;amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;amp;quot;'''Exit Local Min Trap'''&amp;amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;amp;quot;'''Error Function'''&amp;amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;amp;quot;'''Maximum Error'''&amp;amp;quot; value for the objective function, which terminates the process as &amp;amp;quot;converged&amp;amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals''' and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those cases, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute''' button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals''' or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
== Periodic Planar Structures &amp;amp;amp; Antenna Arrays ==&lt;br /&gt;
&lt;br /&gt;
=== Finite Arrays vs. Infinite Periodic Structures ===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that exhibits a repeated geometric pattern. It is made up of identical elements that are arranged in the form of a periodic lattice. The spacing between the elements is denoted by Sx along the X direction and Sy along the Y direction. The number of elements is denoted by Nx along the X direction and Ny along the Y direction (i.e. a total of Nx.Ny elements). If Nx and Ny are finite numbers, you have a finite-sized periodic structure, which is constructed using an &amp;amp;quot;'''Array Object'''&amp;amp;quot; in EM.Cube. If Nx and Ny are infinite, you have an infinite periodic structure with periods Sx and Sy along the X and Y directions, respectively. An infinite periodic structure in EM.Cube is represented by a &amp;amp;quot;'''Periodic Unit Cell'''&amp;amp;quot;. Periodic structures have many applications including phased array antennas, frequency selective surfaces (FSS), electromagnetic bandgap structures (EBG), metamaterial structures, etc. EM.Cube allows you to model both finite and infinite periodic structures.&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; Real practical periodic structures obviously have finite extents. You can easily and quickly construct finite-sized arrays of arbitrary complexity using EM.Cube's &amp;amp;quot;Array Tool&amp;amp;quot;. However, for large values of Nx and Ny, the size of the computational problem may rapidly get out of hand and become impractical. For very large periodic arrays, you can alternatively analyze a unit cell subject to the periodic boundary conditions and calculate the current distribtutions and far fields of the periodic unit cell. For their radiation patterns, you can multiply the &amp;amp;quot;Element Pattern&amp;amp;quot; by an &amp;amp;quot;Array Factor&amp;amp;quot; that captures the finite extents of the structure. In many cases, an approximation of this type works quite well. But in some other cases, the edge effects and particularly the field behavior at the corners of the finite-sized array cannot be modeled accurately. Periodic surfaces like FSS, EBG and metamaterials are also modeled as infinite periodic structures, for which one can define reflection and transmission coefficients. For this purpose, the periodic structure is excited using a plane wave source. Reflection and transmission coefficients are typically functions of the angles of incidence.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
The straightforward approach to the modeling of finite-sized antenna arrays is to use the full-wave method of moments (MoM). This requires building an array of radiating elements using EM.Cube's '''Array Tool''' and feeding the individual array elements using some type of excitation. For example, if the antenna elements are excited using a gap source or a probe source, you can assign a certain array weight distribution among the elements as well as phase progression among the elements along the X and Y directions. EM.Cube currently offers uniform, binomial, Chebyshev and (arbitrary) data file-based weight distribution types. The full-wave MoM approach is very accurate and takes into account all the inter-element coupling effects. At the end of a planar MoM simulation of the array structure, you can plot the radiation patterns and other far field characteristics of the antenna array just like any other planar structure.&lt;br /&gt;
&lt;br /&gt;
The radiation pattern of antenna arrays usually has a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' such as first null level and first null beam width. To have EM.Cube calculate all such parameters, you must check the relevant boxes in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. In particular, you can plot such data files at the end of a sweep simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM91.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
Another approach to modeling a finite-sized antenna array is to analyze one of its elements and use the &amp;amp;quot;Array Factor&amp;amp;quot; concept to calculate its radiation patterns. This method ignores any inter-element coupling effects. In other words, you can regard the structure in the project workspace as a single isolated radiating element. To define an array factor, open the '''Radiation Pattern Dialog''' of the project. In the section titled &amp;amp;quot;'''Impose Array Factor'''&amp;amp;quot;, you will see a default value of 1 for the '''Number of Elements''' along the X and Y directions. This implies a single radiator, representing the structure in the project workspace. There are also default zero values for the '''Element Spacing''' along the X and Y directions. You should change both the number of elements and element spacing in the X and Y directions to define a finite array lattice. For example, you can define a linear array by setting the number of elements to 1 in one direction and entering a larger value for the number of elements along the other direction. Keep in mind that when using an array factor for far field calculation, you cannot assign non-uniform amplitude or phase distributions to the array elements. For that purpose, you have to define an array object with a source array.&lt;br /&gt;
&lt;br /&gt;
=== Defining A Periodic Domain ===&lt;br /&gt;
&lt;br /&gt;
In general, a planar structure in EM.Cube's [[Planar Module]] is assumed to have open boundaries. This means that the structure has infinite dimensions along the X and Y directions. In other words, the layers of the background structure extend to infinity, while the traces and embedded object sets have finite sizes. Along the Z direction, a planar structure can be open-boundary, or it may be truncated by PEC ground planes from the top or bottom or both. You can define a planar structure to be infinitely periodic along the X and Y directions. In this case, you only need to define the periodic unit cell. EM.Cube automatically reproduces the unit cell infinitely and simulates it using a spectral domain periodic version of the Green's functions of your project's background structure.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, you must open [[Planar Module]]'s Periodicity Settings Dialog by right clicking the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Periodicity Settings...''' from the contextual menu or by selecting '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt; 'Computational Domain &amp;amp;gt; Periodicity Settings...''' from the Menu Bar. In the Periodicity Settings Dialog, check the box labeled '''Periodic Structure'''. This will enable the section titled''&amp;amp;quot;''Lattice Properties&amp;amp;quot;. You can define the periods along the X and Y axes using the boxes labeled '''Spacing'''. You can also define values for periodic '''Offset''' along the X and Y directions, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
In a periodic structure, the virtual domain is replaced by a default blue periodic domain that is always centered around the origin of coordinates. Keep in mind that the periodic unit cell must always be centered at the origin of coordinates. The relative position of the structure within this centered unit cell will change the phase of the results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM99.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Regular vs. Generalized Periodic Lattices ===&lt;br /&gt;
&lt;br /&gt;
Besides conventional rectangular lattices, EM.Cube's [[Planar Module]] can also handle complex non-rectangular periodic lattices. For example, many frequency selective surfaces have skewed grids. In order to simulate skewed-grid periodic structures, the definition of the grid has to be generalized. A periodic structure is a repetition of a basic structure (unit cell) at pre-determined locations. Let these locations be described by (x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;, y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;), where m and n are integers ranging from -8 to 8. For a general skewed grid, x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; and y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; can be described by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; x_{mn} = m\Delta x + n \Delta x' \\&lt;br /&gt;
&amp;amp; y_{mn} = m\Delta y + n \Delta y'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; is the primary offset in the X direction (X Spacing) controlled by index m and &amp;lt;math&amp;gt;\Delta x'&amp;lt;/math&amp;gt; is the secondary offset in the X direction (X Offset) controlled by index n. The meanings of &amp;lt;math&amp;gt;\Delta y&amp;lt;/math&amp;gt; (Y Spacing) and &amp;lt;math&amp;gt;\Delta y'&amp;lt;/math&amp;gt; (Y Offset) are similar with the roles of indices m and n interchanged. To illustrate how to use this definition, consider an example of an equilateral triangular grid with side length L as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:image121.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of an equilateral triangular periodic lattice.&lt;br /&gt;
&lt;br /&gt;
From the figure, it is obvious that the y coordinate of each row is fixed and identical, thus &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. While in each row the spacing between adjacent elements is L, there is an offset of L/2 between the consecutive rows. This results in &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;. To sum up, an equilateral triangular grid can be described by &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. In an EM.Cube [[Planar Module]] project, the secondary offsets are equal to zero by default, implying a rectangular lattice. You can change the values of the secondary offsets using the boxes labeled '''X Offset''' and '''Y Offset''' in the '''Periodicity Settings Dialog''', respectively. Triangular and Hexagonal lattices are popular special cases of the generalized lattice type. In a triangular lattice with alternating Rows, &amp;lt;math&amp;gt;\Delta x' = \Delta x/2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. A Hexagonal lattice (with alternating rows) is a special case of triangular lattice in which &amp;lt;math&amp;gt;\Delta y = \sqrt{3\Delta x / 2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Interconnectivity Among Unit Cells ===&lt;br /&gt;
&lt;br /&gt;
In many cases, your planar structure's traces or embedded objects are entirely enclosed inside the periodic unit cell and do not touch the boundary of the unit cell. In EM.Cube's [[Planar Module]], you can define periodic structures whose unit cells are interconnected. Interconnectivity applies only to PEC, PMC and conductive sheet traces, and embedded object sets are excluded. Note that in a periodic planar structure, your objects cannot cross the periodic domain. However, you can arrange objects with linear edges such as one or more flat edges line up with the domain's bounding box. In such cases, EM.Cube's planar MoM mesh generator will take into account the continuity of the currents across the adjacent connected unit cells and will create the connection basis functions at the right and top boundaries of the unit cell. It is clear that due to periodicity, the basis functions do not need to be extended at the left or bottom boundaries of the unit cell.&lt;br /&gt;
&lt;br /&gt;
As an example, consider the periodic structure in the figure below that shows a metallic screen or wire grid. The unit cell of this structure can be defined as a rectangular aperture in a PEC ground plane (marked as Unit Cell 1). In this case, the rectangle object is defined as a slot trace. Alternatively, you can define a unit cell in the form of a microstrip cross on a metal trace. In the latter case, however, the microstrip cross should extend across the unit cell and connect to the crosses in the neighboring cells in order to provide current continuity.&lt;br /&gt;
&lt;br /&gt;
[[File:image122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Modeling a periodic screen using two different types of unit cell.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per3_tn.png|400px]] [[File:pmom_per4_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The PMC aperture unit cell and its planar mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per5_tn.png|400px]] [[File:pmom_per6_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The PEC cross unit cell and its planar mesh. Notice the cell extensions at the unit cell's boundaries.&lt;br /&gt;
&lt;br /&gt;
=== Periodic MoM Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the case of an infinite periodic planar structure, the field equations can be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E(r) = E^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{H(r) = H^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM94.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J_{mn}(r) = J_{mn}}(x,y,z) = \mathbf{J_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{M_{mn}(r) = M_{mn}}(x,y,z) = \mathbf{M_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; -\infty &amp;lt; m, n &amp;lt; \infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM95(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, &amp;lt;math&amp;gt;\mathbf{J_{00}(r)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{M_{00}(r)}&amp;lt;/math&amp;gt; are the periodic unit cell's electric and magnetic currents that are repeated everywhere in space on a rectangular lattice with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. &amp;lt;math&amp;gt;k_{x00}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;k_{y00}&amp;lt;/math&amp;gt; are the periodic propagation constants along the X and Y directions, respectively, and they are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{x00} = k_0 \sin\theta \cos\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{y00} = k_0 \sin\theta \sin\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM96(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;theta; and &amp;amp;phi; are the beam scan angles in the case of periodic excitation of lumped sources, or they are the spherical angles of incidence in the case of a plane wave source illuminating the periodic structure. Using the infinite summations, one can define periodic dyadic Green's functions in the spectral domain in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ \overline{\overline{G}}_{\mu \nu}^{PER} (r|r') } =&lt;br /&gt;
\frac{1}{S_x S_y} \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\mathbf{ \tilde{\overline{\overline{G}}}_{\mu \nu} } (k_x, k_y, z|z')&lt;br /&gt;
e^{-j[k_{xm}(x-x') + k_{yn}(y-y')]}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
k_{xm} = k_{x00} + \frac{2\pi m}{S_x} \quad \text{and} \quad&lt;br /&gt;
k_{ym} = k_{y00} + \frac{2\pi m}{S_y}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM97.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above doubly infinite periodic Green's functions are said to be expressed in terms of &amp;amp;quot;Floquet Modes&amp;amp;quot;. The exact formulation involves an infinite set of these periodic Floquet modes. During the MoM matrix fill process for a periodic structure, a finite number of Floquet modes are calculated. By default, EM.Cube's planar MoM engine considers M&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; = M&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; = 25. This implies a total of 51 modes along the X direction and a total of 51 modes along the Y direction, or a grand total of 51&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 2,601 Floquet modes. You can increase the number of Floquet modes for your project from the Planar MoM Engine Settings Dialog. In the section titled &amp;amp;quot;Periodic Simulation&amp;amp;quot;, you can change the values of '''Number of Floquet Modes''' in the two boxes designated X and Y.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM98.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Changing the number of Floquet modes from the Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Phased Arrays ===&lt;br /&gt;
&lt;br /&gt;
Earlier, it was argued that you can calculate the radiation pattern of a finite antenna array by modeling a single isolated element and multiplying its &amp;amp;quot;Element Pattern&amp;amp;quot; by the &amp;amp;quot;Array Factor&amp;amp;quot;. This method gives acceptable results only when the inter-element coupling effects are negligible, as it does not take into account such effects. Planar antennas printed on dielectric substrates usually exhibit inter-element coupling effects due to the propagation of the substrate surface wave modes. If your finite-sized array is very large and you cannot afford a straightforward full-wave MoM simulation of it, you can alternatively model it as an infinite array represented by a periodic unit cell. In this case, you calculate the radiation pattern of the unit cell structure and use it as the &amp;amp;quot;Element Pattern&amp;amp;quot; in conjunction with the &amp;amp;quot;Array Factor&amp;amp;quot;. The periodic Green's functions, in this case, capture the inter-element coupling effects. What is missing from this picture is the finite edge effects and/or corner effects, if any.&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a gap or probe source, it acts like an infinite periodic phased array. All the periodic replicas of the unit cell structure are excited. You can even impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the gap or probe source. At the bottom of the '''Gap Source Dialog''' or '''Probe Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. You can enter desired values for '''Theta''' and '''Phi''' beam scan angles in degrees. The corresponding phase progressions are calculated and applied to the periodic Green's functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\Psi_x = -\frac{2\pi S_x}{\lambda_0} \sin\theta \cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\Psi_y = -\frac{2\pi S_y}{\lambda_0} \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you have to define a finite-sized array factor in the Radiation Pattern dialog. You do this in the '''Impose Array Factor''' section of this dialog. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of '''Element Spacing''' along the X and Y directions are automatically set equal to the value of '''Periodic Lattice Spacing''' along those directions. You have to set the '''Number of Elements''' along the X and Y directions, which are both equal to one initially, representing a single radiator. If you forget to define an array factor, the radiation pattern of the unit cell structure will be displayed, which does not show beam scanning.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM100.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the periodic scan angles in [[Planar Module]]'s Gap Source dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per9_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The 3D radiation pattern of a beam-steered periodic printed dipole array.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Periodic Structures Using Plane Waves ===&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a plane wave source, it acts as a periodic surface that reflects or transmits the incident wave. You can model frequency selective surfaces, electromagnetic band-gap structures and metamaterials in this way. EM.Cube calculates the reflection and transmission coefficients of periodic surfaces or planar structures. If you run a single plane wave simulation, the reflection and transmission coefficients are reported in the Output Window at the end of the simulation. Note that these periodic characteristics depend on the polarization of the incident plane wave. You set the polarization (TMz or TEz) in the '''Plane Wave Dialog''' when defining your excitation source. In this dialog you also set the values of the incident '''Theta''' and '''Phi''' angles.&lt;br /&gt;
&lt;br /&gt;
At the end of the planar MoM simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. As a result, you can run an adaptive sweep of periodic structures with a plane wave source just like projects with gap or probe sources. The reflection and transmission (R/T) coefficients can be plotted in EM.Grid on 2D graphs similar to the S parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
{{Note|In the absence of any finite traces or embedded objects in the project workspace, EM.Cube computes the reflection and transmission coefficients of the layered background structure of your project.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM102.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A periodic planar layered structure with slot traces excited by a normally incident plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Characterizing Periodic Surfaces Using Angular Sweeps ===&lt;br /&gt;
&lt;br /&gt;
The reflection and transmission characteristics of a period surface as functions of the incidence angle are often of great interest. For that purpose, you can run an angular sweep of your periodic structure, where you normally fix the &amp;amp;phi; angle and sweep the &amp;amp;theta; angle from 180 to 90 degrees for one-sided surfaces and from 180 to 0 degrees for two-sided surface. To run an angular sweep, open the [[Planar Module]]'s '''Simulation Run Dialog''' and select the '''Angular Sweep''' option from its '''Simulation Mode''' dropdown list. This enables the '''Settings''' button, which opens up the '''Angle Settings Dialog'''. First, you must choose either Theta or Phi as the '''Sweep Angle'''. Then you can set the '''Start''' and '''End''' values of the selected incidence angle as well as the '''Number of Samples'''. At the end of an angular sweep simulation, you can plot the reflection and transmission coefficients from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The reflection and transmission coefficients of the structure are saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM103.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Structures Using Adaptive Frequency Sweeps ===&lt;br /&gt;
&lt;br /&gt;
You learned earlier how to use EM.Cube's powerful, adaptive frequency sweep utility to study the frequency response of a planar structure. Adaptive frequency sweep uses rational function interpolation to generate smooth curves of the scattering parameters with a relatively small number of full-wave simulation runs in a progressive manner. Therefore, you need a port definition in your planar structure to be able to run an adaptive frequency sweep. This is clear in the case of an infinite periodic phased array, where your periodic unit cell structure must be excited using either a gap source or a probe source. You run an adaptive frequency sweep of an infinite periodic phased array in exactly the same way to do for regular, aperiodic, planar structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar Modules also allows you to run an adaptive frequency sweep of periodic surfaces excited by a plane wave source. In this case, the planar MoM engine calculates the reflection and transmission coefficients of the periodic surface. Note that you can conceptually consider a periodic surface as a two-port network, where Port 1 is the top half-space and Port 2 is the bottom half-space. In that case, the reflection coefficient R is equivalent to S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter, while the transmission coefficient T is equivalent to S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameter. This is, of course, the case when the periodic surface is illuminated by the plane wave source from the top half-space, corresponding to 90°&amp;amp;lt; &amp;amp;theta; = 180°. You can also illuminate the periodic surface by the plane wave source from the bottom half-space, corresponding to 0° = &amp;amp;theta; &amp;amp;lt; 90°. In this case, the reflection coefficient R and transmission coefficient T are equivalent to S&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;12&amp;lt;/sub&amp;gt; parameters, respectively. Having these interpretations in mind, EM.Cube enables the &amp;amp;quot;'''Adaptive Frequency Sweep'''&amp;amp;quot; option of the '''Frequency Settings Dialog''' when your planar structure has a periodic domain together with a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite-Sized Periodic Arrays Using NCCBF Technique ===&lt;br /&gt;
&lt;br /&gt;
Previously, you saw how the concept of &amp;amp;quot;Array Factor&amp;amp;quot; is used to approximate the far field radiation pattern of a finite-sized array of radiators. The total radiation pattern can be expressed as the product of the array factor and the &amp;amp;quot;Element Pattern&amp;amp;quot;. The array factor captures the topology of the array lattice and depends on the number of elements along the X and Y directions as well as the element spacing along those directions. As for the choice of element pattern, you saw two extreme cases. In the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; option, you compute the radiation pattern of a single stand-alone radiator and completely ignore any coupling effects from the neighboring elements. This option is readily available in the Radiation Pattern Dialog of the Far Field observable. In the &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; option, you analyze a periodic version of the radiating element with periods equal to the element spacing. The computed radiation pattern of the periodic unit cell in this case captures the coupling effects from an infinite number of elements.&lt;br /&gt;
&lt;br /&gt;
The array factor approach works well when the inter-element coupling is negligible or when the array contains a very large number of elements. However, finite edge and corner effects cannot be modeled accurately using a simple array factor. A full-wave approach is needed where all the elements are discretized properly, and their interactions are incorporated into the final solution. EM.Cube's Planar MoM simulation engine lets you analyze finite-sized antenna arrays in a rigorous, full-wave manner. As you saw earlier, you can even introduce a source array with arbitrary (amplitude and phase) weights and realize a complex, non-uniformly excited, finite-sized antenna array. Note that if the array contains a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; . N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; elements, and each radiating element involves a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; vectorial basis functions, the numerical solution of the problem will produce a system of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;linear equations. As an example, consider a rectangular patch antenna element that involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. Now consider a not-so-large, 8 × 8 array of these patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. The resulting linear system will have an enormous size of N = 30,720. Keep in mind that, unlike the sparse matrices of the Finite Element Method (FEM), MoM linear systems are dense by nature and typically ill-conditioned. The inversion of dense matrices of such sizes or larger takes a significant amount of computation time even if you use fast iterative solvers.&lt;br /&gt;
&lt;br /&gt;
EMAG Technologies Inc. has recently developed a novel technique, called '''Numerically Constructed Characteristic Basis Functions (NCCBF)''', which generates physics-based entire-domain basis functions for the elements of a finite-sized array. These &amp;amp;quot;sophisticated&amp;amp;quot; basis functions are linear combinations of the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; solutions and &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; solutions. Unlike the array factor method, which is a post-processing calculation of far-field data, the NCCBF method generate a full-wave MoM solution with entire-domain basis functions. Considering the same example of the patch antenna array discussed earlier, the NCCBF method generates a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 4 entire-domain basis functions on each patch element: an isolated X-directed solution, a periodic X-directed solution, an isolated Y-directed solution, and a periodic Y-directed solution. The same approach applies equally well to triangular RWG basis functions and is not limited to rectangular cells. As a result, the new MoM linear system has a dimension of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = (4)(64) = 256. In other words, the NCCBF method compresses the original MoM matrix of size N = 30,720 to one of significantly reduced size N = 256 (i.e. a compression factor of 120x).&lt;br /&gt;
&lt;br /&gt;
=== Running a NCCBF Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the current release of EM.Cube's [[Planar Module]], the NCCBF MoM solver works with any number of distinct, finite-sized arrays if they are excited with one of the following three source types:&lt;br /&gt;
&lt;br /&gt;
# Gap Sources&lt;br /&gt;
# Probe Sources&lt;br /&gt;
# Plane Wave Sources&lt;br /&gt;
&lt;br /&gt;
Note that you can have several coexisting finite arrays with different element spacings (or different periodicities). You can also have regular (aperiodic) objects coexisting with your collection of finite arrays. In that case, the NCCBF process will create entire-domain basis functions for the elements of the finite arrays, while the regular method of moments will apply to the aperiodic portions of your planar structure. This flexibility makes NCCBF a very versatile and powerful technique.&lt;br /&gt;
&lt;br /&gt;
There are a few rules that must be followed and observed when planning a NCCBF simulation. '''Each finite-sized array must be constructed using an EM.Cube &amp;amp;quot;Array Object&amp;amp;quot;. Additionally, each array object must stand alone in a dedicated trace or embedded object set of its own.''' In other words, if an array object belongs to a trace or embedded object set that contains other objects, it will be excluded from the NCCBF process and will get a regular MoM treatment. Keep in mind that [[Planar Module]] allows you to define different traces located at the same Z-plane, although the objects belonging to these separate traces cannot be connected to one another according to the planar meshing rules. Similarly, you can define two or more PEC via sets hosted by the same substrate layer. Therefore, if your planar structure contains finite arrays and aperiodic objects, you have to group them into separate traces or embedded object sets.&lt;br /&gt;
&lt;br /&gt;
To run an NCCBF simulation, open the '''Simulation Run Dialog''', and then open the'''Planar MoM Engine Settings Dialog'''. In the &amp;amp;quot;'''Finite Array Simulation'''&amp;amp;quot; section of the latter dialog, check the box labeled &amp;amp;quot;'''NCCBF Matrix Compression'''&amp;amp;quot;. This box is unchecked by default. Checking it enables the NCCBF Settings button. Click this button to open the NCCBF Settings Dialog. The dialog features a &amp;amp;quot;List of Unit Cells Used for NCCBF Matrix Compression&amp;amp;quot;. This list initially empty. To add unit cells to it, click the '''Add''' button of the dialog to open the &amp;amp;quot;'''Add Unit Cell Dialog'''&amp;amp;quot;. This dialog has two tables: Available Unit Cells on the left side and Associated Unit Cells on the right side. The left table shows a list of all the available, legitimate array objects in your project workspace. Remember that for an array object to be eligible for NCCBF compression, it has to stand alone on a dedicated trace or embedded object set, whichever applies. Select an array object from the left table and use the right arrow button (--&amp;amp;gt;) to move it to the right table to associate it with the new NCCBF unit cell. You can associate more than one array object with the same NCCBF unit cell. In this case, the parent elements of all the associated array objects collectively constitute the NCCBF unit cell. The NCCBF unit cell is the planar structure that is analyzed separately, first, as a stand-alone isolated element, and next, as a periodic unit cell, to generate the NCCBF entire-domain basis function solutions. It is therefore very important that the array objects be positioned carefully with respect to the origin of coordinated and relative to one another to form the correct NCCBF unit cell. Once you move one or more array object names to the &amp;amp;quot;Associated&amp;amp;quot; table on the right, you can move them back to the &amp;amp;quot;Available&amp;amp;quot; table on the left using the left arrow (&amp;amp;lt;--) button. You can also instruct EM.Cube to use only the isolated element solution by unchecking the box labeled &amp;amp;quot;'''Include Periodic Solution of Unit Cell'''&amp;amp;quot;. Once you are satisfied with the definition of your NCCBF unit cell, close the dialog to return to the NCCBF Settings dialog. Here you see the name of the newly added NCCBF unit cell in the list along with the Number of Solutions and the names of all the associated array objects for each NCCBF unit cell. You can modify each row using the '''Edit''' button or remove it from the list using the '''Delete''' button. Close the NCCBF Settings dialog to return to the Planar MoM Engine Settings dialog, and close the latter to return to the Simulation Run dialog, where you can now start the NCCBF simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM163.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar MoM's NCCBF Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM162.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Planar MoM's &amp;amp;quot;Add Unit Cell&amp;amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
=== Symmetries, Array Objects &amp;amp;amp; Composite Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] treats array objects in a special way. That is why you need to use array objects with certain rules for NCCBF simulations. In general, if the mesh of your planar structure involves a total of N vectorial basis functions, the MoM matrix will contain a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; elements. Instead of computing the entire N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; basis interactions, the Planar MoM simulation engine takes advantage of the inherent symmetry properties of the dyadic Green's functions and camputes the diagonal elements of the matrix and all the elements below the diagonal. This amounts to N.(N+1)/2 basis interactions. In many cases, the MoM matrix is symmetric, and the elements above the diagonal are simply mirror-image of the below-diagonal elements. In planar structures that involve both metal and slot traces, there will be sign reversals for some interactions.&lt;br /&gt;
&lt;br /&gt;
In many cases, especially in the areas that contain sizable numbers of rectangular mesh cells, the basis functions are naturally grouped into distinct sets that are called domains. As you saw earlier in the discussion of planar mesh generation, uniform domains with identical rectangular cells bring significant savings during the matrix fill process. Using the concept of domains renders the MoM matrix as a block matrix, whose blocks represent the interactions among the domains. The diagonal blocks therefore correspond to self-domain interactions. By a similar argument, if your planar structure is made up of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; domains, then a total of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) are computed. An EM.Cube array object consists of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical geometrical elements. If the array object belongs to a trace that has other objects in it, then by the planar mesh generator's rules, the elements of the array object are merged with the other objects on the same trace using the &amp;amp;quot;Union&amp;amp;quot; Boolean operation. If some array elements possibly have connections with other objects, such connections are taken care of in the meshing process. '''However, if an array object stands alone in a dedicated trace, then only the parent (first) element is meshed, and it mesh is copied and cloned for all the other elements of the array.''' This produces a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical domains of vectorial basis functions. A direct consequence of this is identification of only N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; unique domain-pair interactions or matrix blocks. In the absence of these symmetries, a total of at least N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) must be computed. To better illustrate such matrix fill savings, let us consider the previous, not-so-large, 8 × 8 array of patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. It was previously assumed that each rectangular patch antenna element involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. The numerical solution of this structure produces a linear system of total size N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 30,720. The total number of complex-valued elements of this matrix is 9.44E+08. This is the total number of highly sophisticated multi-dimensional integrals that you need to compute during a brute-force matrix fill process. For the sake of generality of the argument, here we ignore the huge additional savings that rectangular cells offer, and we assume that each unique domain-pair interaction involves N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 230,400 elements, except for the self-domain interaction which requires N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 115,440 integral computations. This amounts to a total of (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; -1) . N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 1.46E+07 integral computations, which is roughly N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;(64) times fewer and faster than a brute-force matrix fill process.&lt;br /&gt;
&lt;br /&gt;
To remedy the limitation that stand-alone array objects on dedicated traces cannot be connected to anything and therefore would severely limit the geometrical complexity of individual elements, EM.Cube allows you to build arrays of composite objects. A &amp;amp;quot;'''Composite Object'''&amp;amp;quot; in EM.Cube is a group of objects that are tied together only for the purpose of organization. As a result, the mesh of a composite object is the same as that of its constituent member objects (including any possible connections), had they not been grouped together. In a similar manner to simpler array objects, if a composite array stands alone in a dedicated trace or embedded object set, then only the parent composite object is meshed, and its mesh is copied and cloned for all the other composite elements of the array object. Furthermore, all the unique domain-pair interactions are identified during the matrix fill process, and lead to a major saving in computation time. '''Note that you can assign gap or probe sources to composite arrays in a similar way as you excite simpler array objects.''' If your planar structure involves a composite array, whose composite parent element has constituent members: Object1, Object2, ..., then the Gap Source dialog or Probe Source dialog will include the names of all the eligible constituent members (rectangle strips or PEC via objects) that can host the respective source types. '''Complex composite arrays hosting gap or probe source arrays or illuminated by plane wave sources are great candidates for NCCBF simulation.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM165.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Assigning gap sources to the elements of a composite array object.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Picasso</id>
		<title>EM.Picasso</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Picasso"/>
				<updated>2013-06-14T19:59:55Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Probe Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Picasso® is a versatile planar structure simulator for modeling and design of printed antennas, planar microwave circuits, and layered periodic structures. EM.Picasso's simulation engine is based on a 2.5-D full-wave Method of Moments (MoM) formulation that provides the ultimate modeling accuracy and computational speed for open-boundary multilayer structures. It can handle planar structures with arbitrary numbers of metal layouts, slot traces, vertical interconnects and lumped elements interspersed among different substrate layers. You can use EM.Picasso to model large finite-sized antenna arrays as well as infinite periodic structures such as frequency selective surfaces.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Picasso has been successfully used by numerous users around the globe in industry, academia and government. The new EM.Picasso 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has introduced far more powerful CAD utilities, greater geometrical variety, and a vast array of capabilities like parametric sweep, [[optimization]], data visualization and post-processing computations. The new foundation also facilitates import and export of many popular CAD formats and provides a seamless interface with our other simulation tools.&lt;br /&gt;
&lt;br /&gt;
== A Planar Method Of Moments Primer ==&lt;br /&gt;
&lt;br /&gt;
The Method of Moments (MoM) is a rigorous, full-wave numerical technique for solving open boundary electromagnetic problems. Using this technique, you can analyze electromagnetic radiation, scattering and wave propagation problems with relatively short computation times and modest computing resources. The method of moments is an integral equation technique; it solves the integral form of Maxwell’s equations as opposed to their differential forms that are used in the finite element or finite difference time domain methods.&lt;br /&gt;
&lt;br /&gt;
In a planar MoM simulation, the background structure is usually a layered planar structure that consists of one or more laterally infinite material layers. In EM.Cube’s [[Planar Module]], the layered structure is stacked along the Z axis. In other words, the dimensions of the layers are infinite along the X and Y axes. Metallic traces are placed at the boundaries between the substrate or superstrate layers. These are modeled by perfect electric conductor (PEC) traces or conductive sheet traces of finite thickness and finite conductivity. Some layers might be separated by infinite perfectly conducting ground planes. The two sides of a ground plane can be electromagnetically coupled through one or several slots or apertures. Such slots or apertures are modeled by magnetic currents and are realized and represented by perfectly magnetic conductor (PMC) traces. Furthermore, the metallic traces can be interconnected or connected to ground planes using embedded objects. Such objects can be used to model circuit vias, plated-through holes or dielectric inserts. These are modeled as volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
The currents in a planar MoM simulation are discretized as a collection of elementary currents with small finite spatial extents. These elementary currents are called basis functions and obviously have a vectorial nature. The total currents (solution of the problem) are summations of these elementary currents. The basis functions are well defined and easy to calculate; however, their amplitudes are initially unknown in a MoM problem. Through the planar MoM solution, you find these unknown amplitudes. Once the total currents are known, you can calculate the fields everywhere in the structure.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Green’s Functions ===&lt;br /&gt;
&lt;br /&gt;
The Green’s functions are the solutions of boundary value problems when they are excited by an elementary source. This is usually assumed to be an infinitesimally small vectorial point source. In order for Green’s functions to be computationally useful, they must have analytical closed forms like a mathematical expression, or one should be able to compute them using a recursive process. It turns out that only very few boundary value problems have closed-form Green’s functions. Planar layered structures with laterally infinite extents are one of those few cases, which can be represented by recursive dyadic Green's functions.&lt;br /&gt;
&lt;br /&gt;
In general, a structure may support both electric ('''J''') and magnetic ('''M''') currents. The total electric ('''E''') and magnetic ('''H''') fields can be expressed in terms of the electric and magnetic currents in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;E = E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;H = H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''GH&amp;lt;sub&amp;gt;M&amp;lt;/sub&amp;gt;''' are the dyadic Green’s functions for the electric and magnetic currents due to electric and magnetic current source, respectively, and '''E&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' and '''H&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' are the incident or impressed electric and magnetic fields, respectively. In these equations, '''r''' is the position vector of the observation point and '''r'''' is the position vector of the source point. V is the volume that contains all the sources and the volume integration is performed with respect to the primed coordinates. The incident or impressed fields provide the excitation of the structure. They may come from an incident plane wave or a gap source on a microstrip line, a short dipole, etc. The complexity of the Green’s functions depends on what is considered as the background structure. If you remove all the unknown currents from the structure, you are left with the background structure.&lt;br /&gt;
&lt;br /&gt;
=== Planar Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
To derive a system of integral equations, we enforce the boundary conditions on the integral definitions of the '''E''' and '''H''' fields as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_E(E) = L_E \bigg\{ E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_H(H) = L_H \bigg\{ H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM4(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' is the boundary value operator for the electric field and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' is the boundary value operator for the magnetic field. For example, '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E'''field vanish on perfect conductors:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = 0, \quad \mathbf{r} \in PEC &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM65.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E''' and '''H''' fields be continuous across an aperture in a perfect ground plane:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{E}^+ - \mathbf{E}^-) = 0 \\&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{H}^+ - \mathbf{H}^-) = 0&lt;br /&gt;
\end{cases} &lt;br /&gt;
\quad \Rightarrow \quad&lt;br /&gt;
\mathbf{M}^+(r) = \mathbf{M}^-(r), \quad r \in PMC&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM66(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the fact that the dyadic Green’s functions and the incident or impressed fields are all known, one can solve the above system of integral equations to find the unknown currents '''J''' and '''M'''.&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE's [[Planar Module|Planar module]], magnetic currents are always surface current with units of V/m. Electric currents, however, can be surface currents with units of A/m as in the case of metallic traces like microstrip lines, or they can be volume currents with units of A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; as in the case of perfectly conducting vias. Dielectric inserts are modeled as volume polarization currents that are related to the electric field '''E''' in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J}_p(r) = jk_0 Y_0(\varepsilon_r - \varepsilon_b)\mathbf{E}(r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant, &amp;lt;math&amp;gt;Y_0 = \tfrac{1}{Z_0} = \tfrac{1}{120\pi}&amp;lt;/math&amp;gt; is the free space intrinsic admittance, &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is the permittivity of the dielectric insert, and &amp;amp;epsilon;&amp;lt;sub&amp;gt;b&amp;lt;/sub&amp;gt; is the permittivity of its background layer. In a 2.5-D formulation, it is assumed that the volume currents have only a vertical component along the Z direction, and their circumferential components are negligible.&lt;br /&gt;
&lt;br /&gt;
=== Numerical Solution Of Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
The planar integral equations derived earlier can be solved numerically by discretizing the unknown currents using a proper meshing scheme. The original functional equations are reduced to discretized linear algebraic equations over elementary cells. The unknown quantities are found by solving this system of linear equations, and many other parameters can be computed thereafter. This method of numerical solution of integral equations is known as the Method of Moments (MoM). In this method, the unknown electric and magnetic currents are represented by expansions of basis functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;J(r) = \sum_{n=1}^N I_n^{(J)} f_n^{(J)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;M(r) = \sum_{k=1}^K V_k^{(M)} f_k^{(M)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_k^{(M)}&amp;lt;/math&amp;gt; are the generalized vector basis functions for the expansion of electric and magnetic currents, respectively, and &amp;lt;math&amp;gt;I_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;V_k^{(M)}&amp;lt;/math&amp;gt; are the unknown amplitudes of these basis functions, which have to be determined. Substituting these expansions into the integral equations generates a set of discretized integral equations, which can further be converted to a system of linear algebraic equations. This is accomplished by testing the discretized integral equations using the a set of test functions. In the method of moments, the Galerkin technique is typically used, which chooses the expansion basis functions as test functions. This leads to the following linear system:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
Z^{(EJ)} &amp;amp; T^{(EM)} \\&lt;br /&gt;
U^{(HJ)} &amp;amp; Y^{(HM)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
\cdot&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
I^{(J)} \\&lt;br /&gt;
V^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
=&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
V^{(E)} \\&lt;br /&gt;
I^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(EJ)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot &lt;br /&gt;
\iiint\limits_{V_j} dv' \overline{\overline{G}}_{EJ}(r|r') \cdot f_i^{(J)}(r')&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_i^{(E)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot E^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_i^{(H)} = \iiint\limits_{V_i} dv f_i^{(M)}(r) \cdot H^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similar expressions can be derived for the T&amp;lt;sup&amp;gt;(EM)&amp;lt;/sup&amp;gt;, U&amp;lt;sup&amp;gt;(HJ)&amp;lt;/sup&amp;gt; and Y&amp;lt;sup&amp;gt;(HM)&amp;lt;/sup&amp;gt;elements of the MoM matrix.&lt;br /&gt;
&lt;br /&gt;
=== Discretization Of Electric &amp;amp;amp; Magnetic Currents ===&lt;br /&gt;
&lt;br /&gt;
The right choice of the basis functions to represent the elementary currents is very important. It will determine the accuracy and computational efficiency of the resulting numerical solution. Rooftop basis functions are one of the most popular types of basis functions used in a variety of MoM formulations. The surface currents (whether electric or magnetic) are discretized using 2D rooftop basis functions shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image055_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Rooftop or RWG basis functions built over two rectangular, triangular or mixed cells.&lt;br /&gt;
&lt;br /&gt;
The rooftop basis functions are defined over two adjacent cells with a common edge of length. If the two cells are triangular, then the so-called RWG functions are obtained. It is also possible to define rooftop functions over two adjacent rectangular cells or two adjacent rectangular and triangular cells with a common edge. On a rectangular cell, the function is defined as having a (descending or ascending) linear profile in one direction and a constant profile in the other perpendicular direction.&lt;br /&gt;
&lt;br /&gt;
The volume polarization currents in 2.5-D MoM have a vertical direction along the Z-axis. These are discretized using prismatic basis functions that have either a rectangular or triangular base with a constant profile along the Z-axis.&lt;br /&gt;
&lt;br /&gt;
[[File:image065_tn.png]][[File:image066_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Prismatic basis functions built over single triangular and rectangular cells.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Planar Structure ==&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM14.png|thumb|350px|A typical planar layered structure]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] is intended for constructing and modeling planar layered structures. By a planar structure we mean one that contains a background substrate of laterally infinite extents, made up of one or more material layers all stacked up vertically along the Z axis. Objects of finite size are then interspersed among these substrate layers. This is somehow different than EM.Cube's other computational modules, which are geared for handling arbitrary 3D structures.&lt;br /&gt;
&lt;br /&gt;
In [[Planar Module]], the background structure, called &amp;amp;quot;'''Layer Stack-up'''&amp;amp;quot;, may involve one or more material layers of infinite extents along the X and Y axes but of finite thickness along the Z axis. When you start a new project, the background structure has a single vacuum layer. The layer stack-up is always terminated from the top and bottom by two infinite half-spaces. The terminating half-spaces might be the free space, or a perfect conductor (PEC ground), or any material medium. Most planar structures used in RF and microwave applications such as microstrip-based components have a PEC ground at their bottom. EM.Cube's default stack-up has a vacuum top half-space and a PEC bottom half-space. Some structures like stripline components require two bounding PEC grounds at both top and bottom.&lt;br /&gt;
&lt;br /&gt;
The finite-sized objects of a planar structure may include metal traces, slots and apertures, vertical vias and interconnects, or dielectric inserts including air voids inside the substrate layers. Metal traces are modeled as electric surface currents. These are planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on metal (PEC) traces and placed at the boundary (interface) plane between two substrate layers. Slots and apertures are modeled as magnetic surface currents on the surface of an infinite PEC plane and provide electromagnetic coupling between its top and bottom sides. These, too, are constructed using planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on slot (PMC) traces and placed at the boundary (interface) plane between two substrate layers. EM.Cube's [[Planar Module]] also allows prismatic objects that can be modeled by electric volume currents. These include vertical vias and dielectric inserts, and are called embedded object sets. [[Planar Module|Planar module]] does not allow construction of 3D CAD objects. Instead, you draw the cross section of prismatic objects as planar [[Surface Objects|surface objects]] parallel to the XY plane. EM.Cube then automatically extrudes these cross sections and constructs and displays 3D prisms over them. The prisms extend all the way across the thickness of the host substrate layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:PMOM14.png]]&lt;br /&gt;
Figure 1: A typical planar layered structure.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Defining Layer Stack-Up ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube’s [[Planar Module]], there is always a default background structure that consists of a finite vacuum layer sandwiched between a vacuum top half-space and a PEC bottom half-space. Every time you enter the [[Planar Module|Planar module]], the '''Stack-up Settings Dialog''' opens up. This is where you define the entire background structure. Once you close this dialog, you can open it again by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Layer Stack-up Settings...''' from the contextual menu. Or alternatively, you can select the menu item '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Layer Stack-up Settings...'''&lt;br /&gt;
&lt;br /&gt;
The Stack-up Settings dialog has two tabs: '''Layer Hierarchy''' and '''Embedded Sets'''. The Layer Hierarchy tab has a table that shows all the background layers in hierarchical order from the top half-space to the bottom half-space. It also lists the material label of each layer, Z-coordinate of the bottom of each layer, its thickness (in project units) and material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). There is also a column that lists the names of embedded object sets inside each substrate layer, if any.&lt;br /&gt;
&lt;br /&gt;
You can add new layers to your project's stack-up or delete its layers, or move layers up or down and thus change the layer hierarchy. To add a new background layer, click the arrow symbol on the '''Insert...'''button at the bottom of the dialog and select '''Substrate Layer''' from the button's dropdown list. A new dialog opens up where you can enter a label for the new layer and values for its material properties and thickness in project units.&lt;br /&gt;
&lt;br /&gt;
You can delete a layer by selecting its row in the table and clicking the '''Delete''' button. To move a layer up and down, click on its row to select and highlight it. Then click either the '''Move Up''' or '''Move Down''' buttons consecutively to move the selected layer to the desired location in the stack-up. Note that you cannot delete or move the top or bottom half-spaces.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM8(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Editing Substrate Layers ===&lt;br /&gt;
After creating a substrate layer, you can always edit its properties in the Layer Stack-up Settings dialog. Click on any layer's row in the table to select and highlight it and then click the '''Edit''' button. The substrate layer dialog opens up, where you can change the layer's label and assigned color. In the material properties section of the dialog, you can change the name of the material and its properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). To define electrical losses, you can either assign a value for electric conductivity (s), or alternatively, define a loss tangent for the material. In the latter case, check the box labeled &amp;amp;quot;'''Specify Loss Tangent'''&amp;amp;quot; and enter a value for it. In this case, the electric conductivity field becomes greyed out and reflects the corresponding s value at the center frequency of the project.&lt;br /&gt;
&lt;br /&gt;
You can also set the thickness of the substrate layer in the project units. Note that you cannot change the thickness of the top and bottom half-spaces. You can only change their material properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM9.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Substrate Layer dialog.&lt;br /&gt;
&lt;br /&gt;
You can also use EM.Cube's Material List to define the material properties of a substrate layer. In the Substrate Layer Dialog, click the '''Material''' button to open the '''Material List'''. In the Material List Dialog, pick any material or type the first letter of a material to highlight it. Then click the '''OK''' button or simply hit the '''Enter''' key of your keyboard to close the list and return to the substrate layer dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM10.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Materials dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Object Types ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] groups objects by their material and electromagnetic properties. Each object group shares the same color and same position in the layer stack-up. All the planar objects belonging to the same trace are located on the same substrate layer boundary. All the prismatic objects belonging to the same embedded set lie inside the same substrate layer and have the same material composition. Theoretically speaking, all the objects belonging to a group are governed by the same boundary conditions. EM.Cube’s [[Planar Module]] currently provides the following types of objects for building a planar layered structure:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC) Traces:''' These represent infinitesimally thin metallic objects that are deposited or metallized on or between substrate layers. PEC objects are modeled by surface electric currents that satisfy the PEC boundary condition.&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC) Traces:''' These are used to model slots and apertures in infinite PEC ground planes. PMC objects are always assumed to lie on an infinite horizontal PEC ground plane with zero thickness. They are modeled by surface magnetic currents, enforcing the continuity of tangential fields across the slots or apertures.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metals. They have a finite conductivity and a very small thickness. A surface impedance boundary condition is enforced on the surface of such traces.&lt;br /&gt;
# '''PEC Via Sets:''' These are metallic objects such as shorting pins, interconnect vias, plated-through holes, etc. that are grouped together as prismatic object sets. The embedded objects are modeled as vertical volume conduction currents.&lt;br /&gt;
# '''Embedded Dielectric Sets:''' These are prismatic dielectric objects inserted inside a substrate layer. You can define a finite permittivity and conductivity for such objects, but their height is always the same as the height of their host layer. The embedded dielectric objects are modeled as vertical volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
=== Defining Traces &amp;amp;amp; Object Sets ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]], the project workspace looks empty, and there are no finite objects in it. However, a default background structure is always assumed to exist by default. Objects are defined as part of traces or embedded sets. Once defined, you can see a list of project objects in the '''Physical Structure''' section of the Navigation Tree. Traces and object sets can be defined either from Layer Stack-up Settings dialog or from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
In the '''Layer Stack-up Settings''' dialog, you can add a new trace to the stack-up by clicking the arrow symbol on the '''Insert''' button of the dialog. You have to choose from '''Metal (PEC)''', '''Slot (PMC)''' or '''Conductive Sheet''' options. A respective dialog opens up, where you can enter a label and assign a color other than default ones. Once a new trace is defined, it is added, by default, to the top of the stack-up table underneath the top half-space. From here, you can move the trace down to the desired location on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Every time you define a new trace, it is also added under the respective category in the Navigation Tree. Alternatively, you can define a new trace from the Navigation Tree by right clicking on one of the trace type names and selecting '''Insert New PEC Trace...'''or '''Insert New PMC Trace...'''or '''Insert New Conductive Sheet Trace...'''A respective dialog opens up for setting the trace properties. Once you close this dialog, it takes you directly to the Layer Stack-up Settings dialog so that you can set the right position of the trace on the stack-up.&lt;br /&gt;
&lt;br /&gt;
=== Drawing Planar Objects ===&lt;br /&gt;
&lt;br /&gt;
As soon as you start drawing geometrical objects in the project workspace, the Physical Structure section of the Navigation Tree gets populated. The names of traces are added under their respective trace type category, and the names of objects appear under their respective trace group. At any time, one and only one trace is active in the project workspace. An active trace is where all the new objects you draw belong to. When you define a new trace, it is set as active and you can immediately start drawing new objects on that trace. You can also set any trace active at any time by right clicking its name on the Navigation Tree and selecting '''Activate''' from the contextual menu. The name of the active trace is always displayed in bold letter in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM13.png]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] has a special feature that makes construction of planar structures quite easy and straightforward. '''The active work plane of the project workspace is always set at the plane of the active trace.''' In EM.Cube's other modules, all objects are drawn in the XY plane (z = 0) by default. In [[Planar Module]], all new objects are drawn on a horizontal plane that is located at the Z-coordinate of the currently active trace. As you change the active trace or add a new trace, you will also change the active work plane.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Metallic Traces ===&lt;br /&gt;
&lt;br /&gt;
A trace is a group of finite-sized planar objects that have the same conductive properties and same Z-coordinate. In other words, they are located on the same horizontal plane, or at the same vertical level on the layer stack-up. You can define two types of metallic traces in the [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
# '''PEC Traces:''' These represent perfect conductor objects that have zero thickness and no editable material properties.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metal objects. They have a very small finite thickness t and a finite conductivity s.&lt;br /&gt;
&lt;br /&gt;
The conductive sheet traces are modeled using the surface impedance boundary condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = -Z_s\mathbf{J_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM17(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;Z_s&amp;lt;/math&amp;gt; is the surface impedance of the conductive sheet. If the thickness of the sheet is greater than the skin depth of the metal at the project frequency, then the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1+j}{\sigma \delta}, \quad \delta = \sqrt{\dfrac{2}{k_0 Z_0 \sigma}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM18.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the thickness t of the sheet is less than the skin depth, then the conductive sheet transition boundary condition is used instead, and the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1}{[j k_0 Y_0 (\varepsilon_r - 1) + \sigma] \tau} = \dfrac{1}{\sigma_{tot} \tau} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM19(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]] with no traces defined, if you simply draw a new object, a default PEC trace is created and added to the Navigation Tree to hold that object. Alternatively, you can define your own new traces from the Layer Stack-up Settings dialog or directly from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
NOTE: Two or more PEC and conductive sheet traces can coexist at the same Z-coordinate. In this case, the Layer Stack-up Settings dialog shows these trace rows stacked up on top of each other between their common top and bottom substrate layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM15.png]] [[File:PMOM16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PEC and Conductive Sheet Trace dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Slot Traces ===&lt;br /&gt;
&lt;br /&gt;
Slots and apertures are cut-out and removed metal in an infinite perfectly conducting (PEC) ground plane. When a slot is excited, tangential electric fields are formed on the aperture, which can be modeled as finite magnetic surface currents confined to the area of the slot. Therefore, instead of modeling the electric surface currents on the PEC ground around the slot, one can alternatively model the finite-extent magnetic surface currents on PMC traces. In EM.Cube's [[Planar Module]], you define slot objects under PMC traces. A PMC trace at a certain Z-plane implies the presence of an infinite PEC plane at that Z-coordinate. Therefore, you do not need to define an additional PEC plane at that location on the layer stack-up. The slot (PMC) objects provide the electromagnetic coupling between the two sides of this infinite ground plane. By the same token, you cannot place a PEC trace and a PMC trace at the same Z-level, as the latter's ground will short the former. However, you can define two or more PMC traces at the same Z-plane. In this case, all the slot objects lie on the same infinite PEC ground plane. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM20.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PMC Trace dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Embedded Object Sets ===&lt;br /&gt;
&lt;br /&gt;
Embedded object sets represent short material insertions inside substrate layers. They can be metal or dielectric. Metallic embedded objects can be used to model vias, plated-through holes, shorting pins and interconnects. These are called PEC via sets. Embedded dielectric objects can be used to model air voids, thin films and material inserts in metamaterial structures. Embedded magnetic object are not currently supported by EM.Cube’s [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Embedded objects can be defined either from the Layer Stack-up Settings dialog or directly from the Navigation Tree. In the former case, open the &amp;amp;quot;Embedded Sets&amp;amp;quot; tab of the stack-up dialog. This tab has a table that lists all the embedded object sets along with their material type, the host substrate layer, the host material and their height. &lt;br /&gt;
&lt;br /&gt;
{{Note|The height of an embedded object is always identical to the thickness of its host substrate layer.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up dialog showing the Embedded Sets tab.&lt;br /&gt;
&lt;br /&gt;
To add a new object set, click the arrow symbol on the '''Insert''' button of the dialog and select one of the two options, '''PEC Via Set''' or '''Embedded Dielectric Set''', from the dropdown list. This opens up a new dialog where first you have to set the host layer of the new object set. A dropdown list labeled &amp;amp;quot;'''Host Layer'''&amp;amp;quot; gives a list of all the available finite substrate layers. You can also set the properties of the embedded object set, including its label, color and material properties. Keep in mind that you cannot control the height of embedded objects. Moreover, you cannot assign material properties to PEC via sets, while you can set values for the '''Permittivity'''(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity'''(&amp;amp;sigma;) of embedded dielectric sets. Vacuum is the default material choice. You may use EM.Cube's Material List for this purpose, which can be opened up by clicking the '''Material''' button. Once embedded object sets are added to the Embedded Sets table, you can edit their properties at any time by selecting their row and clicking the '''Edit''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM21.png]] [[File:PMOM22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The [[Planar Module]]'s PEC Via Set and Embedded Dielectric Set dialogs.&lt;br /&gt;
&lt;br /&gt;
To define an embedded set from the Navigation Tree, right click on the '''Embedded Object Sets''' item in the '''Physical Structure''' section of the Navigation Tree and select either '''Insert New PEC Via Set...''' or '''Insert New Embedded Dielectric Set...''' The respective New Embedded Object Set dialog opens up, where you set the properties of the new object set. As soon as you close this dialog, it takes you to the Layer Stack-up Settings dialog, where you can examine the location of the new object set on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
After a new embedded object set has been defined and added to the Navigation Tree, it becomes the active trace. You are now ready to create geometrical objects in the new active trace. Remember that [[Planar Module]] does not allow you to draw 3D objects. The solid object buttons in the '''Object Toolbar''' are disabled to prevent you from doing so. Instead, you draw planar [[Surface Objects|surface objects]] as the cross section of embedded sets. EM.Cube extends these planar objects across their host layer automatically and displays them as wire-frame, 3D extruded objects. Extrusion of embedded object sets happen after meshing and before every simulation. You can enforce this extrusion manually by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Update Planar Structure...''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Rules &amp;amp;amp; Limitations ===&lt;br /&gt;
&lt;br /&gt;
# Terminating PEC ground planes at the top or bottom of a planar structure are defined as PEC top or bottom half-spaces, respectively.&lt;br /&gt;
# A PEC ground plane placed in the middle of a substrate stack-up requires at least one slot object to provide electromagnetic coupling between its top and bottom sides. In this case, a PMC trace is rather introduced at the given Z-plane, which implies the presence of an infinite PEC ground although it is not explicitly indicated in the Navigation Tree.&lt;br /&gt;
# Metallic and slot traces cannot coexist on the same Z-plane. However, you can stack up multiple PEC and conductive sheet traces at the same Z-coordinate. Similarly, multiple PMC traces can be placed at the same Z-coordinate.&lt;br /&gt;
# Metallic and slot traces are strictly defined at the interface planes between substrate layers. To define a suspended metallic trace in a substrate layer (as in the case of the center conductor of a stripline), you must split the dielectric layer into two thinner layers and place your PEC trace at the interface between them.&lt;br /&gt;
# The current version of the Planar MoM simulation engine is based on a 2.5-D MoM formulation. Only vertical volume currents and no circumferential components are allowed on embedded objects. The 2.5-D assumption holds very well in two cases: (a) when embedded objects are very thin with a very small cross section (with lateral dimensions less than 2-5% of the material wavelength) or (b) when embedded objects are very short and sandwiched between two closely spaced PEC traces or grounds from the top and bottom.&lt;br /&gt;
# The current release of EM.Cube allows any number of PEC via sets collocated in the same substrate layer. However, you can define only one embedded dielectric object set per substrate layer, and no vias sets collocated in the same layer. Note that the single set can host an arbitrary number of embedded dielectric objects of the same material properties.&lt;br /&gt;
&lt;br /&gt;
=== Managing Objects, Traces &amp;amp;amp; Sets ===&lt;br /&gt;
&lt;br /&gt;
You can manage your project's layer hierarchy from the Layer Stack-up Settings dialog. You can add, delete and move around substrate layers, metallic and slot traces and embedded object sets. Metallic and slot traces can move among the interface planes between neighboring substrate layers. Embedded object sets including PEC vias and finite dielectric objects can move from substrate layer into another. When you delete a trace from the Layer Stack-up Settings dialog, all of its objects are deleted from the project workspace, too. You can also delete metallic and slot traces or embedded object sets from the Navigation Tree. To do so, right click on the name of the trace or object set in the Navigation Tree and select '''Delete''' from the contextual menu. You can also delete all the traces or object sets of the same type from the contextual menu of the respective type category in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
For better visualization of your planar structure, EM.Cube displays a virtual domain in a default orange color to represent part of the infinite background structure. The size of this virtual domain is a quarter wavelength offset from the largest bounding box that encompasses all the finite objects in the project workspace. You can change the size of the virtual domain or its display color from the Domain Settings dialog, which you can access either by clicking the '''Computational Domain''' [[File:domain_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Domain Settings...''' from the Simulate Menu or by right clicking the '''Virtual Domain''' item of the Navigation Tree and selecting '''Domain Settings...''' from the contextual menu, or using the keyboard shortcut '''Ctrl+A'''. But keep in mind that the virtual domain is only for visualization purpose and does not affect the MoM simulation. The virtual domain also shows the substrate layers in translucent colors. As you change the colors assigned to the substrate layers, you will see a multilayer virtual domain box surrounding your project structure.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_phys5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Virtual Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the last defined trace or embedded object set is active. You can activate any trace or embedded object set at any time for drawing new objects. You can move one or more selected objects from any trace or embedded object set to another group of the same type or of different type. First select an object in the project workspace or in the Navigation Tree. Then, right click on the highlighted selection and select '''Move To &amp;amp;gt;''' from the contextual menu. This opens another sub-menu containing '''Planar''' and a list of all the other EM.Cube modules that have already defined object groups. Select '''Planar''' or any other available module, and yet another sub-menu opens up with a list of all the available traces and embedded object sets already defined in your project. Select the desired group, and all the selected objects will move to that group. When selecting multiple objects from the Navigation Tree, make sure that you hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting a group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Discretizing Planar Structures ==&lt;br /&gt;
&lt;br /&gt;
=== The Planar MoM Mesh ===&lt;br /&gt;
&lt;br /&gt;
The method of moments (MoM) discretizes all the finite-sized objects of a planar structure (excluding the background structure) into a set of elementary cells. The planar integral equations are then solved approximately on these elementary cells. As this method does not require a discretization of the entire computational domain, it is often computationally much more efficient than differential-based techniques like FEM or FDTD, which mesh the whole domain. The accuracy of the MoM numerical solution depends greatly on the quality of the generated mesh. The mesh density gives a measure of how electrically small these elementary cells are. Low mesh resolutions compromise the accuracy of the numerical solution. On the other hand, very high mesh densities may lead to numerical instability of the method of moments. As a rule of thumb, a mesh density of about 20-30 cells per effective wavelength usually yields acceptable results. Yet, for structures with lots of fine geometrical details or for highly resonant structures, higher mesh densities may be required. Also, the particular simulation data that you seek in a project will also influence your choice of mesh resolution. For example, far field characteristics like radiation patterns are less sensitive to the mesh density than field distributions on a structure with a highly irregular shape and a rugged boundary.&lt;br /&gt;
&lt;br /&gt;
It is well known that any planar geometry with any degree of complexity can be reasonably discretized using a surface triangular mesh. EM.Cube's [[Planar Module]] provides a versatile triangular mesh generator for this purpose. This generates a regular mesh, in which most of the triangular cells have almost equal areas. The uniformity or regularity of mesh is an important factor in warranting a stable numerical solution. A highly incongruous mesh may even produce completely erroneous results. EM.Cube's [[Planar Module]] also offers another mesh generator that creates a &amp;amp;quot;Hubrid&amp;amp;quot; planar mesh combining triangular and rectangular cells. Although triangular cells are more versatile than rectangular cells in adapting to arbitrary geometries, many practical planar structures contain a large number of rectangular parts like patch antennas, microstrip lines and components, etc.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM32.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar hybrid and triangular meshes for rectangular patches.&lt;br /&gt;
&lt;br /&gt;
=== The Rectangular Mesh Advantage ===&lt;br /&gt;
&lt;br /&gt;
Rectangular cells offer a major advantage over triangular cells for numerical MoM simulation of planar structures. This is due to the fact that the dyadic Green's functions of planar layered background structures are space-invariant on the transverse plane. Recall that the elements of the moment matrix are given by the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(\mu \nu)} = \iiint_{V_i} d\nu f_i^{(\mu)}(r) \cdot \iiint_{V_j}d\nu ' \overline{\overline{G}}_{\mu \nu}(r|r') \cdot f_j^{(v)}(r') &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM24(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the spatial-domain dyadic Green's functions are a function of the observation and source coordinates, '''r'''and '''r' '''. The MoM matrix elements can indeed be interpreted as interactions between two elementary basis functions '''f&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;(r)''' and '''f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;(r')''' on that particular background structure. The spatial-domain dyadic Green's functions can themselves be expressed in terms of the spectral-domain dyadic Green's functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\overline{\overline{G}}_{\mu \nu}(r|r') = \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{\overline{\overline{G}}}_{\mu \nu} (k_p, z|z') e^{-j[k_x(x-x')+k_y(y-y')]} \, dk_x \, dk_y ,&lt;br /&gt;
\quad {k_p}^2 = {k_x}^2 + {k_y}^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM26.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the doubly infinite integration is performed with respect to the spectral [[variables]] k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;. As can be seen from the above expression, the spatial-domain dyadic Green's functions are functions of z, z', as well as (x-x') and (y-y'). The MoM matrix elements can now be transformed into the spectral domain as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
Z_{ij}^{(\mu \nu)} = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{f}_i^{(\mu)} (k_x, k_y) \cdot \tilde{\overline{\overline{G}}}_{\mu \nu} (k_{\rho}, z|z') \cdot&lt;br /&gt;
\tilde{f}_j^{(\nu)} (k_x, k_y) \, dk_x \, dk_y&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM27.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the tilde symbol signifies the Fourier transform of a function defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\tilde{f}(k_x, k_y) = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
f(x,y) e^{j(k_x x + k_y y)} \, dx \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM28(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rectangular cells have simple Fourier transforms. The rooftop basis functions are triangular functions in the direction of current flow and constant in the perpendicular direction. This means that their Fourier transform is a product of a sinc-squared function along one spectral direction and a sinc function along the other. You can see from the figure below that if one deals with a rectangular mesh of identical cells (all equal and parallel), then the interactions among the rooftop basis functions become a functions of the index differences and not the absolute indices:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{(i,k)|(j,l)} = Z \Big\langle f_{i,k}(x,y)| f_{j,l}(x', y') \Big\rangle = Z_{(i-j)|(k-l)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM29.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equation, the vectorial rooftop basis functions have explicit, double indices: i and k along the local X and Y directions, respectively, for the test (observation) basis function, and j and l along the local X and Y directions, respectively, for the expansion (source) basis function. Thus, uniform rectangular cells, i.e. structured rectangular cells of identical size aligned in the same direction, can speed up the planar MoM simulation significantly due to these symmetry and the invariance properties. For example, all the self-interactions are identical regardless of the location of a rooftop basis function. This reduces the matrix fill process for a total of N rooftop basis functions from an N2 process to one of order N.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Pairs of rooftop basis functions that have identical MoM interactions.&lt;br /&gt;
&lt;br /&gt;
=== Generating A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
The planar MoM mesh generation process involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties&lt;br /&gt;
# Creating and viewing the mesh&lt;br /&gt;
# Verifying the mesh for integrity&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] offers two mesh generation algorithms for discretizing planar structures: Hybrid and Triangular. The hybrid mesh consists of both rectangular and triangular cells. The hybrid mesh generator creates a kind of “object-centric” mesh that depends on the geometry of each object. It tries to discretize rectangular objects with rectangular cells as much as possible. In certain connection areas, a few triangular cells might be inserted to provide the mesh transition for current continuity. All the non-rectangular objects (circular, polygonal, etc.) are discretized using triangular cells. The triangular mesh generator, on the other hand, discretizes the planar objects with all triangular cells regardless of their shape. The only exceptions are feed lines that contain gap sources or lumped elements, which are always meshed with rectangular cells.&lt;br /&gt;
&lt;br /&gt;
You can generate and view a planar mesh by clicking the '''Show Mesh''' [[File:mesh_tool.png]] button of the '''Simulate Toolbar''' or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' or using the keyboard shortcut '''Ctrl+M'''. When the mesh of the planar structure is displayed in EM.Cube’s project workspace, its &amp;amp;quot;Mesh View&amp;amp;quot; mode is enabled. In this mode you can perform view operations like rotate view, pan or zoom, but you cannot create new objects or edit existing ones. To exit the mesh view mode, press the keyboard's '''Esc Key''' or click the '''Show Mesh''' [[File:mesh_tool.png]] button once again.&lt;br /&gt;
&lt;br /&gt;
Once a mesh is generated, it stays in the memory until the structure is changed or the mesh density or other settings are modified. Every time you view mesh, the one in the memory is displayed. You can force EM.Cube to create a new mesh from the ground up by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''Planar Mesh''' item in the '''Discretization''' section of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Mesh Density ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, generates a hybrid mesh of your planar structure with a mesh density of 20 cells per effective wavelength. It is important to understand the concept of mesh density (either hybrid or triangular) as used by [[Planar Module]]. It gives a measure of the number of cells per effective wavelength that are placed in various regions of your planar structure. The higher the mesh density, the more cells are created on the geometrical objects. Keep in mind that only the finite-sized objects of your structure are discretized. No mesh is generated for the substrate layers of your background structure. The free-space wavelength is defined as &amp;lt;math&amp;gt;\lambda_0 = \tfrac{2\pi f}{c}&amp;lt;/math&amp;gt;, where f is the center frequency of your project and c is the speed of light in the free space. The effective wavelength is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where e&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity.&lt;br /&gt;
&lt;br /&gt;
The effective permittivity is defined differently for different types of traces and embedded object sets. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivity of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivity of the two substrate layers just above and below the metallic trace. These definitions of effective permittivity are consistent with the effective propagation constant of transmission lines realized on such trace types. For embedded object sets, the effective permittivity is defined as the largest of the permittivities of all the substrate layers and embedded dielectric sets. In all cases, for the purpose of calculating the effective wavelength, only the real part of the permittivities are considered. The reason for using an effective wavelength so defined for determination of mesh resolution is to make sure that enough cells are placed in areas that might feature higher field concentration.&lt;br /&gt;
&lt;br /&gt;
Due to the different definitions of effective wavelength in different parts of your planar structure, you will see different mesh resolutions. For example, if you structure has several substrate layers with different permittivities, the mesh of metal traces on layers with a higher permittivity value will feature more cells than the mesh of metal traces on layers with a lower permittivity value even though the mesh density value is the same for the whole structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM30.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of two rectangular patches at two different planes. The lower substrate layer has a higher permittivity.&lt;br /&gt;
&lt;br /&gt;
=== Customizing A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the planar mesh including the mesh type and density from the planar Mesh Settings Dialog. You can also change these settings while in the mesh view mode, and you can update the changes to view the new mesh. To open the mesh settings dialog, either click the '''Mesh Settings''' [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Mesh Settings...''', or by right click on the '''Planar 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 mesh algorithm from the dropdown list labeled '''Mesh Type''', which offers two options: '''Hybrid''' and '''Triangular'''. You can also enter a different value for '''Mesh Density''' in cells per effective wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;). For each value of mesh density, the dialog also shows the average &amp;amp;quot;Cell Edge Length&amp;amp;quot; in the free space. To get an idea of the size of mesh cells on the traces and embedded object sets, divide this edge length by the square root of the effective permittivity a particular trace or set. Click the '''Apply''' button to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM31.png]]&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Of Connected Trace Objects ===&lt;br /&gt;
&lt;br /&gt;
Using the generated mesh of a planar structure, EM.Cube creates a set of vectorial basis functions that are passed to the input file of the Planar MoM simulation engine. This engine requires edge-based basis functions. The common edges between adjacent cells are used to define edge-based rooftop or RWG basis functions. These elementary basis functions indeed provide the current flow and warrant the continuity among the mesh cells. Therefore, when two objects overlap or share a common edge, the connection between them must be translated into &amp;amp;quot;bridge&amp;amp;quot; basis functions, which carry the information about current flow to the simulation engine.&lt;br /&gt;
&lt;br /&gt;
'''The most important rule of object connections in EM.Cube's [[Planar Module]] is that only objects belonging to the same trace can be connected to one another.''' For example, if two objects reside on the same Z-plane and geometrically have a common edge which you can clearly see in the project workspace, but organizationally they belong to two different metal traces, then the bridge basis functions will not be generated between them, and the simulation engine will see them disconnected. If two objects belong to the same trace and have a common overlap area, EM.Cube first merges the two objects using the &amp;amp;quot;Boolean Union&amp;amp;quot; operation and converts them into a single object for the purpose of meshing. The mesh of &amp;amp;quot;unioned&amp;amp;quot; areas is usually made up of triangular cells. If two objects reside on the same Z-plane and geometrically overlap with each other but organizationally belong to two different trace groups, incongruous, overlapped cells will be generated that will either blow up the linear system or produce completely wrong simulation results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM36.png|250px]] [[File:PMOM38.png|250px]] [[File:PMOM37.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Two overlapping planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
When two planar objects belonging to the same trace are connected via a common edge, it is critical to generate a consistent mesh at the connection area and properly transition and merge the meshes of the individual objects. EM.Cube's triangular planar mesh generator simply &amp;amp;quot;unions&amp;amp;quot; the two objects and generates a connected mesh. EM.Cube's hybrid planar mesh generator, however, behave differently when it comes to the connection between rectangular objects. The rule in this case is the following:&lt;br /&gt;
&lt;br /&gt;
* If the two connected rectangular objects have the same side dimensions along the common linear edge with perfect alignment, a rectangular bridge mesh is produced.&lt;br /&gt;
* If the two connected rectangular objects have different side dimensions along the common linear edge or have edge offset, a set of triangular cells is generated along the edge of the object with the large side.&lt;br /&gt;
* Rectangular objects that contain gap source or lumped elements, always have a rectangular mesh around the gap area.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM33.png|250px]] [[File:PMOM35.png|250px]] [[File:PMOM34.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edge-connected rectangular planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
=== Mesh of Embedded Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] models embedded objects as vertical volume currents. The vectorial basis functions in this case are Z-directed prisms as opposed to rooftop basis functions. If an embedded object is located under or above a metallic trace or connected from both top and bottom, it is critical to create mesh continuity between the embedded object and its connected metallic traces. In other words, the generated mesh must ensure current continuity between the vertical volume currents and horizontal surface currents. EM.Cube’s planar mesh generator automatically handles situations of this kind and generates all the required connection meshes.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that EM.Cube’s Planar MoM engine uses a 2.5-D approximation, whereby only vertical volume currents are assumed inside embedded objects. When the height of an embedded object is small (as should typically be under the 2.5-D assumption), one prismatic cell is placed across the object along the Z-axis. Long PEC vias with a very small radius do also satisfy the 2.5-D assumption. In this case, the long via objects are discretized further along the Z direction and generate multiple stacked cells. Several prismatic cells along the Z-axis may increase the simulation time drastically. This is due to the fact that the host layer is effectively subdivided into a number of sub-layers and the stacked cells are treated as stacked vias embedded inside these sub-layers. As a result, the simulation engine needs to compute all the dyadic Green’s functions accounting for the interactions between all such sub-layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM39.png|400px]] [[File:PMOM40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of a vertical PEC via connecting two horizontal metallic strips. The shorter via has one prismatic cell along the Z direction, while the longer via is discretized into several stacked cells.&lt;br /&gt;
&lt;br /&gt;
=== Refining Mesh At Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
It is very important to apply the right mesh density to capture all the geometrical details of your planar structure. This is especially true for &amp;amp;quot;field discontinuity&amp;amp;quot; regions such as junction areas between objects of different side dimensions, where larger current concentrations are usually observed at sharp corners, or at the connection areas between metallic traces and PEC vias, as well as the areas around gap sources and lumped elements, as these create voltage or current discontinuities. For large planar structures, using a higher mesh density may not always be a practical option since it will quickly lead to a very large MoM matrix and thus growing the size of the numerical problem. Sometimes a slightly non-uniform mesh still produces stable numerical results. In other words, you may choose to increase the mesh resolution around the discontinuity regions only.&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh around geometrical and field discontinuities. You can check the check box labeled &amp;amp;quot;'''Refine Mesh at Junctions'''&amp;amp;quot;, which increases the mesh resolution at the connection area between rectangular objects. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Gap Locations'''&amp;amp;quot;, which may prove particularly useful when gap sources or lumped elements are placed on a short transmission line connected from both ends. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Vias'''&amp;amp;quot;, which increases the mesh resolution on the cross section of embedded object sets and by extension at the connection regions of the metallic objects connected to them. EM.Cube typically doubles the mesh resolution locally at the discontinuity areas when the respective boxes are checked.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM41.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Refining the planar mesh at the via and surrounding area.&lt;br /&gt;
&lt;br /&gt;
=== Checking Mesh Integrity ===&lt;br /&gt;
&lt;br /&gt;
You should always visually inspect EM.Cube's default generated mesh to see if the current mesh settings have produced an acceptable mesh. You may often need to change the mesh density or other parameters and regenerate the mesh. The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, highly incongruous meshes should always be avoided. Sometimes EM.Cube's default mesh may contain very narrow triangular cells due to very small angles between two edges. In some rare cases, extremely small triangular cells may be generated, whose area is a small fraction of the average mesh cell. These cases typically happen at the junctions and other discontinuity regions or at the boundary of highly irregular geometries with extremely fine details. In such cases, increasing or decreasing the mesh density by one or few cells per effective wavelength often resolves that problem and eliminates those defective cells. Nonetheless, EM.Cube's planar mesh generator offers an option to identify the defective triangular cells and either delete them or cure them. By curing we mean removing a narrow triangular cell and merging its two closely spaced nodes to fill the crack left behind.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM44.png|400px]] [[File:PMOM42.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Deleting or curing defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
EM.Cube by default deletes or cures all the triangular cells that have angles less than 10º. Sometimes removing defective cells may inadvertently cause worse problems in the mesh. You may choose to disable this feature and uncheck the box labeled &amp;amp;quot;'''Remove Defective Triangular Cells'''&amp;amp;quot; in the Planar Mesh Settings dialog. You can also change the value of the minimum allowable cell angle.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM43(1).png]]&lt;br /&gt;
&lt;br /&gt;
Setting the minimum allowable angle for non-defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
=== Locking Mesh Of Object Groups ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides different ways of controlling the mesh of a planar structure locally. Earlier you saw how to increase the mesh resolution at the discontinuity regions without affecting the mesh of uniform or regular areas of a planar structure. Another way of local mesh control is to lock the mesh density of certain traces or object sets. The mesh density that you specify in the Planar Mesh Settings dialog is a global parameter and applies to all the traces and embedded object sets in your project. However, you can lock the mesh of individual PEC, PMC and conductive sheet traces or embedded objects sets. In that case, the locked mesh density takes precedence over the global density. Note that locking mesh of object groups, in principle, is different than refining the mesh at discontinuities. In the latter case, the mesh of connection areas is affected. However, objects belonging to different traces cannot be connected to one another. Therefore, locking mesh can be useful primarily for isolated object groups that may require a higher (or lower) mesh resolution.&lt;br /&gt;
&lt;br /&gt;
You can lock the local mesh density by accessing the property dialog of a specific trace or embedded object set and checking the box labeled '''Lock Mesh'''. This will enable the '''Mesh Density''' box, where you can accept the default global value or set any desired new value.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM45.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of an object group from its property dialog.&lt;br /&gt;
&lt;br /&gt;
=== Local Mesh Control Using Polymesh Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to manually and individually mesh geometrical objects using the concept of polymesh. The Polymesh tool converts a planar surface object to a set of interconnected triangular cells, which is basically identical to its triangular surface mesh. Simply select an object and click the '''Polymesh Tool''' [[File:polymesh_tool_tn.png]] button of '''Tools Toolbar''', or select '''Menu &amp;amp;gt; Tools &amp;amp;gt; Polymesh''', or use the keyboard shortcut '''P'''. You can also right click on a selected object and select '''Polymesh''' from the contextual menu. From the Polymesh Dialog, you can control the mesh resolution through the '''Edge Length''' parameter, which is expressed in project units. Note that unlike the planar mesh generator which uses a frequency-dependent mesh density to drive the mesh resolution, the ploymesh's edge length is fixed and purely geometrical and does not change with the project frequency. '''EM.Cube's mesh generator considers a polymesh object as a &amp;amp;quot;final&amp;amp;quot; mesh and reproduces it &amp;amp;quot;As Is&amp;amp;quot; during the meshing process.'''&lt;br /&gt;
&lt;br /&gt;
You have access to every single node of a polymesh object and you can change its coordinates arbitrarily. You do this by opening the property dialog of a polymesh object and selecting a certain node index in the box labeled '''Active Node'''. You can also select a node by hovering the mouse over the node to highlight it and then click to select it. A red ball appears on the current active node. You can delete the nodes arbitrarily using the '''Delete''' button of the dialog, which results in lowering the mesh resolution at the location of the deleted node. Or you can insert new nodes in the faces of a polymesh object. To insert a node, first you have to select a face. Change the '''Mode''' option by selecting the '''Face''' radio button and then select the right '''Active Face''' index. A red triangular border appears around the selected face. You can also simply click on the surface of a face and select it using the mouse. With the desired face selected, click the '''Insert''' button of the dialog to create a new node at the centroid of the selected face. You can adjust the coordinates of the newly inserted node from the three X, Y and Z '''Coordinate''' boxes. Note that immediately after the insertion of a new node, the label of these coordinate boxes changes to &amp;amp;quot;'''New Node'''&amp;amp;quot; and they show the relative local X, Y and Z offsets with respect to the original node position. Once you close the Polymesh Dialog, the new node is added to the existing node list and can be edited later like the other polymesh nodes. By inserting a new node, you increase the mesh resolution locally and selectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM46(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Discretizing a planar surface object using EM.Cube's Polymesh tool.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that since a polymesh object it considered a final mesh, its mesh cannot be connected to other objects. In other words, bridge basis functions are not generated if even some of the polymesh edges may coincide with other objects' edges. A polymesh object is treated by the mesh generator as an isolated mesh. However, EM.Cube allows you to connect polymesh objects manually. To do so, bring two or more polymesh objects close to each other so that they have one or more common edges. No face overlaps are allowed in this case. Select the polymesh objects and click the '''Merge Tool'''[[File:merge_tool_tn.png]] button of '''Tools Toolbar''' to merge the polymesh objects into a single polymesh object. The new merged polymesh object will provide all the necessary bridge basis functions among the original, separate polymesh objects.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
In a typical electromagnetic simulation in EM.Cube's [[Planar Module]], you define a planar structure that consists of a layered background structure with a number of finite-sized metal and slot traces and possibly embedded metal or dielectric objects interspersed among the substrate layers. The planar structure is then excited by some sort of a signal source that induces electric currents on metal parts and magnetic currents on slot traces. The method of moments (MoM) solver computes these unknown electric and magnetic currents by discretizing the finite-sized objects. The induced currents, in turn, produce their own electric and magnetic fields which coexist (are superposed) with the impressed electric and magnetic fields of the signal source. From a knowledge of the near fields, EM.Cube calculates the port characteristics of the planar structure, if any ports have been defined. From a knowledge of the far fields, EM.Cube calculates the radiation or scattering characteristics of the planar structure.&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure in a number of different ways. The excitation source you choose depends on the observables you seek in your project. [[Planar Module]] provides the following source for exciting planar structures:&lt;br /&gt;
&lt;br /&gt;
* Lumped Sources with three varieties: [[#Gap Sources|Gap Sources]], [[#De-embedded Sources|De-embedded Sources]] and [[#Probe Sources|Probe Sources]]&lt;br /&gt;
* [[#Plane Wave Sources|Plane Wave Sources]]&lt;br /&gt;
* [[#Short Dipole Sources|Short Dipole Sources]]&lt;br /&gt;
* [[#Huygens Sources|Huygens Sources]]&lt;br /&gt;
&lt;br /&gt;
For antennas and planar circuits, where you typically define one or more ports, you usually use lumped sources. A lumped source is indeed a gap discontinuity that is placed on the path of an electric or magnetic current flow, where a voltage or current source is connected to inject a signal. Gap sources are placed across metal or slot traces. Probe sources are placed across vertical PEC vias. A de-embedded source is a special type of gap source that is placed near the open end of an elongated metal or slot trace to create a standing wave pattern, from which the scattering parameters can be calculated accurately. To calculate the scattering characteristics of a planar structure, e.g. its radar cross section (RCS), you excite it with a plane wave source. Short dipole sources are used to explore propagation of points sources along a layered structure. Huygens sources are virtual equivalent sources that capture the radiated electric and magnetic fields from another structure possibly in another EM.Cube computational module and bring them as a new source to excite your planar structure.&lt;br /&gt;
&lt;br /&gt;
=== Gap Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM47.png|thumb|300px|The [[Planar Module]]'s Gap Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A gap is an infinitesimally narrow discontinuity that is placed on the path of current flow on a feed line. In planar structures, feed lines are typically in the form of a microstrip, stripline, slotline or coplanar waveguide (CPW). You use rectangle strip objects to construct such feed lines. A gap source can be placed on any rectangle strip object on a PEC, PMC or conductive sheet trace. Depending on the type of the trace on which a gap source is placed, it will have a different physical interpretation.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PEC or conductive sheet trace can be regarded as a strip transmission line that carries electric currents along its length (local X direction). The characteristic impedance of the line is a function of its width (local Y direction). A gap source is placed somewhere along the length and across the width of such a rectangle strip object, thus creating an infinitesimally narrow gap at its location. In this case, the gap source represents an ideal voltage source in series with a lumped impedance that is connected across the gap to excite the strip transmission line. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the gap. The source pumps electric current into the line. If the voltage source is shorted (having a zero amplitude), then the gap acts like a series lumped element on the transmission line.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PMC trace can be regarded as a slot transmission line on an infinite PEC ground plane that carries a magnetic current along its length (local X direction). The characteristic impedance of the slot line is a function of its width (local Y direction). A slot gap source is placed somewhere along the length and across the width of the rectangle strip object on a PMC trace and creates an infinitesimally narrow gap at its location. In this case, the slot gap source represents an ideal current source with a shunt lumped admittance that is connected across the slot to excite the slot transmission line. When the admittance is zero, the gap acts like an ideal current filament, which creates electric fields across the slot, equivalent to a magnetic current flowing into the slot line. If the current source is open (having a zero amplitude), then the gap acts like a shunt (parallel) lumped element on the slot line. As you will see later, a coplanar waveguide (CPW) can be realized using two parallel slot lines with two aligned, collocated gap sources.&lt;br /&gt;
&lt;br /&gt;
To define a gap source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Gap Source Dialog by right clicking on the '''Gap Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' available in the project workspace. Select the desired host rectangle strip object. The box labeled '''Direction''' shows the direction or polarity of the new gap source on its host rectangle strip object. You have the option to select either the positive or negative direction for the source polarity.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the gap source from the start point of the rectangle strip feed line. The value of '''Offset''' by default is initially set to the center of the line. As you change the offset value, you can see the gap move on its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of a gap on a slot trace) and '''Phase''' in degrees.&lt;br /&gt;
* You can also change the default label as well as the default color of the gap source using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
&lt;br /&gt;
=== Probe Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM48.png|thumb|300px|The [[Planar Module]]'s Probe Source dialog]]&lt;br /&gt;
&lt;br /&gt;
Another way of exciting a planar structure is by placing a gap on the path of a vertical current on a PEC via. This represents a filament source, which is used to model coaxial probe excitation. A probe source can be placed only on a PEC via object. Most planar transmission lines are fed using SMA connectors. The outer conductor of the coaxial line is connected to the ground and its inner conductor is extended across the substrate layer and connected to a metallic line. EM.Cube's [[Planar Module]] models a coaxial probe as an infinitesimal gap discontinuity placed across a thin via, representing an ideal voltage source in series with a lumped impedance. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the via. The source pumps vertical electric current into the probe. If the voltage source is shorted (having a zero amplitude), then the gap acts like a shunt lumped element across the via.&lt;br /&gt;
&lt;br /&gt;
To define a probe source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Probe Source Dialog by right clicking on the '''Probe Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, in the dropdown list labeled '''Embedded Objects''', you will find a list of all the PEC via objects available in the project workspace. Select the desired host PEC via object. The box labeled '''Direction''' shows the direction or polarity of the new probe source on its host PEC via object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the probe source from the bottom of the via object. The value of '''Offset''' by default is initially set to the center of the via.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and '''Phase''' in degrees.&lt;br /&gt;
&lt;br /&gt;
Unlike gap sources, whose offset parameter determines their exact location on their host line, the offset parameter of a probe source is not relevant except for long host vias. In the case of a short via that is discretized using a single prismatic element across its host substrate layer, the probe gap is always placed at the middle of its height. Longer vias may have a mesh that consists of two or more stacked prismatic elements. In this case, the probe source's offset determines which prismatic element will host the probe gap discontinuity at its middle.&lt;br /&gt;
&lt;br /&gt;
=== Defining Source Arrays ===&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects, the array object will also be listed as an eligible object for gap source placement. A gap source will then be placed on each element of the array. All the gap sources will have identical direction and offset. Similarly, if the project workspace contains an array of PEC via objects, the embedded array object will also be listed as an eligible object for probe source placement. A probe source will then be placed on each via object of the array. All the probe sources will have identical direction and offset.&lt;br /&gt;
&lt;br /&gt;
However, you can prescribe certain amplitude and/or phase distribution over the array of gap or probe sources. By default, all the gap or probe sources have identical amplitudes of 1V (or 1A for the slot case) and zero phase. The available amplitude distributions to choose from include '''Uniform''', '''Binomial''' and '''Chebyshev''' and '''Date File'''. In the Chebyshev case, you need to set a value for minimum side lobe level ('''SLL''') in dB. You can also define '''Phase Progression''' in degrees along all three principal axes. You can view the amplitude and phase of individual sources by right clicking on the top '''Sources''' item in the Navigation Tree and selecting '''Show Source Label''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM49.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining gap sources on an array of rectangle strip objects with a Chebyshev amplitude distribution.&lt;br /&gt;
&lt;br /&gt;
In the data file option, the complex amplitude are directly read in from a data file using a real - imaginary format. When this option is selected, you can either improvise the complex array weights or import them from an existing file. In the former case click the '''New Data File''' button. This opens up the Windows Notepad with default formatted data file that has a list of all the array element indices with default 1+j0 amplitudes for all of them. You can replace the default complex values with new one and save the Notepad data file, which brings you back to the Gap Source dialog. To import the array weights, click the '''Open Data File''' button, which opens the standard Windows Open dialog. You can then select the right data file from the one of your folders. It is important to note that the data file must have the correct format to be read by EM.Cube. For this reason, it is recommended that you first create a new data file with the right format using Notepad as described earlier and then save it for later use.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining gap source array weights using a data file.&lt;br /&gt;
&lt;br /&gt;
=== Defining Ports ===&lt;br /&gt;
&lt;br /&gt;
Ports are used in a planar structure to order and index the sources for calculation of circuit parameters such as scattering (S), impedance (Z) and admittance (Y) parameters. In EM.Cube's [[Planar Module]], you can use the following types of sources to define ports:&lt;br /&gt;
&lt;br /&gt;
* Gap Sources&lt;br /&gt;
* Probe Sources&lt;br /&gt;
* Active Lumped Elements&lt;br /&gt;
* De-Embedded Sources&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your planar structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree. Note that your project can have mixed gap and probes sources as well as active lumped element sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
'''You can define any number of ports equal to or less than the total number of sources in your project.''' The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50S by default. You can delete any port by selecting it from the Port List and clicking the '''Delete''' button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment and make sure that is what you intend. You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit''' button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM53.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edit Port dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Coupled Ports ===&lt;br /&gt;
&lt;br /&gt;
Sources can be coupled to each other to model coupled strip lines (CPS) on metal traces or coplanar waveguides (CPW) on slot traces. Similarly, probe sources may be coupled to each other. Coupling two or more sources does not change the way they excite a planar structure. It is intended only for the purpose of S parameter calculation. The feed lines or vias which host the coupled sources are usually parallel and aligned with one another and they are all grouped together as a single transmission line represented by a single port. This single &amp;amp;quot;coupled&amp;amp;quot; port then interacts with other coupled or uncoupled ports.&lt;br /&gt;
&lt;br /&gt;
You couple two or more sources using the '''Port Definition Dialog'''. To do so, you need to change the default port assignments. First, delete all the ports that are to be coupled from the Port List of the dialog. Then, define a new port by clicking the '''Add''' button of the dialog. This opens up the Add Port dialog, which consists of two tables: '''Available''' sources on the left and '''Associated''' sources on the right. A right arrow ('''--&amp;amp;gt;''') button and a left arrow ('''&amp;amp;lt;--''') button let you move the sources freely between these two tables. You will see in the &amp;amp;quot;Available&amp;amp;quot; table a list of all the sources that you deleted earlier. You may even see more available sources. Select all the sources that you want to couple and move them to the &amp;amp;quot;Associated&amp;amp;quot; table on the right. You can make multiple selections using the keyboard's '''Shift''' and '''Ctrl''' keys. Closing the Add Port dialog returns you to the Port Definition dialog, where you will now see the names of all the coupled sources next to the name of the newly added port.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is your responsibility to set up coupled ports and coupled transmission lines properly. For example, to excite the desirable odd mode of a coplanar waveguide (CPW), you need to create two rectangular slots parallel to and aligned with each other and place two gap sources on them with the same offsets and opposite polarities. To excite the even mode of the CPW, you use the same polarity for the two collocated gap sources. Whether you define a coupled port for the CPW or not, the right definition of sources will excite the proper mode. The couple ports are needed only for correct calculation of the port characteristics.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM51(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Coupling gap sources in the Port Definition dialog by associating more than one source with a single port.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Port Characteristics At Gap Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
A gap source on a metal trace and a probe source on a PEC via behave like a series voltage source with a prescribed strength (of 1V and zero phase by default) that creates a localized discontinuity on the path of electric current flow. At the end of a planar MoM simulation, the electric current passing through the voltage source is computed and integrated to find the total input current. From this one can calculate the input admittance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_W \hat{y} \cdot \mathbf{J_s} \, dy} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM54(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for gap sources on metal traces, where the line integration is performed across the width of the metal strip, and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_S \hat{z} \cdot \mathbf{J_p} \, ds} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM55.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for probe sources on PEC vias, where the surface integration is performed over the cross section of the via. On the other hand, a gap source on a slot trace behaves like a shunt current source with a prescribed strength (of 1A and zero phase by default) that creates a localized discontinuity on the path of magnetic current flow. At the end of a planar MoM simulation, the magnetic current passing through the current source is computed and integrated to find the total input voltage across the current filament. From this one can calculate the input impedance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{in} = \frac{V_{in}}{I_s} = \frac{\int_W \hat{y} \cdot \mathbf{M_s} \,dy} {V_s} = \frac{\int_W E_y \, dy}{V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM56.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the input admittance or impedance defined at a gap source port is referenced to the two terminals of the voltage source connected across the gap as shown in the figure below. This is different than the input admittance or impedance that one may normally define for a microstrip port, which is referenced to the substrate's ground.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM59(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Definition of different input impedances at the gap location.&lt;br /&gt;
&lt;br /&gt;
To resolve this problem, you can place a gap source on a metal strip line by a distance of a quarter guide wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/4) away from its open end. Note that (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; = 2p/ß), where ß is the propagation constant of the metallic transmission line. As show in the figure below, the impedance looking into an open quarter-wave line segment is zero, which effectively shorts the gap source to the planar structure's ground. The gap admittance or impedance in this case is identical to the input admittance or impedance of the planar structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM60(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing a gap source a quarter guide wavelength away from the open end of a feed line to effectively short it to the ground at the gap location.&lt;br /&gt;
&lt;br /&gt;
The same principle applies to the gap sources on slot traces. The figure below shows how to place two gap sources with opposite polarities a quarter guide wavelength away from their shorted ends to calculate the correct input impedance of the CPW line looking to the left of the gap sources. Note that in this case, you deal with shunt filament current sources across the two slot lines and that the slot line carry magnetic currents. The end of the slot lines look open to the magnetic currents, but in reality they short the electric field. The quarter-wave CPW line acts as an open circuit to the current sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM61(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing two oppositely polarized gap sources a quarter guide wavelength away from the short end of a CPW line to effectively create an open circuit beyond the gap location.&lt;br /&gt;
&lt;br /&gt;
The case of a probe source placed on a PEC via that is connected to a ground plane is more straightforward. In this case, the probe source's gap discontinuity is placed at the middle plane of the PEC via. If the via is short, it is meshed using a single prismatic element, which is connected to the ground from one side and to the metal strip line from the other. Therefore, the probe admittance or impedance is equal to that of the structure at a reference plane that passed through the host via.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM62(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Input impedance of a probe source on a PEC via connected to a ground plane.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Multiport Structures Using Linear Superposition ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure has two or more sources, but you have not defined any ports, all the lumped sources excite the structure locally and contribute to the excitation vector needed for the MoM solution of the problem. However, when you assign N ports to the sources, then you have a multiport structure that is characterized by an N×N admittance matrix (instead of a single Y&amp;lt;sub&amp;gt;in&amp;lt;/sub&amp;gt; parameter), or an N×N impedance matrix, or an N×N scattering matrix. To calculate these matrices, EM.Cube uses a binary excitation scheme in conjunction with the principle of linear superposition. In this binary scheme, the structure is analyzed N times. Each time one of the N port-assigned sources is excited, and all the other port-assigned sources are turned off.&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on metal traces and probe sources on PEC vias, turning a source off means shorting a series voltage source. The electric currents passing through these sources are then found at each port location, and the admittance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_m = \sum_{n=1}^N Y_{mn} V_n, \quad \quad Y_{mn} = \frac{I_m}{V_n} \bigg|_{V_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM57.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on slot traces, turning a source off means opening a shunt filament current source. The magnetic currents passing through the source locations, and thus the voltages across them, are then found at all ports, and the impedance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_m = \sum_{n=1}^N Z_{mn} I_n, \quad \quad Z_{mn} = \frac{V_m}{I_n} \bigg|_{I_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM58.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The N solution vectors that are generated through the N binary excitation analyses are finally superposed to produce the actual solution to the problem. However, in this process, EM.Cube also calculates all the port characteristics. Keep in mind that the impedance (Z) and admittance (Y) matrices are inverse of each other. From the impedance matrix, the scattering matrix is calculated using the following relation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM63.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Lumped Elements In Planar MoM ===&lt;br /&gt;
&lt;br /&gt;
Lumped elements are components, devices, or circuits whose overall dimensions are very small compared to the wavelength. As a result, they are considered to be dimensionless compared to the dimensions of a mesh cell. In fact, a lumped element is equivalent to an infinitesimally narrow gap that is placed in the path of current flow, across which the device's governing equations are enforced. Using Kirkhoff's laws, these device equations normally establish a relationship between the currents and voltages across the device or circuit. Crossing the bridge to Maxwell's domain, the device equations must now be cast into a from o boundary conditions that relate the electric and magnetic currents and fields. EM.Cube's [[Planar Module]] allows you to define passive circuit elements: '''Resistors'''(R), C'''apacitors'''(C), I'''nductors'''(L), and series and parallel combinations of them as shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image106.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A series-parallel RLC combination that can be modeled as a lumped circuit in [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Lumped elements are conceptualized in a similar way as gap or probe sources. They are indeed considered as infinitesimally narrow gaps placed in the path of current flow, across which Ohm's law is enforced. If a lumped element is placed on a PEC or conductive sheet trace, it is treated as a series connection. The boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; &lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{x}\cdot \mathbf{E_{gap}} \, dx = Z_L \int_W \hat{y} \cdot \mathbf{J_s} \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM67.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Z&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total impedance across the two terminals of the series element. If the lumped element is placed on a slot trace, it is treated as a shunt connection that creates a current discontinuity. In this case, the magnetic current across the gap is continuous, and the boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_{gap} = Y_L V_{in} \quad\quad \int_{\delta} J_Y^{fila} \, dx = Y_L \int_W E_y \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \int_{\delta} \hat{x}\cdot\hat{n} \times (\mathbf{H_{gap}^+ - H_{gap}^-}) \, dx = Y_L \int_W \hat{y}\cdot\mathbf{M_s} \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM70(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Y&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total admittance across the two terminals of the shunt element. If a lumped element is placed on a PEC via that is connected to a metal strip from one side and to a PEC ground plane from the other end, it is indeed as a series connection across a gap discontinuity at the middle plane of the via. If the via is short, it is meshed using a single prismatic element. In that case, the lumped element in effect shunts the metal strip to the ground. The boundary condition at the location of the lumped element across the PEC via is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{z}\cdot \mathbf{E_{gap}} \, dz = Z_L \int_S \hat{z} \cdot \mathbf{J_p} \, ds&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM68.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM69.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Using a shunt lumped element on a PEC via to terminate a metallic strip line.&lt;br /&gt;
&lt;br /&gt;
=== Defining Lumped Circuits ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM64.png|thumb|400px|Lumped Element dialog]]&lt;br /&gt;
To define a lumped RLC circuit in your planar structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Lumped Element Dialog by right clicking on the '''Lumped Elements''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Gap Topology''' section of the dialog, select one of the two options: '''Gap on Line''' and '''Gap on Via'''.&lt;br /&gt;
* In the '''Lumped Circuit Type''' section of the dialog, select one of the two options: '''Passive RLC''' and '''Active with Gap Source'''.&lt;br /&gt;
* Depending on your choice of gap topology, in the '''Lumped Circuit Location''' section of the dialog, you will find either a list of all the '''Rectangle Strip Objects''' or a list of all the '''PEC Via Objects''' available in the project workspace. Select the desired rectangle strip or embedded PEC via object.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the rectangle strip line or from the bottom of the via object, whichever the case. The value of '''Offset''' by default is initially set to the center of the line or via.&lt;br /&gt;
* In the '''Load Properties''' section, the series and shunt resistance values Rs and Rp are specified in Ohms, the series and shunt inductance values Ls and Lp are specified in nH (nanohenry), and the series and shunt capacitance values Cs and Cp are specified in pF (picofarad). Only the checked elements are taken into account in the total impedance calculation. By default, only the series resistor is checked with a value of 50S, and all other circuit elements are initially greyed out.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] allows you to define a voltage source in series with a series-parallel RLC combination and place them across the gap. This is called an active lumped element. If you choose the '''Active with Gap Source''' option of the '''Lumped Circuit Type''' section of the dialog, the right section of the dialog entitled '''Source Properties''' becomes enabled, where you can you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of PMC traces) and the '''Phase''' in degrees. Also, the box labeled '''Direction''' becomes relevant in this case which contains a gap source. Otherwise, a passive RLC circuit does not have polarity.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects or PEC via objects, the array object will also be listed as an eligible object for lumped element placement. A lumped element will then be placed on each element of the array. All the lumped elements will have identical direction, offset, resistance, inductance and capacitance values. If you define an active lumped element, you can prescribe certain amplitude and/or phase distribution to the gap sources just like in the case of gap and probe sources. The available amplitude distributions include '''Uniform''', '''Binomial'''''', Chebyshev''' and '''Data File'''.&lt;br /&gt;
&lt;br /&gt;
{{Note|The impedance of the lumped circuit is calculated at the operating frequency of the project using the specified R, L and C values. As you change the frequency, the value of the impedance that is passed to the Planar MoM engine will change.}}&lt;br /&gt;
&lt;br /&gt;
=== Calculating Scattering Parameters Using Prony's Method ===&lt;br /&gt;
&lt;br /&gt;
The calculation of the scattering (S) parameters is usually an important objective of modeling planar structures especially for planar circuits like filters, couplers, etc. As you saw earlier, you can use lumped sources like gaps and probes and even active lumped elements to calculate the circuit characteristics of planar structures. The admittance / impedance calculations based on the gap voltages and currents are accurate at RF and lower microwave frequencies or when the port transmission lines are narrow. In such cases, the electric or magnetic current distributions across the width of the port line are usually smooth, and quite uniform current or voltage profiles can easily be realized. At higher frequencies, however, a more robust method is needed for calculating the port parameters.&lt;br /&gt;
&lt;br /&gt;
One can calculate the scattering parameters of a planar structure directly by analyzing the current distribution patterns on the port transmission lines. The discontinuity at the end of a port line typically gives rise to a standing wave pattern that can clearly be discerned in the line's current distribution. From the location of the current minima and maxima and their relative levels, one can determine the reflection coefficient at the discontinuity, i.e. the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter. A more robust technique is Prony’s method, which is used for exponential approximation of functions. A complex function f(x) can be expanded as a sum of complex exponentials in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f(x) \approx \sum_{n=1}^N c_i e^{-j\gamma_i x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM73.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are complex coefficients and &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are, in general, complex exponents. From the physics of transmission lines, we know that lossless lines may support one or more propagating modes with pure real propagation constants (real &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents). Moreover, line discontinuities generate evanescent modes with pure imaginary propagation constants (imaginary &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents) that decay along the line as you move away from the location of such discontinuities.&lt;br /&gt;
&lt;br /&gt;
In practical planar structures for which you want to calculate the scattering parameters, each port line normally supports one, and only one, dominant propagating mode. Multi-mode transmission lines are seldom used for practical RF and microwave applications. Nonetheless, each port line carries a superposition of incident and reflected dominant-mode propagating signals. An incident signal, by convention, is one that propagates along the line towards the discontinuity, where the phase reference plane is usually established. A reflected signal is one that propagates away from the port plane. Prony's method can be used to extract the incident and reflected propagating and evanescent exponential waves from the standing wave data. From a knowledge of the amplitudes (expansion coefficients) of the incident and reflected dominant propagating modes at all ports, the scattering matrix of the multi-port structure is then calculated. In Prony's method, the quality of the S parameter extraction results depends on the quality of the current samples and whether the port lines exhibit a dominant single-mode behavior. Clean current samples can be drawn in a region far from sources or discontinuities, typically a quarter wavelength away from the two ends of a feed line.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM71.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Minimum and maximum current locations of the standing wave pattern on a microstrip line feeding a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== De-Embedded Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM74.png|thumb|300px|The [[Planar Module]]'s De-embedded Source dialog]]&lt;br /&gt;
EM.Cube's [[Planar Module]] provides de-embedded sources for the exclusive purpose of accurate S parameter calculation based on Prony's method. A de-embedded source is indeed a gap source that is placed close to an open end of a feed line. The other end of the line is typically connected to a planar structure of interest. Like gap sources, de-embedded sources can be placed only on rectangle strip objects. '''During mesh generation, EM.Cube automatically extends the length of a port line that hosts a de-embedded source to about two effective wavelengths.''' This is done to provide enough length for formation of a clean standing wave current pattern. The effective wavelength of a transmission line for length extension purposes is calculated in a similar manner as for the planar mesh resolution. It is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where &amp;amp;epsilon;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivities of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivities of the two substrate layers just above and below the metallic trace. The host port line must always be open from one end to allow for its length extension. You have to make sure that there are no objects standing on the way of the extended port line to avoid any unwanted overlaps.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM72.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The mesh of a patch antenna excited with a de-embedded source. Note the feed line extension in the mesh view.&lt;br /&gt;
&lt;br /&gt;
You can define de-embedded source on metal (PEC), slot (PMC) and conductive sheet traces. To define a de-embedded source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the De-Embedded Source Dialog by right clicking on the '''De-Embedded Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' or arrays of such objects that are available in the project workspace. The box labeled '''Direction''' shows the direction the phase reference plane for S parameter calculation and determines which end of the host line to place the source at. You have the option to select either the positive or negative direction to bounce the source between the two ends of the line.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the phase reference plane from the end of the feed line object. The value of '''Offset''' by default is initially set to zero, meaning that the S parameters are calculated at the plane passing through the end of the feed line. Type in a new offset value or use the spin buttons to move the source arrow along the line away from its end. As you change the offset value, you can see the source arrow move along its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of slot traces) and '''Phase''' in degrees.&lt;br /&gt;
* In the '''Prony Mode Extraction''' section, you can specify the '''Number of Prony Modes''', which refers to the number of positive-negative exponential pairs that are extracted from the standing wave current data. The default value is 1 and represents the dominant quasi-TEM incident/reflected signal pair.&lt;br /&gt;
&lt;br /&gt;
In a planar project with de-embedded sources, if you do not define any ports, the feed lines will simply be extended, and the exciting gap sources will be placed at the open ends of these extended lines. Note that if you define a de-embedded source along with a port definition in your project, then all the other port-assigned sources of your project must be of the same de-embedded type. You can define de-embedded sources for coplanar waveguides (CPW) on slot traces. To do so, you need to place two collocated, de-embedded sources with identical offsets (same phase reference plane), same source amplitudes but 180° phase difference. Note that for CPW structures, setting the number of Prony modes to 2 can get you more accurate results. In this case, the two extracted Prony modes will include the incident and reflected, odd and even, propagating modes of the CPW.&lt;br /&gt;
&lt;br /&gt;
=== Using the Line Calculator ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides a simple calculator for analyzing planar transmission lines. It is based on the frequency domain finite difference (FDFD) technique. You can find the characteristic impedance, effective permittivity and guide wavelength of a TEM or quasi-TEM transmission line defined based on your project's background structure. Therefore, any arbitrary stack-up configuration with any number of substrate layers can be considered.&lt;br /&gt;
&lt;br /&gt;
To access the Line Calculator, first you have to select a metal (PEC) trace or a slot (PMC) trace in the Navigation Tree. Right click on the name of a trace and select '''Line Calc...''' from the contextual menu to open the Line Calc Dialog. You can analyze a metal strip line on any PEC trace or a coplanar waveguide (coupled slot lines) on any PMC trace. The 2D line structure to be analyzed by the FDFD method consists of the background structure of your project with a metal strip or CPW located at the Z-plane of your selected trace. Depending on whether your open the Line Calc dialog from a metal trace or a slot trace, a picture of a microstrip line or a CPW line appear at the top of the dialog, respectively. In the former case, you have to specify '''Strip Width''' in the project units. In the latter case, you have to specify '''Slot Width''', too. Keep in mind that the strip width is equal to the spacing between the two slot lines minus the width of individual slot lines. Clicking the Analyze button of the dialog evokes the FDTD simulator, and calculated results are reflected in the boxes labeled '''Zo''', '''Effective Permittivity''' and '''Guide Wavelength'''.&lt;br /&gt;
&lt;br /&gt;
When your background structure involves a slot (PMC) trace, then there is an infinite PEC ground plane at the plane of the slot trace. In that case, when you analyze a strip line on a metal trace, you must keep in mind that your stack-up configuration will be truncated by the slot's ground plane just for purpose of Z&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; calculation. A typical case of this type is a slot-coupled patch antenna fed by a microstrip line underneath the slot. From the point of view of the Line Calculator, the microstrip line lies on a substrate layer that is backed by the slot's ground plane and it does not see the substrate layer lying above the slot plane.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM75.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Analyzing a metal strip line using the line calculator.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM76.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Analyzing a coplanar waveguide using the line calculator.&lt;br /&gt;
&lt;br /&gt;
=== Short Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM110.png|thumb|250px|Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A short dipole is the simplest type of radiator, which consists of a short current element of length &amp;amp;amp;DELTA;l, aligned along a unit vector û and carrying a current of I Amperes. The product I&amp;amp;amp;DELTA;l is often called the dipole moment and gives a measure of the radiator's strength. A short dipole in the free space generates an azimuth-symmetric, almost omni-directional, far field. However, the radiated fields of a short dipole above a layered planar background structure are greatly altered by the presence of the substrate layers. Note that the electric and magnetic field radiated by a short dipole in the presence of a layered background structure are indeed nothing but the dyadic Green's functions of that structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{EJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{HJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM109(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To define a short dipole source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Short Dipoles''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' The Short Dipole Dialog opens up.&lt;br /&gt;
* In the section titled '''Source Location''', enter values for the X, Y and Z coordinates of the dipole's center. By default, a new dipole is placed at the origin of coordinates. As you change the coordinates using the spin buttons, you will see the dipole move in the project workspace.&lt;br /&gt;
* In the section titled '''Source Properties''', you can change the values of the dipole's '''Amplitude''' (in A), '''Phase''' (in degrees) and '''Length''' in the project's length units. A new dipole, by default, is Z-directed. You can change its orientation by entering the components of its unit vector in the three boxes labeled '''Direction Unit Vector'''.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM77.png|thumb|300px|[[Planar Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure with an incident plane wave to explore its scattering characteristics such as radar cross section (RCS). Exciting an antenna structure with an incident plane wave is equivalent to operating it in the &amp;amp;quot;receive&amp;amp;quot; mode. Plane wave excitation in the [[Planar Module]] is particularly useful for calculation of reflection and transmission coefficients of periodic surfaces. Note that the incident plane wave in your project bounces off the layered background structure and part of it also penetrates the substrate layers. The total incident field that is used to calculate the excitation vector of the MoM linear system is a superposition of the incident, reflected and transmitted plane waves at various regions of your planar structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{inc}(r)} = E_0 (\mathbf{\hat{e}_1} e^{ -jk_0 \mathbf{\hat{k}_1\cdot r} } + &lt;br /&gt;
R \mathbf{\hat{e}_2} e^{ -jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{inc}(r)} = \frac{E_0}{\eta_0} ( \mathbf{\hat{k}_1 \times \hat{e}_1} e^{-jk_0 \mathbf{\hat{k}_1 \cdot r} } + &lt;br /&gt;
R \mathbf{\hat{k}_2 \times \hat{e}_2} e^{-jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi&amp;lt;/math&amp;gt; is the characteristic impedance of the free space, '''k&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the unit propagation vectors of the incident plane wave and the wave reflected off the topmost substrate layer, respectively, and '''ê&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''ê&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the polarization vectors corresponding to the electric field of those waves. R is the reflection coefficient at the interface between the top half-space and the topmost substrate layer and has different values for the TM and TE polarizations.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the theta and phi angles of the propagation vector in the spherical coordinate system. The default values are &amp;amp;theta; = 180° and &amp;amp;phi; = 0°, representing a normally incident plane wave propagating along the -Z direction with a +X-polarized electric field vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization cases, the magnetic and electric fields are parallel to the XY plane, respectively. The left-hand (LCP) and right-hand (RCP) circular polarization cases are restricted to normal incidences only (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the '''Amplitude''' of the incident electric field in V/m and '''Phase''' in degrees. The default field Amplitude is 1 V/m, with a zero Phase.&lt;br /&gt;
* The direction of the Plane Wave is determined by the incident '''Theta''' and '''Phi''' angles expressed in the spherical coordinate system in degrees. You have to choose the '''Polarization''' of the plane wave from the four options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''and '''RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''. The components of the unit propagation vector are shown based on your choice of the angles of incidence. The components of the normalized E- and H-field vectors are also displayed based on your choice of polarization.&lt;br /&gt;
&lt;br /&gt;
== Running Planar MoM Simulations ==&lt;br /&gt;
&lt;br /&gt;
The first step of planning a planar MoM simulation is defining your planar structure. This consists of the background structure plus all the finite-sized metal and slot trace objects and possibly embedded metal or dielectric objects that are interspersed among the substrate layers. The background stack-up is defined in the Layer Stack-up dialog, which automatically opens up as soon as you enter the [[Planar Module]]. The metal and slot traces and embedded object sets are listed in the Navigation Tree, which also shows all the geometrical (CAD) objects you draw in the project workspace under each object group at different Z-planes.&lt;br /&gt;
&lt;br /&gt;
The next step is to decide on the excitation scheme. If your planar structure has one or more ports and you seek to calculate its port characteristics, then you have to choose one of the lumped source types or a de-embedded source. If you are interested in the scattering characteristics of your planar structure, then you must define a plane wave source. Before you can run a planar MoM simulation, you also need to decide on the project's observables. These are the simulation data that you expect EM.Cube to generate as the outcome of the numerical simulation. EM.Cube's [[Planar Module]] offers the following observables:&lt;br /&gt;
&lt;br /&gt;
* Current Distribution&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Far Fields (Radiation Patterns or Radar Cross Section)&lt;br /&gt;
* Huygens Surfaces&lt;br /&gt;
* Port Characteristics&lt;br /&gt;
* Periodic Characteristics&lt;br /&gt;
&lt;br /&gt;
If you run a simulation without having defined any observables, no data will be generated at the end of the simulation. Some observables require a certain type of excitation source. For example, port characteristics will be calculated only if the project contains a port definition, which in turn requires the existence of at least one gap or probe or de-embedded source. The periodic characteristics (reflection and transmission coefficients) are calculated only if the structure has a periodic domain and excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Simulation Modes ===&lt;br /&gt;
&lt;br /&gt;
The simplest simulation type in EM.Cube is an analysis. In this mode, the planar structure in your project workspace is meshed at the center frequency of the project. EM.Cube generates an input file at this single frequency, and the Planar MoM simulation engine is run once. Upon completion of the planar MoM simulation, a number of data files are generated depending on the observables you have defined in your project. An analysis is a single-run simulation.&lt;br /&gt;
&lt;br /&gt;
EM.Cube offers a number of multi-run simulation modes. In such cases, the Planar MoM simulation engine is run multiple times. At each engine run, certain parameters are varied and a collection of simulation data are generated. At the end of a multi-run simulation, you can graph the simulation results in EM.Grid or you can animate the 3D simulation data from the Navigation Tree. For example, in a frequency sweep, the frequency of the project is varied over its specified bandwidth. Port characteristics are usually plotted vs. frequency, representing your planar structure's frequency response. In an angular sweep, the &amp;amp;theta; or &amp;amp;phi; angle of incidence of a plane wave source is varied over their respective ranges. EM.Cube's [[Planar Module]] currently provides the following types of multi-run simulation modes:&lt;br /&gt;
&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
* Angular Sweep&lt;br /&gt;
* R/T Macromodel&lt;br /&gt;
* Huygens Sweep&lt;br /&gt;
* [[Optimization]]&lt;br /&gt;
* HDMR&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting a simulation mode in [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
To run a planar MoM analysis of your project structure, open the Run Simulation Dialog by clicking the '''Run''' [[File:run_icon.png]] button on the '''Simulate Toolbar''' or select '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt;''' '''Run''' or use the keyboard shortcut '''Ctrl+R'''. The '''Analysis''' option of the '''Simulation Mode''' dropdown list is selected by default. Once you click the '''Run''' button, the simulation starts. A new window, called the '''Output Window''', opens up that reports the different stages of simulation and the percentage of the tasks completed at any time. After the simulation is successfully completed, a message pops up and reports the end of simulation. In certain cases like calculating scattering parameters of a circuit or reflection / transmission characteristics of a periodic surface, some results are also reported in the Output Window. At the end of a simulation, you need to click the '''Close''' button of the Output Window to return to the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM78.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Stages Of A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar MoM simulation engine uses a particular formulation of the method of moments called mixed potential integral equation (MPIE). Due to high-order singularities, the dyadic Green's functions for electric fields generated by electric currents as well as the dyadic Green's functions for magnetic fields generated by magnetic currents have very slow convergence behaviors. Instead of using these slowly converging dyadic Green's function, the MPIE formulation uses vector and scalar potentials. These include vector electric potential '''A(r)''', scalar electric potential K&amp;lt;sup&amp;gt;&amp;amp;Phi;&amp;lt;/sup&amp;gt;'''(r)''', vector magnetic potential '''F(r)''' and scalar magnetic potential K&amp;lt;sup&amp;gt;&amp;amp;Psi;&amp;lt;/sup&amp;gt;'''(r)'''. These potentials have singularities of lower orders. As a result, they coverage relatively faster. The speed of their convergence is further increased drastically using special singularity extraction techniques.&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation consists of two major stages: matrix fill and linear system inversion. In the first stage, the moment matrix and excitation vector are calculated. In the second stage, the MoM system of linear equations is inverted using one of the several available matrix solvers to find the unknown coefficients of all the basis functions. The unknown electric and magnetic currents are linear superpositions of all these elementary solutions. These can be visualized in EM.Cube using the current distribution observables. Having determined all the electric and magnetic currents in your planar structure, EM.Cube can then calculate the near fields on prescribed planes. These are introduced as field sensor observables. The near-zone electric and magnetic fields are calculated using a spectral domain formulation of the dyadic Green's functions. Finally the far fields of the planar structure are calculated in the spherical coordinate system. These calculations are performed using the asymptotic form of the dyadic Green's functions using the &amp;amp;quot;stationary phase method&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Setting Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation involves a number of numerical parameters that take preset default values unless you change them. You can access these parameters and change their values by clicking the '''Settings''' button next to the '''Select Engine''' dropdown list in the [[Planar Module]]'s Simulation Run dialog. In most cases, you do not need to open this dialog and you can leave all the default numerical parameter values intact. However, it is useful to familiarize yourself with these parameters, as they may affect the accuracy of your numerical results.&lt;br /&gt;
&lt;br /&gt;
The Planar MoM Engine Settings Dialog is organized in a number of sections. Here we describe some of the numerical parameters. The &amp;amp;quot;'''Matrix Fill'''&amp;amp;quot; section of the dialog deals with the operations involving the dyadic Green's functions. You can set a value for the '''Convergence Rate for Integration''', which is 1E-5 by default. This is used for the convergence test of all the infinite integrals in the calculation of the Hankel transform of spectral-domain dyadic Green's functions. When the substrate is lossy, the surface wave poles are captured in the complex integration plane using contour deformation. You can change the maximum number of iterations involved in this deformed contour integration, whose default value is 20. When the substrate is very thin with respect to the wavelength, the dyadic Green's functions exhibit numerical instability. Additional singularity extraction measures are taken to avoid numerical instability but at the expense of increased computation time. By default, a thin substrate layer is defined to a have a thickness less than 0.01&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;, where &amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective wavelength. You can modify the definition of &amp;amp;quot;Thin Substrate&amp;amp;quot; by entering a value for '''Thin Substrate Threshold''' different than the default 0.01. The parameter '''Max Coupling Range''' determines the distance threshold in wavelength between the observation and source points after which the Green's interactions are neglected. This distance by default is set to 1,000 wavelengths. For electrically small structures, the phase variation across the structure may be negligible. In such cases, a fast quasi-static analysis can be carried out. You can set this threshold in wavelengths in the box labeled '''Max Dimensions for Quasi-Static Analysis'''.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Spectral Domain Integration&amp;amp;quot; section of the dialog, you can set a value to '''Max Spectral Radius in k0''', which has a default value of 30. This means that the infinite spectral-domain integrals in the spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; are pre-calculated and tabulated up to a limit of 30k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant. These integrals may converge much faster based on the specified Convergence Rate for Integration described earlier. However, in certain cases involving highly oscillatory integrands, much larger integration limits like 100k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; might be needed to warrant adequate convergence. For spectral-domain integration along the real k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; axis, the interval [0, Nk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;] is subdivided into a large number of sub-intervals, within each an 8-point Gauss-Legendre quadrature is applied. The next parameter, '''No. Radial Integration Divisions per k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;''', determines how small these intervals should be. By default, 2 divisions are used for the interval [0, k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;]. In other words, the length of each integration sub-interval is k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/2. You can increase the resolution of integration by increasing this value above 2. Finally, instead of 2D Cartesian integration in the spectral domain, a polar integration is performed. You can set the '''No. of Angular Integration Points''', which has a default value of 100.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM79.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Linear System Solvers ===&lt;br /&gt;
&lt;br /&gt;
After the MoM impedance matrix '''[Z]''' (not to be confused with the impedance parameters) and excitation vector '''[V]''' have been computed through the matrix fill process, the planar MoM simulation engine is ready to solve the system of linear equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[Z]}_{N\times N} \cdot \mathbf{[I]}_{N\times 1} = \mathbf{[V]}_{N\times 1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM81.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''[I]''' is the solution vector, which contains the unknown amplitudes of all the basis functions that represent the unknown electric and magnetic currents of finite extents in your planar structure. In the above equation, N is the dimension of the linear system and equal to the total number of basis functions in the planar mesh. EM.Cube's linear solvers compute the solution vector'''[I]''' of the above system. You can instruct EM.Cube to write the MoM matrix and excitation and solution vectors into output data files for your examination. To do so, check the box labeled &amp;amp;quot;'''Output MoM Matrix and Vectors'''&amp;amp;quot; in the Matrix Fill section of the Planar MoM Engine Settings dialog. These are written into three files called mom.dat1, exc.dat1 and soln.dat1, respectively.&lt;br /&gt;
&lt;br /&gt;
There are a large number of numerical methods for solving systems of linear equations. These methods are generally divided into two groups: direct solvers and iterative solvers. Iterative solvers are usually based on matrix-vector multiplications. Direct solvers typically work faster for matrices of smal to medium size (N&amp;amp;lt;3,000). EM.Cube's [[Planar Module]] offers five linear solvers:&lt;br /&gt;
&lt;br /&gt;
# LU Decomposition Method&lt;br /&gt;
# Biconjugate Gradient Method (BiCG)&lt;br /&gt;
# Preconditioned Stabilized Biconjugate Gradient Method (BCG-STAB)&lt;br /&gt;
# Generalized Minimal Residual Method (GMRES)&lt;br /&gt;
# Transpose-Free Quasi-Minimum Residual Method (TFQMR)&lt;br /&gt;
&lt;br /&gt;
Of the above list, LU is a direct solver, while the rest are iterative solvers. BiCG is a relatively fast iterative solver, but it works only for symmetric matrices. You cannot use BiCG for periodic structures or planar structures that contain both metal and slot traces at different planes, as their MoM matrices are not symmetric. The three solvers BCG-STAB, GMRES and TtFQMR work well for both symmetric and asymmetric matrices and they also belong to a class of solvers called '''Krylov Sub-space Methods'''. In particular, the GMRES method always provides guaranteed unconditional convergence.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, provides a &amp;amp;quot;'''Automatic'''&amp;amp;quot; solver option that picks the best method based on the settings and size of the numerical problem. For linear systems with a size less than N = 3,000, the LU solver is used. For larger systems, BiCG is used when dealing with symmetric matrices, and GMRES is used for asymmetric matrices. If the size of the linear system exceeds N = 15,000, the sparse version of the iterative solvers is used, utilizing a row-indexed sparse storage scheme. You can override the automatic solver option and manually set you own solver type. This is done using the '''Solver Type''' dropdown list in the &amp;amp;quot;'''Linear System Solver'''&amp;amp;quot; section of the Planar MoM Engine Settings dialog. There are also a number of other parameters related to the solvers. The default value of '''Tolerance of Iterative Solver''' is 1E-3, which can be increased for more ill-conditioned systems. The maximum number of iterations is usually expressed as a multiple of the systems size. The default value of '''Max No. of Solver Iterations / System Size''' is 3. For extremely large systems, sparse versions of iterative solvers are used. In this case, the elements of the matrix are thresholded with respect to the larges element. The default value of '''Threshold for Sparse Solver''' is 1E-6, meaning that all the matrix elements whose magnitude is less than 1E-6 times the large matrix elements are set equal to zero. There are two more parameters that are related to the Automatic Solver option. These are &amp;amp;quot;''' User Iterative Solver When System Size &amp;amp;gt;'''&amp;amp;quot; with a default value of 3,000 and &amp;amp;quot;''' Use SParse Storage When System Size &amp;amp;gt;''' &amp;amp;quot; with a default value of 15,000. In other words, you control the automatic solver when to switch between direct and iterative solvers and when to switch to the sparse version of iterative solvers.&lt;br /&gt;
&lt;br /&gt;
If your computer has an Intel CPU, then EM.Cube offers special versions of all the above linear solvers that have been optimized for Intel CPU platforms. These optimal solvers usually work 2-3 time faster than their generic counterparts. When you install EM.Cube, the option to use Intel-optimized solvers is already enabled. However, you can disable this option (e.g. if your computer has a non-Intel CPU). To do that, open the EM.Cube's Preferences Dialog from '''Menu &amp;amp;gt; Edit &amp;amp;gt; Preferences''' or using the keyboard shortcut '''Ctrl+H'''. Select the Advanced tab of the dialog and uncheck the box labeled &amp;amp;quot;''' Use Optimized Solvers for Intel CPU'''&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM82.png]]&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
Electric and magnetic currents are the fundamental output data of a planar MoM simulation. After the numerical solution of the MoM linear system, they are found using the solution vector '''[I]''' and the definitions of the electric and magnetic vectorial basis functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{[I]}_{N\times 1} = &lt;br /&gt;
\begin{bmatrix} I^{(J)} \\ \\ V^{(M)} \end{bmatrix} \quad \Rightarrow \quad&lt;br /&gt;
&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\mathbf{J(r)} = \sum_{n=1}^N I_n^{(J)} \mathbf{f_n^{(J)} (r)} \\&lt;br /&gt;
\\&lt;br /&gt;
\mathbf{M(r)} = \sum_{k=1}^K V_k^{(M)} \mathbf{f_k^{(M)} (r)}&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that currents are complex vector quantities. Each electric or magnetic current has three X, Y and Z components, and each complex component has a magnitude and phase. You can visualize the surface electric currents on metal (PEC) and conductive sheet traces, surface magnetic currents on slot (PMC) traces and vertical volume currents on the PEV vias and embedded dielectric objects. 3D color-coded intensity plots of electric and magnetic current distributions are visualized in the project workspace, superimposed on the surface of physical objects.&lt;br /&gt;
&lt;br /&gt;
In order to view the current distributions, you must first define them as observables before running the planar MoM simulation. To do that, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. At the top of the dialog and in the section titled '''Active Trace / Set''', you can select a trace or embedded object set where you want to observe the current distribution. You can also select the current map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for current amplitude and phase, while the latter generates a 3D vector plot.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM84.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Current Distribution dialog.&lt;br /&gt;
&lt;br /&gt;
Once you close the current distribution dialog, the label of the selected trace or object set is added under the '''Current Distributions''' node of the Navigation Tree. &lt;br /&gt;
&lt;br /&gt;
{{Note|You have to define a separate current distribution observable for each individual trace or embedded object set.}}&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the current distribution nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''J''') and magnetic ('''M''') currents as well as the total electric and magnetic currents defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{J_{tot}} | = \sqrt{|J_x|^2 + |J_y|^2 + |J_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{M_{tot}} | = \sqrt{|M_x|^2 + |M_y|^2 + |M_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can click on any current plot to visualize it in the project workspace. A legend box at the upper right corner of the screen shows the color map scale as well as the minimum, maximum, mean and standard deviation of the current data and its units. To exit the 3D plot view and return to EM.Cube's normal view, hit the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM85(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The current distribution map of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM86(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Vectorial (cone) visualization of the current distribution on a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
Once all the current distributions are known in a planar structure, the electric and magnetic fields can be calculated everywhere in that structure using the dyadic Greens's functions of the background structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{EJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{EM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{HJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{HM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM92(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above equations can be cast into the spectral domain as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{EJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{EM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{HJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{HM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM93(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Calculation of the near-zone fields (fields at the vicinity of the unknown currents) is done at the post-processing stage and in a Cartesian coordinate systems. These calculations involve doubly infinite spectral-domain integrals, which are computed numerically. As was mentioned earlier, EM.Cube's planar MoM engine rather uses a polar integration scheme, where the radial spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; is integrated over the interval [0, Mk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;], M being a large enough number to represent infinity, and the angular spectral variable t is integrated over the interval [0, 2&amp;amp;pi;]. You also saw some of the numerical parameters related to this spectral-domain integration scheme.&lt;br /&gt;
&lt;br /&gt;
{{Note|When the observation plane is placed very close to the radiating J and M currents, the Green's functions exhibit singularities, which translate to very slow convergence or divergence of the integrals. You need to be careful to place field sensors at adequate distances from these radiating sources.}}&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|300px|[[Planar Module]]'s Field Sensor dialog]]&lt;br /&gt;
In order to view the near field distributions, you must first define field sensor observables before running the planar MoM simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of near field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear.&lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.&lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a planar MoM simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{E_{tot}}| = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{H_{tot}}| = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules, near field calculations in the [[Planar Module]] usually takes substantial time. This is due to the fact that at the end of a planar MoM simulation, the fields are not available anywhere (as opposed to the [[FDTD Module]]), and their computation requires integration of complex dyadic Green's functions (as opposed to [[MoM3D Module]]'s free space Green's functions).&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM116.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone electric field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone magnetic field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
Unlike differential-based methods, MoM simulators do not need a radiation box to calculate the far field data. The far-zone fields are calculated directly by integrating the currents on the traces and across the embedded objects using the asymptotic form of the background structure’s dyadic Green's functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{ff}(r)} = \iiint_V \mathbf{ \overline{\overline{G}}_{EJ,ff}(r|r') \cdot J(r') } \, d\nu ' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM,ff}(r|r') \cdot M(r') } \, d\nu '&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \dfrac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; is the characteristic impedance of the free space. As can be seen from the above equations, the far fields have the form of a TEM wave propagating in the radial direction away from the origin of coordinates. This means that the far-field magnetic field is always perpendicular to the electric field and the propagation vector, which in this case happens to be the radial unit vector in the spherical coordinate system. In other words, one only needs to know the far-zone electric field and can easily calculate the far-zone magnetic field from it. In EM.Cube's mixed potential integral equation formulation, the far-zone electric field can be expressed in terms of the asymptotic form of the vector electric and magnetic potentials '''A''' and '''F''':&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{E^{ff}}(x,y,z) = j k_0 \eta_0 \hat{r} \times [\hat{r} \times \mathbf{A}(r \to \infty)] +&lt;br /&gt;
j k_0 \hat{r} \times \mathbf{F}(r \to \infty)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The asymptotic form of these vector potentials are calculated using the &amp;amp;quot;'''Method of Stationary Phase'''&amp;amp;quot; when k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;rarr; &amp;amp;infin;. In that case, one can use the approximation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_0 |\mathbf{r-r'}| \approx k_0 (r - \mathbf{\hat{r} \cdot r'}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM115.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After applying the stationary phase method, one can extract the spherical wave factor exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/r from the far-zone electric field, leaving the rest as functions of the spherical angles &amp;amp;theta; and &amp;amp;phi;. In other words, the far field is normalized to r, the distance from the field observation point to the origin. It is customary to express the far fields in spherical components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;. Note that the outward propagating, TEM-type, far fields do not have radial components, i.e. E&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 0.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\theta}}(\theta, \phi) = \cos\theta \cos\phi E_x + \cos\theta \sin\phi E_y - \sin\theta E_z &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\phi}}(\theta, \phi) = -\sin\phi E_x + \cos\phi E_y &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM114.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM118.png|thumb|300px|[[Planar Module]]'s Radiation Pattern dialog]]&lt;br /&gt;
Even though the planar MoM engine does not need a radiation box, you still have to define a &amp;amp;quot;Far Field&amp;amp;quot; observable for radiation pattern calculation. This is because far field calculations take time and you have to instruct EM.Cube to perform these calculations. To define a far field, right click the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...'''. The Radiation Pattern Dialog opens up. You may accept the default settings, or you can change the value of '''Angle Increment''', which is expressed in degrees. You can also choose to '''Normalize 2D Patterns'''. In that case, the maximum value of a 2D paten graph will have a value of 1; otherwise, the actual far field values in V/m will be used on the graph.&lt;br /&gt;
&lt;br /&gt;
Once a planar MoM simulation is finished, three far field items are added under the Far Field item in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the &amp;amp;quot;Total&amp;amp;quot; far field. The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the whole structure or parts of it. In a 3D radiation pattern plot, the fields are always normalized to the maximum value of the total far field for visualization purpose:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM89.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM119.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D polar radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM120.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D vectorial (cone) radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
The 2D radiation pattern graphs can be plotted from EM.Cube's '''Data Manager'''. A total of eight 2D radiation pattern graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section of Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM124.png|thumb|300px|Planar Module's Radar Cross Section dialog]]&lt;br /&gt;
&lt;br /&gt;
When a planar structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields of that planar structure. EM.Cube can also calculate the radar cross section (RCS) of a planar target:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{|E_{\theta}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{|E_{\phi}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{|E_{tot}^{scat}|^2}{|E^{inc}|^2} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM123.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note that in this case the RCS is defined for a finite-sized target in the presence of an infinite background structure.''' The scattered &amp;amp;theta; and &amp;amp;phi; components of the far-zone electric field are indeed what you see in the 3D far field visualization of radiation (scattering) patterns. Instead of radiation or scattering patterns, you can instruct EM.Cube to plot 3D visualizations of &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and the total RCS. To do so, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* At the end of a planar MoM simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This fourth plane cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D mono-static radar cross section plot of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Running a Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
In a frequency sweep, the operating frequency of a planar structure is varied during each sweep run. EM.Cube's [[Planar Module]] offers two types of frequency sweep: Uniform and Adaptive. In a uniform frequency sweep, the frequency range and the number of frequency samples are specified. The samples are equally spaced over the frequency range. At the end of each individual frequency run, the output data are collected and stored. At the end of the frequency sweep, the 3D data can be visualized and/or animated, and the 2D data can be graphed in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
To run a uniform frequency sweep, open the '''Simulation Run Dialog''', and select the '''Frequency Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the frequency sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Frequency Settings''' dialog. The '''Frequency Range'''is initially set equal to your project's center frequency minus and plus half bandwidth. But you can change the values of '''Start Frequency'''and '''End Frequency''' as well as the '''Number of Samples'''. The dialog offers two options for '''Frequency Sweep Type''': '''Uniform''' or '''Adaptive'''. Select the former type. It is very important to note that in a MoM simulation, changing the frequency results in a change of the mesh of the structure, too. This is because the mesh density is defined in terms of the number of cells per effective wavelength. By default, during a frequency sweep, EM.Cube fixes the mesh density at the highest frequency, i.e., at the &amp;amp;quot;End Frequency&amp;amp;quot;. This usually results in a smoother frequency response. You have the option to fix the mesh at the center frequency of the project or let EM.Cube &amp;amp;quot;remesh&amp;amp;quot; the planar structure at each frequency sample during a frequency sweep. You can make one of these three choices using the radio button in the '''Mesh Settings''' section of the dialog. Closing the Frequency Settings dialog returns you to the Simulation Run dialog, where you can start the planar MoM frequency sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Frequency Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Adaptive Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
Frequency sweeps are often performed to study the frequency response of a planar structure. In particular, the variation of scattering parameters like S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; (return loss) and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; (insertion loss) with frequency are of utmost interest. When analyzing resonant structures like patch antennas or planar filters over large frequency ranges, you may have to sweep a large number of frequency samples to capture their behavior with adequate details. The resonant peaks or notches are often missed due to the lack of enough resolution. EM.Cube's [[Planar Module]] offers a powerful adaptive frequency sweep option for this purpose. It is based on the fact that the frequency response of a physical, causal, multiport network can be represented mathematically using a rational function approximation. In other words, the S parameters of a circuit exhibit a finite number of poles and zeros over a given frequency range. EM.Cube first starts with very few frequency samples and tries to fit rational functions of low orders to the scattering parameters. Then, it increases the number of samples gradually by inserting intermediate frequency samples in a progressive manner. At each iteration cycle, all the possible rational functions of higher orders are tried out. The process continues until adding new intermediate frequency samples does not improve the resolution of the &amp;amp;quot;S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;&amp;amp;quot; curves over the given frequency range. In that case, the curves are considered as having converged.&lt;br /&gt;
&lt;br /&gt;
You must have defined one or more ports for your planar structure run an adaptive frequency sweep. Open the Frequency Settings dialog from the Simulation Run dialog and select the '''Adaptive''' option of '''Frequency Sweep Type'''. You have to set values for '''Minimum Number of Samples''' and '''Maximum Number of Samples'''. Their default values are 3 and 9, respectively. You also set a value for the '''Convergence Criterion''', which has a default value of 0.1. At each iteration cycle, all the S parameters are calculated at the newly inserted frequency samples, and their average deviation from the curves of the last cycle is measured as an error. When this error falls below the specified convergence criterion, the iteration is ended. If EM.Cube reaches the specified maximum number of iterations and the convergence criterion has not yet been met, the program will ask you whether to continue the process or exit it and stop.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large frequency ranges, you may have to increase both the minimum and maximum number of samples. Moreover, remeshing the planar structure at each frequency may prove more practical than fixing the mesh at the highest frequency.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Settings adaptive frequency sweep parameters in [[Planar Module]]'s Frequency Settings Dialog.&lt;br /&gt;
&lt;br /&gt;
=== Examining Port Characteristics ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure is excited by gap sources or probe sources or de-embedded sources, and one or more ports have been defined, the planar MoM engine calculates the scattering, impedance and admittance (S/Z/Y) parameters of the designated ports. The scattering parameters are defined based on the port impedances specified in the project's Port Definition dialog. If more than one port has been defined in the project, the S/Z/Y matrices of the multiport network are calculated. Note that the S/Z/Y matrices of an N-port structure are related to each other through the following equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM121.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively, and &amp;lt;math&amp;gt;\mathbf{[\sqrt{Z_0}]}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM122.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the values of S/Z/Y parameters and VSWR data are calculated and reported in the output message window. The S, Z and Y parameters are written into output ASCII data files of complex type with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Every file begins with a header consisting of a few comment lines that start with the &amp;amp;quot;#&amp;amp;quot; symbol. The complex values are arranged into two columns for the real and imaginary parts. In the case of multiport structures, every single element of the S/Z/Y matrices is written into a separate complex data file. For example, you will have data files like S11.CPX, S21.CPX, ..., Z11.CPX, Z21.CPX, etc. The VSWR data are saved to an ASCII data file of real type with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension called, VSWR.DAT.&lt;br /&gt;
&lt;br /&gt;
If you run an analysis, the port characteristics have single complex values, which you can view using EM.Cube's data manager. However, there are no curves to graph. You can plot the S/Z/Y parameters and VSWR data when you have data sets, which are generated at the end of any type of sweep including a frequency sweep. In that case, the &amp;amp;quot;.CPX&amp;amp;quot; files have multiple rows corresponding to each value of the sweep parameter (e.g. frequency). EM.Cube's 2D graph data are plotted in EM.Grid, a versatile graphing utility. You can plot the port characteristics directly from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting port characteristics data to plot from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
You can also see a list of all the port characteristics data files in EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. By default, the S parameters are plotted as double magnitude-phase graphs, while the Y and Z parameters are plotted as double real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You can change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM129.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Data Manager showing a list of the port characteristics data files.&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it in the Data Manager and click its '''Edit''' button. In the Edit File Dialog, choose one of the options provided in the dropdown list labeled '''Graph Type'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM130.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Changing the graph type by editing a data file's properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM134.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plotted on a Smith Chart graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
=== Rational Interpolation Of Scattering Parameters ===&lt;br /&gt;
&lt;br /&gt;
The adaptive frequency sweep described earlier is an iterative process, whereby the Planar MoM simulation engine is run at a certain number of frequency samples at each iteration cycle. The frequency samples are progressively built up, and rational fits for these data are found at each iteration cycle. A decision is then made whether to continue more iterations. At the end of the whole process, a total number of scattering parameter data samples have been generated, and new smooth data corresponding to the best rational fits are written into new data files for graphing. EM.Cube's [[planar Module]] also allows you to generate a rational fit for all or any existing scattering parameter data as a post-processing operation without a need to run additional simulation engine runs.&lt;br /&gt;
&lt;br /&gt;
You can interpolate all the scattering parameters together or select individual parameters. You do this post-processing operation from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select Smart Fit. At the top of the Smart Fit Dialog, there is a dropdown list labeled '''Interpolate''', which gives a list of all the available S parameter data for rational interpolation. The default option is &amp;amp;quot;All Available Parameters&amp;amp;quot;. Then you see a box labeled '''Number of Available Samples''', whose value is read from the data content of the selected complex .CPX data file. Based on the number of available data samples, the dialog reports the '''Maximum Interpolant Order'''. You can choose any integer number for '''Interpolant Order''', from 1 to the maximum allowed. &lt;br /&gt;
&lt;br /&gt;
{{Note|Interpolant order more than 15 will suffer from numerical instabilities even if you have a very large number of data samples.}}&lt;br /&gt;
&lt;br /&gt;
You can use the '''Update''' button of the dialog to generate the interpolated data for a given order. The new data are written to a complex data file with the same name as the selected S parameter and a &amp;amp;quot;'''_RationalFit'''&amp;amp;quot; suffix. While this dialog is still open, you can plot the new data either directly from the Navigation Tree or from the Data Manager. If you are not satisfied with the results, you can return to the Smart Fit dialog and try a higher or lower interpolant order and compare the new data.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM131.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Smart Fit dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM133(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of a two-port structure in magnitude-phase format.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM132(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The smoothed version of the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of the two-port structure using EM.Cube's Smart Fit.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Output Simulation Data ===&lt;br /&gt;
&lt;br /&gt;
Depending on the source type and the types of observables defined in a project, a number of output data are generated at the end of a planar MoM simulation. Some of these data are 2D by nature and some are 3D. The output simulation data generated by EM.Cube's [[Planar Module]] can be categorized into the following groups:&lt;br /&gt;
&lt;br /&gt;
* '''Port Characteristics''': S, Z and Y Parameters and Voltage Standing Wave Ratio (VSWR)&lt;br /&gt;
* '''Radiation Characteristics''': Radiation Patterns, Directivity, Total Radiated Power, Axial Ratio, Main Beam Theta and Phi, Radiation Efficiency, Half Power Beam Width (HPBW), Maximum Side Lobe Level (SLL), First Null Level (FNL), Front-to-Back Ratio (FBR), etc.&lt;br /&gt;
* '''Scattering Characteristics''': Bi-static and Mono-static Radar Cross Section (RCS)&lt;br /&gt;
* '''Periodic Characteristics''': Reflection and Transmission Coefficients&lt;br /&gt;
* '''Current Distributions''': Electric and magnetic current amplitude and phase on all metal and slot traces and embedded objects&lt;br /&gt;
* '''Near-Field Distributions''': Electric and magnetic field amplitude and phase on specified planes and their central axes&lt;br /&gt;
&lt;br /&gt;
At the end of an analysis, the 2D quantities usually have a single value that is written into an ASCII data file. Complex-valued quantities are written into complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Real-valued quantities are written into real data files with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension. Polar 2D radiation pattern data and some other radiation characteristics are written into angular data files with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; extension. In this latter file type, polar data are stored as functions of an angle expressed in degrees. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). If a sweep simulation involves N sweep [[variables]], then the first N columns of the output data files show the samples of those sweep [[variables]]. All the 2D data files are listed in the '''2D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
3D output data, on the other hand, are defined as functions of the space coordinates and are usually of vectorial nature. Cartesian-type and mesh-type data such as current distributions and near-field field distributions are expressed as functions of the Cartesian (X, Y, Z) coordinates. Spherical-type data like far-field radiation patterns and RCS are expressed as functions of the spherical angles (&amp;amp;theta;, &amp;amp;phi;). The 3D radiation patterns are written into a file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension. This file contains the complex values of the &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field (E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;) as well as the total far field magnitude as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The 3D RCS patterns are written into a file with a &amp;amp;quot;'''.RCS'''&amp;amp;quot; extension. This file contains the real values of the &amp;amp;theta;- and &amp;amp;phi;-polarized RCS values as well as the total RCS as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The current distributions are written into data files with a &amp;amp;quot;'''.CUR'''&amp;amp;quot; extension. They contain the real and imaginary parts of the X, Y and Z components of electric ('''J''') and magnetic ('''M''') current on each cells together with the definition of all the node coordinates and node indices of the cells. The near-field distributions are written into data files with a &amp;amp;quot;'''.SEN'''&amp;amp;quot; extension. They contain the amplitude and phase of the X, Y and Z components of electric ('''E''') and magnetic ('''H''') fields as functions of the coordinates of sampling points. All the 3D data files are listed in the '''3D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The 3D Data Files tab of EM.Cube's Data Manager.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM139.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Viewing the contents of a mesh-type 3D data file in Data Manager.&lt;br /&gt;
&lt;br /&gt;
=== Standard vs. Custom Output ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a number of computed quantities are designated as &amp;amp;quot;Standard Output&amp;amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[File:functions_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Functions...'''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[File:custom_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Custom Output...'''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add''' button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit''' button, or you can delete any parameter from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
=== Viewing &amp;amp;amp; Visualizing Various Output Data Types ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a variety of 2D and 3D output data are generated. Some of these can be visualized or graphed directly from the Navigation Tree, while the others can only be accessed from the Data Manager. All of EM.Cube's simulation data are always written into ASCII data files that you can open and inspect or edit. Lists of these 2D and 3D data files appear under Data Manager's various tabs. The generated data also include all of [[Planar Module]]'s legitimate standard outputs that the simulation engine can compute given the specified source and observable types as well as all of your own previously defined custom output parameters. Note that in this release of EM.Cube, all the custom outputs are real-type data. Each custom output is written into a separate real data file with the same name as the parameter's given label and a &amp;amp;quot;'''.DAT'''&amp;amp;quot; file extension. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot its graph in '''EM.Grid'''. You can also view the contents of a data file by selecting its row in th file list and clicking the '''View''' button of the dialog or by simply double-clicking the highlighted row. This opens up a new window containing a convenient spreadsheet that gives a tabular view of the contents of the selected data file. There are a large number of data operations and manipulations that you can perform on the data content including matrix, calculus and statistical calculations as well as computing and plotting new datasets using the &amp;amp;quot;Compute&amp;amp;quot; feature of the spreadsheet. You can make multiple file selection using the keyboard's '''Ctrl''' and '''Shift''' keys.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing an angular file selected and highlighted for further action.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Data Manager's spreadsheet showing the contents of an angular data file.&lt;br /&gt;
&lt;br /&gt;
The 2D output data include real or complex quantities like various port, radiation, scattering and periodic characteristics. At the end of an analysis, most .CPX and .DAT data files have a single complex or real value, respectively. in other words, there are no curves to plot. Exceptions are Cartesian 2D radiation pattern or RCS data files along the principal and user define phi-cut planes, as well as polar 2D radiation pattern or RCS data files of angular type with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; file extension. These files contain the radiation pattern or RCS data as a function of some relevant angle in the specified plane. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). You can plot graphs of the 2D output data files that contain more than one row in '''EM.Grid'''. Each data file has a default graph type. Real data are plotted on EM.Grid's Cartesian graphs. Complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension are plotted on double Cartesian graphs of &amp;amp;quot;'''Magnitude-Phase'''&amp;amp;quot; type, showing the magnitude in dB and phase in radians. You can change the complex data's graph type to the &amp;amp;quot;'''Real-Imaginary'''&amp;amp;quot; or &amp;amp;quot;'''Smith Chart'''&amp;amp;quot; by selecting its entry in the Data Manager and clicking the '''Edit'''button to open the &amp;amp;quot;Edit File Properties Dialog&amp;amp;quot;. Angular data files like polar 2D radiation patterns or RCS, by default, are plotted on EM.Grid's &amp;amp;quot;'''Polar'''&amp;amp;quot; graphs. Note that real data can be graphed on bar charts, too, just as angular can alternatively be graphed on polar stem charts.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM142.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A 2D radiation pattern polar graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's 3D output simulation data usually have a vectorial nature and are defined as functions of the Cartesian or spherical space coordinates. At the end of a planar MoM simulation, you can view 3D visualizations of the vectorial output data such as current distributions, near-field field distributions, far-field radiation patterns and RCS in EM.Cube's project workspace by clicking on the corresponding observable entries in the Navigation Tree. When you run a sweep simulation of some sort, multiple 3D plots appear on the Navigation Tree representing all the sweep variable samples. You can animate these 3D visualization plots very conveniently from the Navigation Tree. To do so, right click on an observable's name in the Navigation Tree and select the '''Animation''' item from the contextual menu. Make sure that you right click on the observable's parent node, not on one of its child components corresponding to the sweep variable samples. The 3D plot in the project workspace starts to animate and continues forever until to stop it. A new window called &amp;amp;quot;''' Animation Controls Dialog'''&amp;amp;quot; opens up at the lower right corner of the EM.Cube desktop. This dialog allows you to control the animation speed using a box labeled '''Rate''', whose value multiplied by 100 milliseconds indeed gives the frame duration. You can speed up the animation or slow it down from the default rate of one frame per 300ms. The box labeled '''Sample''' show the current frame's plot label at any time. You can pause the animation, rewind it to the first frame, fast-forward it to the last frame or manually step it through back and forth using the movement buttons marked with the symbols |&amp;amp;lt;, &amp;amp;lt;&amp;amp;lt;, ||, &amp;amp;gt;&amp;amp;gt;,&amp;amp;gt;|.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM135.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Animating 3D radiation patterns as the send of a frequency sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM136.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep ===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the planar MoM simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweep, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed later, parametric sweeps are simple and straightforward and do not required careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;amp;quot;expression&amp;amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;amp;quot;formal&amp;amp;quot; option, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[File:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; [[Variables]]...'''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;amp;quot;Add Variable Dialog&amp;amp;quot;. Choose a '''Name''' for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;amp;quot;Variable List&amp;amp;quot;. You can also see the '''Current Value''' of every variable at any time in the Variable as dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit''' button or indirectly during a parametric sweep. In the former case, you have to click the '''Update''' button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, trace and object set dialogs, stack-up dialog or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;amp;quot;Variable List&amp;amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;amp;quot;current Value&amp;amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;amp;quot;Independent&amp;amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete''' and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;amp;quot;Start&amp;amp;quot; and &amp;amp;quot;End&amp;amp;quot; value and is incremented by a predetermined &amp;amp;quot;Step&amp;amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution''' is defined by &amp;amp;quot;Minimum&amp;amp;quot; and &amp;amp;quot;Maximum&amp;amp;quot; values, while '''Normal (Gaussian) Distribution''' is defined by a &amp;amp;quot;Mean&amp;amp;quot; and &amp;amp;quot;Standard Deviation&amp;amp;quot;. You need to specify the &amp;amp;quot;Number of Samples&amp;amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;amp;quot;Define Sweep Variable Dialog&amp;amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete''' and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up''' and '''Move Down''' buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;amp;quot;fake&amp;amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. If you run a dry run while EM.Cube is in the mesh view mode, then the planar mesh of your structure is updated for each combination of the sweep variable samples during the dry run process. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Optimizing Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (Optional but Highly Recommended) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;amp;lt;, &amp;amp;lt;=, &amp;amp;gt; or &amp;amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;amp;quot;'''=='''&amp;amp;quot; are regarded a &amp;amp;quot;'''Goals'''&amp;amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;amp;quot;'''Target Value'''&amp;amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;amp;quot;(LHS - RHS) == 0&amp;amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;amp;quot;non-Equal&amp;amp;quot; logical operators are regarded a &amp;amp;quot;'''Constraints'''&amp;amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[File:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;amp;quot;=== (Equal To)&amp;amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit''' button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation Run Dialog''', and select the '''[[Optimization]]''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;amp;quot;'''[[Optimization]] Algorithm'''&amp;amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm''' and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size''' as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;amp;quot;Define [[Optimization]] Variable Dialog&amp;amp;quot; opens up, where you have to set the '''Minimum'''and '''Maximum'''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog to change those value. If you check the box labeled &amp;amp;quot;''' Update [[Variables]] with Optimal Values'''&amp;amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;amp;quot;saturated&amp;amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;amp;quot;'''Exit Local Min Trap'''&amp;amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;amp;quot;'''Error Function'''&amp;amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;amp;quot;'''Maximum Error'''&amp;amp;quot; value for the objective function, which terminates the process as &amp;amp;quot;converged&amp;amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals''' and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those cases, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute''' button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals''' or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
== Periodic Planar Structures &amp;amp;amp; Antenna Arrays ==&lt;br /&gt;
&lt;br /&gt;
=== Finite Arrays vs. Infinite Periodic Structures ===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that exhibits a repeated geometric pattern. It is made up of identical elements that are arranged in the form of a periodic lattice. The spacing between the elements is denoted by Sx along the X direction and Sy along the Y direction. The number of elements is denoted by Nx along the X direction and Ny along the Y direction (i.e. a total of Nx.Ny elements). If Nx and Ny are finite numbers, you have a finite-sized periodic structure, which is constructed using an &amp;amp;quot;'''Array Object'''&amp;amp;quot; in EM.Cube. If Nx and Ny are infinite, you have an infinite periodic structure with periods Sx and Sy along the X and Y directions, respectively. An infinite periodic structure in EM.Cube is represented by a &amp;amp;quot;'''Periodic Unit Cell'''&amp;amp;quot;. Periodic structures have many applications including phased array antennas, frequency selective surfaces (FSS), electromagnetic bandgap structures (EBG), metamaterial structures, etc. EM.Cube allows you to model both finite and infinite periodic structures.&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; Real practical periodic structures obviously have finite extents. You can easily and quickly construct finite-sized arrays of arbitrary complexity using EM.Cube's &amp;amp;quot;Array Tool&amp;amp;quot;. However, for large values of Nx and Ny, the size of the computational problem may rapidly get out of hand and become impractical. For very large periodic arrays, you can alternatively analyze a unit cell subject to the periodic boundary conditions and calculate the current distribtutions and far fields of the periodic unit cell. For their radiation patterns, you can multiply the &amp;amp;quot;Element Pattern&amp;amp;quot; by an &amp;amp;quot;Array Factor&amp;amp;quot; that captures the finite extents of the structure. In many cases, an approximation of this type works quite well. But in some other cases, the edge effects and particularly the field behavior at the corners of the finite-sized array cannot be modeled accurately. Periodic surfaces like FSS, EBG and metamaterials are also modeled as infinite periodic structures, for which one can define reflection and transmission coefficients. For this purpose, the periodic structure is excited using a plane wave source. Reflection and transmission coefficients are typically functions of the angles of incidence.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
The straightforward approach to the modeling of finite-sized antenna arrays is to use the full-wave method of moments (MoM). This requires building an array of radiating elements using EM.Cube's '''Array Tool''' and feeding the individual array elements using some type of excitation. For example, if the antenna elements are excited using a gap source or a probe source, you can assign a certain array weight distribution among the elements as well as phase progression among the elements along the X and Y directions. EM.Cube currently offers uniform, binomial, Chebyshev and (arbitrary) data file-based weight distribution types. The full-wave MoM approach is very accurate and takes into account all the inter-element coupling effects. At the end of a planar MoM simulation of the array structure, you can plot the radiation patterns and other far field characteristics of the antenna array just like any other planar structure.&lt;br /&gt;
&lt;br /&gt;
The radiation pattern of antenna arrays usually has a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' such as first null level and first null beam width. To have EM.Cube calculate all such parameters, you must check the relevant boxes in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. In particular, you can plot such data files at the end of a sweep simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM91.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
Another approach to modeling a finite-sized antenna array is to analyze one of its elements and use the &amp;amp;quot;Array Factor&amp;amp;quot; concept to calculate its radiation patterns. This method ignores any inter-element coupling effects. In other words, you can regard the structure in the project workspace as a single isolated radiating element. To define an array factor, open the '''Radiation Pattern Dialog''' of the project. In the section titled &amp;amp;quot;'''Impose Array Factor'''&amp;amp;quot;, you will see a default value of 1 for the '''Number of Elements''' along the X and Y directions. This implies a single radiator, representing the structure in the project workspace. There are also default zero values for the '''Element Spacing''' along the X and Y directions. You should change both the number of elements and element spacing in the X and Y directions to define a finite array lattice. For example, you can define a linear array by setting the number of elements to 1 in one direction and entering a larger value for the number of elements along the other direction. Keep in mind that when using an array factor for far field calculation, you cannot assign non-uniform amplitude or phase distributions to the array elements. For that purpose, you have to define an array object with a source array.&lt;br /&gt;
&lt;br /&gt;
=== Defining A Periodic Domain ===&lt;br /&gt;
&lt;br /&gt;
In general, a planar structure in EM.Cube's [[Planar Module]] is assumed to have open boundaries. This means that the structure has infinite dimensions along the X and Y directions. In other words, the layers of the background structure extend to infinity, while the traces and embedded object sets have finite sizes. Along the Z direction, a planar structure can be open-boundary, or it may be truncated by PEC ground planes from the top or bottom or both. You can define a planar structure to be infinitely periodic along the X and Y directions. In this case, you only need to define the periodic unit cell. EM.Cube automatically reproduces the unit cell infinitely and simulates it using a spectral domain periodic version of the Green's functions of your project's background structure.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, you must open [[Planar Module]]'s Periodicity Settings Dialog by right clicking the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Periodicity Settings...''' from the contextual menu or by selecting '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt; 'Computational Domain &amp;amp;gt; Periodicity Settings...''' from the Menu Bar. In the Periodicity Settings Dialog, check the box labeled '''Periodic Structure'''. This will enable the section titled''&amp;amp;quot;''Lattice Properties&amp;amp;quot;. You can define the periods along the X and Y axes using the boxes labeled '''Spacing'''. You can also define values for periodic '''Offset''' along the X and Y directions, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
In a periodic structure, the virtual domain is replaced by a default blue periodic domain that is always centered around the origin of coordinates. Keep in mind that the periodic unit cell must always be centered at the origin of coordinates. The relative position of the structure within this centered unit cell will change the phase of the results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM99.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Regular vs. Generalized Periodic Lattices ===&lt;br /&gt;
&lt;br /&gt;
Besides conventional rectangular lattices, EM.Cube's [[Planar Module]] can also handle complex non-rectangular periodic lattices. For example, many frequency selective surfaces have skewed grids. In order to simulate skewed-grid periodic structures, the definition of the grid has to be generalized. A periodic structure is a repetition of a basic structure (unit cell) at pre-determined locations. Let these locations be described by (x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;, y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;), where m and n are integers ranging from -8 to 8. For a general skewed grid, x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; and y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; can be described by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; x_{mn} = m\Delta x + n \Delta x' \\&lt;br /&gt;
&amp;amp; y_{mn} = m\Delta y + n \Delta y'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; is the primary offset in the X direction (X Spacing) controlled by index m and &amp;lt;math&amp;gt;\Delta x'&amp;lt;/math&amp;gt; is the secondary offset in the X direction (X Offset) controlled by index n. The meanings of &amp;lt;math&amp;gt;\Delta y&amp;lt;/math&amp;gt; (Y Spacing) and &amp;lt;math&amp;gt;\Delta y'&amp;lt;/math&amp;gt; (Y Offset) are similar with the roles of indices m and n interchanged. To illustrate how to use this definition, consider an example of an equilateral triangular grid with side length L as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:image121.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of an equilateral triangular periodic lattice.&lt;br /&gt;
&lt;br /&gt;
From the figure, it is obvious that the y coordinate of each row is fixed and identical, thus &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. While in each row the spacing between adjacent elements is L, there is an offset of L/2 between the consecutive rows. This results in &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;. To sum up, an equilateral triangular grid can be described by &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. In an EM.Cube [[Planar Module]] project, the secondary offsets are equal to zero by default, implying a rectangular lattice. You can change the values of the secondary offsets using the boxes labeled '''X Offset''' and '''Y Offset''' in the '''Periodicity Settings Dialog''', respectively. Triangular and Hexagonal lattices are popular special cases of the generalized lattice type. In a triangular lattice with alternating Rows, &amp;lt;math&amp;gt;\Delta x' = \Delta x/2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. A Hexagonal lattice (with alternating rows) is a special case of triangular lattice in which &amp;lt;math&amp;gt;\Delta y = \sqrt{3\Delta x / 2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Interconnectivity Among Unit Cells ===&lt;br /&gt;
&lt;br /&gt;
In many cases, your planar structure's traces or embedded objects are entirely enclosed inside the periodic unit cell and do not touch the boundary of the unit cell. In EM.Cube's [[Planar Module]], you can define periodic structures whose unit cells are interconnected. Interconnectivity applies only to PEC, PMC and conductive sheet traces, and embedded object sets are excluded. Note that in a periodic planar structure, your objects cannot cross the periodic domain. However, you can arrange objects with linear edges such as one or more flat edges line up with the domain's bounding box. In such cases, EM.Cube's planar MoM mesh generator will take into account the continuity of the currents across the adjacent connected unit cells and will create the connection basis functions at the right and top boundaries of the unit cell. It is clear that due to periodicity, the basis functions do not need to be extended at the left or bottom boundaries of the unit cell.&lt;br /&gt;
&lt;br /&gt;
As an example, consider the periodic structure in the figure below that shows a metallic screen or wire grid. The unit cell of this structure can be defined as a rectangular aperture in a PEC ground plane (marked as Unit Cell 1). In this case, the rectangle object is defined as a slot trace. Alternatively, you can define a unit cell in the form of a microstrip cross on a metal trace. In the latter case, however, the microstrip cross should extend across the unit cell and connect to the crosses in the neighboring cells in order to provide current continuity.&lt;br /&gt;
&lt;br /&gt;
[[File:image122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Modeling a periodic screen using two different types of unit cell.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per3_tn.png|400px]] [[File:pmom_per4_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The PMC aperture unit cell and its planar mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per5_tn.png|400px]] [[File:pmom_per6_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The PEC cross unit cell and its planar mesh. Notice the cell extensions at the unit cell's boundaries.&lt;br /&gt;
&lt;br /&gt;
=== Periodic MoM Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the case of an infinite periodic planar structure, the field equations can be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E(r) = E^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{H(r) = H^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM94.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J_{mn}(r) = J_{mn}}(x,y,z) = \mathbf{J_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{M_{mn}(r) = M_{mn}}(x,y,z) = \mathbf{M_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; -\infty &amp;lt; m, n &amp;lt; \infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM95(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, &amp;lt;math&amp;gt;\mathbf{J_{00}(r)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{M_{00}(r)}&amp;lt;/math&amp;gt; are the periodic unit cell's electric and magnetic currents that are repeated everywhere in space on a rectangular lattice with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. &amp;lt;math&amp;gt;k_{x00}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;k_{y00}&amp;lt;/math&amp;gt; are the periodic propagation constants along the X and Y directions, respectively, and they are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{x00} = k_0 \sin\theta \cos\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{y00} = k_0 \sin\theta \sin\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM96(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;theta; and &amp;amp;phi; are the beam scan angles in the case of periodic excitation of lumped sources, or they are the spherical angles of incidence in the case of a plane wave source illuminating the periodic structure. Using the infinite summations, one can define periodic dyadic Green's functions in the spectral domain in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ \overline{\overline{G}}_{\mu \nu}^{PER} (r|r') } =&lt;br /&gt;
\frac{1}{S_x S_y} \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\mathbf{ \tilde{\overline{\overline{G}}}_{\mu \nu} } (k_x, k_y, z|z')&lt;br /&gt;
e^{-j[k_{xm}(x-x') + k_{yn}(y-y')]}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
k_{xm} = k_{x00} + \frac{2\pi m}{S_x} \quad \text{and} \quad&lt;br /&gt;
k_{ym} = k_{y00} + \frac{2\pi m}{S_y}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM97.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above doubly infinite periodic Green's functions are said to be expressed in terms of &amp;amp;quot;Floquet Modes&amp;amp;quot;. The exact formulation involves an infinite set of these periodic Floquet modes. During the MoM matrix fill process for a periodic structure, a finite number of Floquet modes are calculated. By default, EM.Cube's planar MoM engine considers M&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; = M&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; = 25. This implies a total of 51 modes along the X direction and a total of 51 modes along the Y direction, or a grand total of 51&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 2,601 Floquet modes. You can increase the number of Floquet modes for your project from the Planar MoM Engine Settings Dialog. In the section titled &amp;amp;quot;Periodic Simulation&amp;amp;quot;, you can change the values of '''Number of Floquet Modes''' in the two boxes designated X and Y.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM98.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Changing the number of Floquet modes from the Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Phased Arrays ===&lt;br /&gt;
&lt;br /&gt;
Earlier, it was argued that you can calculate the radiation pattern of a finite antenna array by modeling a single isolated element and multiplying its &amp;amp;quot;Element Pattern&amp;amp;quot; by the &amp;amp;quot;Array Factor&amp;amp;quot;. This method gives acceptable results only when the inter-element coupling effects are negligible, as it does not take into account such effects. Planar antennas printed on dielectric substrates usually exhibit inter-element coupling effects due to the propagation of the substrate surface wave modes. If your finite-sized array is very large and you cannot afford a straightforward full-wave MoM simulation of it, you can alternatively model it as an infinite array represented by a periodic unit cell. In this case, you calculate the radiation pattern of the unit cell structure and use it as the &amp;amp;quot;Element Pattern&amp;amp;quot; in conjunction with the &amp;amp;quot;Array Factor&amp;amp;quot;. The periodic Green's functions, in this case, capture the inter-element coupling effects. What is missing from this picture is the finite edge effects and/or corner effects, if any.&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a gap or probe source, it acts like an infinite periodic phased array. All the periodic replicas of the unit cell structure are excited. You can even impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the gap or probe source. At the bottom of the '''Gap Source Dialog''' or '''Probe Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. You can enter desired values for '''Theta''' and '''Phi''' beam scan angles in degrees. The corresponding phase progressions are calculated and applied to the periodic Green's functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\Psi_x = -\frac{2\pi S_x}{\lambda_0} \sin\theta \cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\Psi_y = -\frac{2\pi S_y}{\lambda_0} \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you have to define a finite-sized array factor in the Radiation Pattern dialog. You do this in the '''Impose Array Factor''' section of this dialog. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of '''Element Spacing''' along the X and Y directions are automatically set equal to the value of '''Periodic Lattice Spacing''' along those directions. You have to set the '''Number of Elements''' along the X and Y directions, which are both equal to one initially, representing a single radiator. If you forget to define an array factor, the radiation pattern of the unit cell structure will be displayed, which does not show beam scanning.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM100.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the periodic scan angles in [[Planar Module]]'s Gap Source dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per9_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The 3D radiation pattern of a beam-steered periodic printed dipole array.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Periodic Structures Using Plane Waves ===&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a plane wave source, it acts as a periodic surface that reflects or transmits the incident wave. You can model frequency selective surfaces, electromagnetic band-gap structures and metamaterials in this way. EM.Cube calculates the reflection and transmission coefficients of periodic surfaces or planar structures. If you run a single plane wave simulation, the reflection and transmission coefficients are reported in the Output Window at the end of the simulation. Note that these periodic characteristics depend on the polarization of the incident plane wave. You set the polarization (TMz or TEz) in the '''Plane Wave Dialog''' when defining your excitation source. In this dialog you also set the values of the incident '''Theta''' and '''Phi''' angles.&lt;br /&gt;
&lt;br /&gt;
At the end of the planar MoM simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. As a result, you can run an adaptive sweep of periodic structures with a plane wave source just like projects with gap or probe sources. The reflection and transmission (R/T) coefficients can be plotted in EM.Grid on 2D graphs similar to the S parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
{{Note|In the absence of any finite traces or embedded objects in the project workspace, EM.Cube computes the reflection and transmission coefficients of the layered background structure of your project.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM102.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A periodic planar layered structure with slot traces excited by a normally incident plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Characterizing Periodic Surfaces Using Angular Sweeps ===&lt;br /&gt;
&lt;br /&gt;
The reflection and transmission characteristics of a period surface as functions of the incidence angle are often of great interest. For that purpose, you can run an angular sweep of your periodic structure, where you normally fix the &amp;amp;phi; angle and sweep the &amp;amp;theta; angle from 180 to 90 degrees for one-sided surfaces and from 180 to 0 degrees for two-sided surface. To run an angular sweep, open the [[Planar Module]]'s '''Simulation Run Dialog''' and select the '''Angular Sweep''' option from its '''Simulation Mode''' dropdown list. This enables the '''Settings''' button, which opens up the '''Angle Settings Dialog'''. First, you must choose either Theta or Phi as the '''Sweep Angle'''. Then you can set the '''Start''' and '''End''' values of the selected incidence angle as well as the '''Number of Samples'''. At the end of an angular sweep simulation, you can plot the reflection and transmission coefficients from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The reflection and transmission coefficients of the structure are saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM103.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Structures Using Adaptive Frequency Sweeps ===&lt;br /&gt;
&lt;br /&gt;
You learned earlier how to use EM.Cube's powerful, adaptive frequency sweep utility to study the frequency response of a planar structure. Adaptive frequency sweep uses rational function interpolation to generate smooth curves of the scattering parameters with a relatively small number of full-wave simulation runs in a progressive manner. Therefore, you need a port definition in your planar structure to be able to run an adaptive frequency sweep. This is clear in the case of an infinite periodic phased array, where your periodic unit cell structure must be excited using either a gap source or a probe source. You run an adaptive frequency sweep of an infinite periodic phased array in exactly the same way to do for regular, aperiodic, planar structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar Modules also allows you to run an adaptive frequency sweep of periodic surfaces excited by a plane wave source. In this case, the planar MoM engine calculates the reflection and transmission coefficients of the periodic surface. Note that you can conceptually consider a periodic surface as a two-port network, where Port 1 is the top half-space and Port 2 is the bottom half-space. In that case, the reflection coefficient R is equivalent to S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter, while the transmission coefficient T is equivalent to S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameter. This is, of course, the case when the periodic surface is illuminated by the plane wave source from the top half-space, corresponding to 90°&amp;amp;lt; &amp;amp;theta; = 180°. You can also illuminate the periodic surface by the plane wave source from the bottom half-space, corresponding to 0° = &amp;amp;theta; &amp;amp;lt; 90°. In this case, the reflection coefficient R and transmission coefficient T are equivalent to S&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;12&amp;lt;/sub&amp;gt; parameters, respectively. Having these interpretations in mind, EM.Cube enables the &amp;amp;quot;'''Adaptive Frequency Sweep'''&amp;amp;quot; option of the '''Frequency Settings Dialog''' when your planar structure has a periodic domain together with a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite-Sized Periodic Arrays Using NCCBF Technique ===&lt;br /&gt;
&lt;br /&gt;
Previously, you saw how the concept of &amp;amp;quot;Array Factor&amp;amp;quot; is used to approximate the far field radiation pattern of a finite-sized array of radiators. The total radiation pattern can be expressed as the product of the array factor and the &amp;amp;quot;Element Pattern&amp;amp;quot;. The array factor captures the topology of the array lattice and depends on the number of elements along the X and Y directions as well as the element spacing along those directions. As for the choice of element pattern, you saw two extreme cases. In the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; option, you compute the radiation pattern of a single stand-alone radiator and completely ignore any coupling effects from the neighboring elements. This option is readily available in the Radiation Pattern Dialog of the Far Field observable. In the &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; option, you analyze a periodic version of the radiating element with periods equal to the element spacing. The computed radiation pattern of the periodic unit cell in this case captures the coupling effects from an infinite number of elements.&lt;br /&gt;
&lt;br /&gt;
The array factor approach works well when the inter-element coupling is negligible or when the array contains a very large number of elements. However, finite edge and corner effects cannot be modeled accurately using a simple array factor. A full-wave approach is needed where all the elements are discretized properly, and their interactions are incorporated into the final solution. EM.Cube's Planar MoM simulation engine lets you analyze finite-sized antenna arrays in a rigorous, full-wave manner. As you saw earlier, you can even introduce a source array with arbitrary (amplitude and phase) weights and realize a complex, non-uniformly excited, finite-sized antenna array. Note that if the array contains a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; . N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; elements, and each radiating element involves a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; vectorial basis functions, the numerical solution of the problem will produce a system of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;linear equations. As an example, consider a rectangular patch antenna element that involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. Now consider a not-so-large, 8 × 8 array of these patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. The resulting linear system will have an enormous size of N = 30,720. Keep in mind that, unlike the sparse matrices of the Finite Element Method (FEM), MoM linear systems are dense by nature and typically ill-conditioned. The inversion of dense matrices of such sizes or larger takes a significant amount of computation time even if you use fast iterative solvers.&lt;br /&gt;
&lt;br /&gt;
EMAG Technologies Inc. has recently developed a novel technique, called '''Numerically Constructed Characteristic Basis Functions (NCCBF)''', which generates physics-based entire-domain basis functions for the elements of a finite-sized array. These &amp;amp;quot;sophisticated&amp;amp;quot; basis functions are linear combinations of the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; solutions and &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; solutions. Unlike the array factor method, which is a post-processing calculation of far-field data, the NCCBF method generate a full-wave MoM solution with entire-domain basis functions. Considering the same example of the patch antenna array discussed earlier, the NCCBF method generates a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 4 entire-domain basis functions on each patch element: an isolated X-directed solution, a periodic X-directed solution, an isolated Y-directed solution, and a periodic Y-directed solution. The same approach applies equally well to triangular RWG basis functions and is not limited to rectangular cells. As a result, the new MoM linear system has a dimension of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = (4)(64) = 256. In other words, the NCCBF method compresses the original MoM matrix of size N = 30,720 to one of significantly reduced size N = 256 (i.e. a compression factor of 120x).&lt;br /&gt;
&lt;br /&gt;
=== Running a NCCBF Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the current release of EM.Cube's [[Planar Module]], the NCCBF MoM solver works with any number of distinct, finite-sized arrays if they are excited with one of the following three source types:&lt;br /&gt;
&lt;br /&gt;
# Gap Sources&lt;br /&gt;
# Probe Sources&lt;br /&gt;
# Plane Wave Sources&lt;br /&gt;
&lt;br /&gt;
Note that you can have several coexisting finite arrays with different element spacings (or different periodicities). You can also have regular (aperiodic) objects coexisting with your collection of finite arrays. In that case, the NCCBF process will create entire-domain basis functions for the elements of the finite arrays, while the regular method of moments will apply to the aperiodic portions of your planar structure. This flexibility makes NCCBF a very versatile and powerful technique.&lt;br /&gt;
&lt;br /&gt;
There are a few rules that must be followed and observed when planning a NCCBF simulation. '''Each finite-sized array must be constructed using an EM.Cube &amp;amp;quot;Array Object&amp;amp;quot;. Additionally, each array object must stand alone in a dedicated trace or embedded object set of its own.''' In other words, if an array object belongs to a trace or embedded object set that contains other objects, it will be excluded from the NCCBF process and will get a regular MoM treatment. Keep in mind that [[Planar Module]] allows you to define different traces located at the same Z-plane, although the objects belonging to these separate traces cannot be connected to one another according to the planar meshing rules. Similarly, you can define two or more PEC via sets hosted by the same substrate layer. Therefore, if your planar structure contains finite arrays and aperiodic objects, you have to group them into separate traces or embedded object sets.&lt;br /&gt;
&lt;br /&gt;
To run an NCCBF simulation, open the '''Simulation Run Dialog''', and then open the'''Planar MoM Engine Settings Dialog'''. In the &amp;amp;quot;'''Finite Array Simulation'''&amp;amp;quot; section of the latter dialog, check the box labeled &amp;amp;quot;'''NCCBF Matrix Compression'''&amp;amp;quot;. This box is unchecked by default. Checking it enables the NCCBF Settings button. Click this button to open the NCCBF Settings Dialog. The dialog features a &amp;amp;quot;List of Unit Cells Used for NCCBF Matrix Compression&amp;amp;quot;. This list initially empty. To add unit cells to it, click the '''Add''' button of the dialog to open the &amp;amp;quot;'''Add Unit Cell Dialog'''&amp;amp;quot;. This dialog has two tables: Available Unit Cells on the left side and Associated Unit Cells on the right side. The left table shows a list of all the available, legitimate array objects in your project workspace. Remember that for an array object to be eligible for NCCBF compression, it has to stand alone on a dedicated trace or embedded object set, whichever applies. Select an array object from the left table and use the right arrow button (--&amp;amp;gt;) to move it to the right table to associate it with the new NCCBF unit cell. You can associate more than one array object with the same NCCBF unit cell. In this case, the parent elements of all the associated array objects collectively constitute the NCCBF unit cell. The NCCBF unit cell is the planar structure that is analyzed separately, first, as a stand-alone isolated element, and next, as a periodic unit cell, to generate the NCCBF entire-domain basis function solutions. It is therefore very important that the array objects be positioned carefully with respect to the origin of coordinated and relative to one another to form the correct NCCBF unit cell. Once you move one or more array object names to the &amp;amp;quot;Associated&amp;amp;quot; table on the right, you can move them back to the &amp;amp;quot;Available&amp;amp;quot; table on the left using the left arrow (&amp;amp;lt;--) button. You can also instruct EM.Cube to use only the isolated element solution by unchecking the box labeled &amp;amp;quot;'''Include Periodic Solution of Unit Cell'''&amp;amp;quot;. Once you are satisfied with the definition of your NCCBF unit cell, close the dialog to return to the NCCBF Settings dialog. Here you see the name of the newly added NCCBF unit cell in the list along with the Number of Solutions and the names of all the associated array objects for each NCCBF unit cell. You can modify each row using the '''Edit''' button or remove it from the list using the '''Delete''' button. Close the NCCBF Settings dialog to return to the Planar MoM Engine Settings dialog, and close the latter to return to the Simulation Run dialog, where you can now start the NCCBF simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM163.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar MoM's NCCBF Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM162.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Planar MoM's &amp;amp;quot;Add Unit Cell&amp;amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
=== Symmetries, Array Objects &amp;amp;amp; Composite Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] treats array objects in a special way. That is why you need to use array objects with certain rules for NCCBF simulations. In general, if the mesh of your planar structure involves a total of N vectorial basis functions, the MoM matrix will contain a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; elements. Instead of computing the entire N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; basis interactions, the Planar MoM simulation engine takes advantage of the inherent symmetry properties of the dyadic Green's functions and camputes the diagonal elements of the matrix and all the elements below the diagonal. This amounts to N.(N+1)/2 basis interactions. In many cases, the MoM matrix is symmetric, and the elements above the diagonal are simply mirror-image of the below-diagonal elements. In planar structures that involve both metal and slot traces, there will be sign reversals for some interactions.&lt;br /&gt;
&lt;br /&gt;
In many cases, especially in the areas that contain sizable numbers of rectangular mesh cells, the basis functions are naturally grouped into distinct sets that are called domains. As you saw earlier in the discussion of planar mesh generation, uniform domains with identical rectangular cells bring significant savings during the matrix fill process. Using the concept of domains renders the MoM matrix as a block matrix, whose blocks represent the interactions among the domains. The diagonal blocks therefore correspond to self-domain interactions. By a similar argument, if your planar structure is made up of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; domains, then a total of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) are computed. An EM.Cube array object consists of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical geometrical elements. If the array object belongs to a trace that has other objects in it, then by the planar mesh generator's rules, the elements of the array object are merged with the other objects on the same trace using the &amp;amp;quot;Union&amp;amp;quot; Boolean operation. If some array elements possibly have connections with other objects, such connections are taken care of in the meshing process. '''However, if an array object stands alone in a dedicated trace, then only the parent (first) element is meshed, and it mesh is copied and cloned for all the other elements of the array.''' This produces a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical domains of vectorial basis functions. A direct consequence of this is identification of only N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; unique domain-pair interactions or matrix blocks. In the absence of these symmetries, a total of at least N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) must be computed. To better illustrate such matrix fill savings, let us consider the previous, not-so-large, 8 × 8 array of patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. It was previously assumed that each rectangular patch antenna element involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. The numerical solution of this structure produces a linear system of total size N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 30,720. The total number of complex-valued elements of this matrix is 9.44E+08. This is the total number of highly sophisticated multi-dimensional integrals that you need to compute during a brute-force matrix fill process. For the sake of generality of the argument, here we ignore the huge additional savings that rectangular cells offer, and we assume that each unique domain-pair interaction involves N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 230,400 elements, except for the self-domain interaction which requires N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 115,440 integral computations. This amounts to a total of (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; -1) . N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 1.46E+07 integral computations, which is roughly N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;(64) times fewer and faster than a brute-force matrix fill process.&lt;br /&gt;
&lt;br /&gt;
To remedy the limitation that stand-alone array objects on dedicated traces cannot be connected to anything and therefore would severely limit the geometrical complexity of individual elements, EM.Cube allows you to build arrays of composite objects. A &amp;amp;quot;'''Composite Object'''&amp;amp;quot; in EM.Cube is a group of objects that are tied together only for the purpose of organization. As a result, the mesh of a composite object is the same as that of its constituent member objects (including any possible connections), had they not been grouped together. In a similar manner to simpler array objects, if a composite array stands alone in a dedicated trace or embedded object set, then only the parent composite object is meshed, and its mesh is copied and cloned for all the other composite elements of the array object. Furthermore, all the unique domain-pair interactions are identified during the matrix fill process, and lead to a major saving in computation time. '''Note that you can assign gap or probe sources to composite arrays in a similar way as you excite simpler array objects.''' If your planar structure involves a composite array, whose composite parent element has constituent members: Object1, Object2, ..., then the Gap Source dialog or Probe Source dialog will include the names of all the eligible constituent members (rectangle strips or PEC via objects) that can host the respective source types. '''Complex composite arrays hosting gap or probe source arrays or illuminated by plane wave sources are great candidates for NCCBF simulation.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM165.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Assigning gap sources to the elements of a composite array object.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Picasso</id>
		<title>EM.Picasso</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Picasso"/>
				<updated>2013-06-14T19:59:14Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Gap Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Picasso® is a versatile planar structure simulator for modeling and design of printed antennas, planar microwave circuits, and layered periodic structures. EM.Picasso's simulation engine is based on a 2.5-D full-wave Method of Moments (MoM) formulation that provides the ultimate modeling accuracy and computational speed for open-boundary multilayer structures. It can handle planar structures with arbitrary numbers of metal layouts, slot traces, vertical interconnects and lumped elements interspersed among different substrate layers. You can use EM.Picasso to model large finite-sized antenna arrays as well as infinite periodic structures such as frequency selective surfaces.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Picasso has been successfully used by numerous users around the globe in industry, academia and government. The new EM.Picasso 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has introduced far more powerful CAD utilities, greater geometrical variety, and a vast array of capabilities like parametric sweep, [[optimization]], data visualization and post-processing computations. The new foundation also facilitates import and export of many popular CAD formats and provides a seamless interface with our other simulation tools.&lt;br /&gt;
&lt;br /&gt;
== A Planar Method Of Moments Primer ==&lt;br /&gt;
&lt;br /&gt;
The Method of Moments (MoM) is a rigorous, full-wave numerical technique for solving open boundary electromagnetic problems. Using this technique, you can analyze electromagnetic radiation, scattering and wave propagation problems with relatively short computation times and modest computing resources. The method of moments is an integral equation technique; it solves the integral form of Maxwell’s equations as opposed to their differential forms that are used in the finite element or finite difference time domain methods.&lt;br /&gt;
&lt;br /&gt;
In a planar MoM simulation, the background structure is usually a layered planar structure that consists of one or more laterally infinite material layers. In EM.Cube’s [[Planar Module]], the layered structure is stacked along the Z axis. In other words, the dimensions of the layers are infinite along the X and Y axes. Metallic traces are placed at the boundaries between the substrate or superstrate layers. These are modeled by perfect electric conductor (PEC) traces or conductive sheet traces of finite thickness and finite conductivity. Some layers might be separated by infinite perfectly conducting ground planes. The two sides of a ground plane can be electromagnetically coupled through one or several slots or apertures. Such slots or apertures are modeled by magnetic currents and are realized and represented by perfectly magnetic conductor (PMC) traces. Furthermore, the metallic traces can be interconnected or connected to ground planes using embedded objects. Such objects can be used to model circuit vias, plated-through holes or dielectric inserts. These are modeled as volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
The currents in a planar MoM simulation are discretized as a collection of elementary currents with small finite spatial extents. These elementary currents are called basis functions and obviously have a vectorial nature. The total currents (solution of the problem) are summations of these elementary currents. The basis functions are well defined and easy to calculate; however, their amplitudes are initially unknown in a MoM problem. Through the planar MoM solution, you find these unknown amplitudes. Once the total currents are known, you can calculate the fields everywhere in the structure.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Green’s Functions ===&lt;br /&gt;
&lt;br /&gt;
The Green’s functions are the solutions of boundary value problems when they are excited by an elementary source. This is usually assumed to be an infinitesimally small vectorial point source. In order for Green’s functions to be computationally useful, they must have analytical closed forms like a mathematical expression, or one should be able to compute them using a recursive process. It turns out that only very few boundary value problems have closed-form Green’s functions. Planar layered structures with laterally infinite extents are one of those few cases, which can be represented by recursive dyadic Green's functions.&lt;br /&gt;
&lt;br /&gt;
In general, a structure may support both electric ('''J''') and magnetic ('''M''') currents. The total electric ('''E''') and magnetic ('''H''') fields can be expressed in terms of the electric and magnetic currents in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;E = E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;H = H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''GH&amp;lt;sub&amp;gt;M&amp;lt;/sub&amp;gt;''' are the dyadic Green’s functions for the electric and magnetic currents due to electric and magnetic current source, respectively, and '''E&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' and '''H&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' are the incident or impressed electric and magnetic fields, respectively. In these equations, '''r''' is the position vector of the observation point and '''r'''' is the position vector of the source point. V is the volume that contains all the sources and the volume integration is performed with respect to the primed coordinates. The incident or impressed fields provide the excitation of the structure. They may come from an incident plane wave or a gap source on a microstrip line, a short dipole, etc. The complexity of the Green’s functions depends on what is considered as the background structure. If you remove all the unknown currents from the structure, you are left with the background structure.&lt;br /&gt;
&lt;br /&gt;
=== Planar Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
To derive a system of integral equations, we enforce the boundary conditions on the integral definitions of the '''E''' and '''H''' fields as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_E(E) = L_E \bigg\{ E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_H(H) = L_H \bigg\{ H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM4(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' is the boundary value operator for the electric field and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' is the boundary value operator for the magnetic field. For example, '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E'''field vanish on perfect conductors:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = 0, \quad \mathbf{r} \in PEC &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM65.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E''' and '''H''' fields be continuous across an aperture in a perfect ground plane:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{E}^+ - \mathbf{E}^-) = 0 \\&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{H}^+ - \mathbf{H}^-) = 0&lt;br /&gt;
\end{cases} &lt;br /&gt;
\quad \Rightarrow \quad&lt;br /&gt;
\mathbf{M}^+(r) = \mathbf{M}^-(r), \quad r \in PMC&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM66(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the fact that the dyadic Green’s functions and the incident or impressed fields are all known, one can solve the above system of integral equations to find the unknown currents '''J''' and '''M'''.&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE's [[Planar Module|Planar module]], magnetic currents are always surface current with units of V/m. Electric currents, however, can be surface currents with units of A/m as in the case of metallic traces like microstrip lines, or they can be volume currents with units of A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; as in the case of perfectly conducting vias. Dielectric inserts are modeled as volume polarization currents that are related to the electric field '''E''' in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J}_p(r) = jk_0 Y_0(\varepsilon_r - \varepsilon_b)\mathbf{E}(r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant, &amp;lt;math&amp;gt;Y_0 = \tfrac{1}{Z_0} = \tfrac{1}{120\pi}&amp;lt;/math&amp;gt; is the free space intrinsic admittance, &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is the permittivity of the dielectric insert, and &amp;amp;epsilon;&amp;lt;sub&amp;gt;b&amp;lt;/sub&amp;gt; is the permittivity of its background layer. In a 2.5-D formulation, it is assumed that the volume currents have only a vertical component along the Z direction, and their circumferential components are negligible.&lt;br /&gt;
&lt;br /&gt;
=== Numerical Solution Of Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
The planar integral equations derived earlier can be solved numerically by discretizing the unknown currents using a proper meshing scheme. The original functional equations are reduced to discretized linear algebraic equations over elementary cells. The unknown quantities are found by solving this system of linear equations, and many other parameters can be computed thereafter. This method of numerical solution of integral equations is known as the Method of Moments (MoM). In this method, the unknown electric and magnetic currents are represented by expansions of basis functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;J(r) = \sum_{n=1}^N I_n^{(J)} f_n^{(J)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;M(r) = \sum_{k=1}^K V_k^{(M)} f_k^{(M)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_k^{(M)}&amp;lt;/math&amp;gt; are the generalized vector basis functions for the expansion of electric and magnetic currents, respectively, and &amp;lt;math&amp;gt;I_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;V_k^{(M)}&amp;lt;/math&amp;gt; are the unknown amplitudes of these basis functions, which have to be determined. Substituting these expansions into the integral equations generates a set of discretized integral equations, which can further be converted to a system of linear algebraic equations. This is accomplished by testing the discretized integral equations using the a set of test functions. In the method of moments, the Galerkin technique is typically used, which chooses the expansion basis functions as test functions. This leads to the following linear system:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
Z^{(EJ)} &amp;amp; T^{(EM)} \\&lt;br /&gt;
U^{(HJ)} &amp;amp; Y^{(HM)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
\cdot&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
I^{(J)} \\&lt;br /&gt;
V^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
=&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
V^{(E)} \\&lt;br /&gt;
I^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(EJ)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot &lt;br /&gt;
\iiint\limits_{V_j} dv' \overline{\overline{G}}_{EJ}(r|r') \cdot f_i^{(J)}(r')&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_i^{(E)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot E^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_i^{(H)} = \iiint\limits_{V_i} dv f_i^{(M)}(r) \cdot H^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similar expressions can be derived for the T&amp;lt;sup&amp;gt;(EM)&amp;lt;/sup&amp;gt;, U&amp;lt;sup&amp;gt;(HJ)&amp;lt;/sup&amp;gt; and Y&amp;lt;sup&amp;gt;(HM)&amp;lt;/sup&amp;gt;elements of the MoM matrix.&lt;br /&gt;
&lt;br /&gt;
=== Discretization Of Electric &amp;amp;amp; Magnetic Currents ===&lt;br /&gt;
&lt;br /&gt;
The right choice of the basis functions to represent the elementary currents is very important. It will determine the accuracy and computational efficiency of the resulting numerical solution. Rooftop basis functions are one of the most popular types of basis functions used in a variety of MoM formulations. The surface currents (whether electric or magnetic) are discretized using 2D rooftop basis functions shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image055_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Rooftop or RWG basis functions built over two rectangular, triangular or mixed cells.&lt;br /&gt;
&lt;br /&gt;
The rooftop basis functions are defined over two adjacent cells with a common edge of length. If the two cells are triangular, then the so-called RWG functions are obtained. It is also possible to define rooftop functions over two adjacent rectangular cells or two adjacent rectangular and triangular cells with a common edge. On a rectangular cell, the function is defined as having a (descending or ascending) linear profile in one direction and a constant profile in the other perpendicular direction.&lt;br /&gt;
&lt;br /&gt;
The volume polarization currents in 2.5-D MoM have a vertical direction along the Z-axis. These are discretized using prismatic basis functions that have either a rectangular or triangular base with a constant profile along the Z-axis.&lt;br /&gt;
&lt;br /&gt;
[[File:image065_tn.png]][[File:image066_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Prismatic basis functions built over single triangular and rectangular cells.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Planar Structure ==&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM14.png|thumb|350px|A typical planar layered structure]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] is intended for constructing and modeling planar layered structures. By a planar structure we mean one that contains a background substrate of laterally infinite extents, made up of one or more material layers all stacked up vertically along the Z axis. Objects of finite size are then interspersed among these substrate layers. This is somehow different than EM.Cube's other computational modules, which are geared for handling arbitrary 3D structures.&lt;br /&gt;
&lt;br /&gt;
In [[Planar Module]], the background structure, called &amp;amp;quot;'''Layer Stack-up'''&amp;amp;quot;, may involve one or more material layers of infinite extents along the X and Y axes but of finite thickness along the Z axis. When you start a new project, the background structure has a single vacuum layer. The layer stack-up is always terminated from the top and bottom by two infinite half-spaces. The terminating half-spaces might be the free space, or a perfect conductor (PEC ground), or any material medium. Most planar structures used in RF and microwave applications such as microstrip-based components have a PEC ground at their bottom. EM.Cube's default stack-up has a vacuum top half-space and a PEC bottom half-space. Some structures like stripline components require two bounding PEC grounds at both top and bottom.&lt;br /&gt;
&lt;br /&gt;
The finite-sized objects of a planar structure may include metal traces, slots and apertures, vertical vias and interconnects, or dielectric inserts including air voids inside the substrate layers. Metal traces are modeled as electric surface currents. These are planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on metal (PEC) traces and placed at the boundary (interface) plane between two substrate layers. Slots and apertures are modeled as magnetic surface currents on the surface of an infinite PEC plane and provide electromagnetic coupling between its top and bottom sides. These, too, are constructed using planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on slot (PMC) traces and placed at the boundary (interface) plane between two substrate layers. EM.Cube's [[Planar Module]] also allows prismatic objects that can be modeled by electric volume currents. These include vertical vias and dielectric inserts, and are called embedded object sets. [[Planar Module|Planar module]] does not allow construction of 3D CAD objects. Instead, you draw the cross section of prismatic objects as planar [[Surface Objects|surface objects]] parallel to the XY plane. EM.Cube then automatically extrudes these cross sections and constructs and displays 3D prisms over them. The prisms extend all the way across the thickness of the host substrate layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:PMOM14.png]]&lt;br /&gt;
Figure 1: A typical planar layered structure.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Defining Layer Stack-Up ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube’s [[Planar Module]], there is always a default background structure that consists of a finite vacuum layer sandwiched between a vacuum top half-space and a PEC bottom half-space. Every time you enter the [[Planar Module|Planar module]], the '''Stack-up Settings Dialog''' opens up. This is where you define the entire background structure. Once you close this dialog, you can open it again by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Layer Stack-up Settings...''' from the contextual menu. Or alternatively, you can select the menu item '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Layer Stack-up Settings...'''&lt;br /&gt;
&lt;br /&gt;
The Stack-up Settings dialog has two tabs: '''Layer Hierarchy''' and '''Embedded Sets'''. The Layer Hierarchy tab has a table that shows all the background layers in hierarchical order from the top half-space to the bottom half-space. It also lists the material label of each layer, Z-coordinate of the bottom of each layer, its thickness (in project units) and material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). There is also a column that lists the names of embedded object sets inside each substrate layer, if any.&lt;br /&gt;
&lt;br /&gt;
You can add new layers to your project's stack-up or delete its layers, or move layers up or down and thus change the layer hierarchy. To add a new background layer, click the arrow symbol on the '''Insert...'''button at the bottom of the dialog and select '''Substrate Layer''' from the button's dropdown list. A new dialog opens up where you can enter a label for the new layer and values for its material properties and thickness in project units.&lt;br /&gt;
&lt;br /&gt;
You can delete a layer by selecting its row in the table and clicking the '''Delete''' button. To move a layer up and down, click on its row to select and highlight it. Then click either the '''Move Up''' or '''Move Down''' buttons consecutively to move the selected layer to the desired location in the stack-up. Note that you cannot delete or move the top or bottom half-spaces.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM8(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Editing Substrate Layers ===&lt;br /&gt;
After creating a substrate layer, you can always edit its properties in the Layer Stack-up Settings dialog. Click on any layer's row in the table to select and highlight it and then click the '''Edit''' button. The substrate layer dialog opens up, where you can change the layer's label and assigned color. In the material properties section of the dialog, you can change the name of the material and its properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). To define electrical losses, you can either assign a value for electric conductivity (s), or alternatively, define a loss tangent for the material. In the latter case, check the box labeled &amp;amp;quot;'''Specify Loss Tangent'''&amp;amp;quot; and enter a value for it. In this case, the electric conductivity field becomes greyed out and reflects the corresponding s value at the center frequency of the project.&lt;br /&gt;
&lt;br /&gt;
You can also set the thickness of the substrate layer in the project units. Note that you cannot change the thickness of the top and bottom half-spaces. You can only change their material properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM9.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Substrate Layer dialog.&lt;br /&gt;
&lt;br /&gt;
You can also use EM.Cube's Material List to define the material properties of a substrate layer. In the Substrate Layer Dialog, click the '''Material''' button to open the '''Material List'''. In the Material List Dialog, pick any material or type the first letter of a material to highlight it. Then click the '''OK''' button or simply hit the '''Enter''' key of your keyboard to close the list and return to the substrate layer dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM10.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Materials dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Object Types ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] groups objects by their material and electromagnetic properties. Each object group shares the same color and same position in the layer stack-up. All the planar objects belonging to the same trace are located on the same substrate layer boundary. All the prismatic objects belonging to the same embedded set lie inside the same substrate layer and have the same material composition. Theoretically speaking, all the objects belonging to a group are governed by the same boundary conditions. EM.Cube’s [[Planar Module]] currently provides the following types of objects for building a planar layered structure:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC) Traces:''' These represent infinitesimally thin metallic objects that are deposited or metallized on or between substrate layers. PEC objects are modeled by surface electric currents that satisfy the PEC boundary condition.&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC) Traces:''' These are used to model slots and apertures in infinite PEC ground planes. PMC objects are always assumed to lie on an infinite horizontal PEC ground plane with zero thickness. They are modeled by surface magnetic currents, enforcing the continuity of tangential fields across the slots or apertures.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metals. They have a finite conductivity and a very small thickness. A surface impedance boundary condition is enforced on the surface of such traces.&lt;br /&gt;
# '''PEC Via Sets:''' These are metallic objects such as shorting pins, interconnect vias, plated-through holes, etc. that are grouped together as prismatic object sets. The embedded objects are modeled as vertical volume conduction currents.&lt;br /&gt;
# '''Embedded Dielectric Sets:''' These are prismatic dielectric objects inserted inside a substrate layer. You can define a finite permittivity and conductivity for such objects, but their height is always the same as the height of their host layer. The embedded dielectric objects are modeled as vertical volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
=== Defining Traces &amp;amp;amp; Object Sets ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]], the project workspace looks empty, and there are no finite objects in it. However, a default background structure is always assumed to exist by default. Objects are defined as part of traces or embedded sets. Once defined, you can see a list of project objects in the '''Physical Structure''' section of the Navigation Tree. Traces and object sets can be defined either from Layer Stack-up Settings dialog or from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
In the '''Layer Stack-up Settings''' dialog, you can add a new trace to the stack-up by clicking the arrow symbol on the '''Insert''' button of the dialog. You have to choose from '''Metal (PEC)''', '''Slot (PMC)''' or '''Conductive Sheet''' options. A respective dialog opens up, where you can enter a label and assign a color other than default ones. Once a new trace is defined, it is added, by default, to the top of the stack-up table underneath the top half-space. From here, you can move the trace down to the desired location on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Every time you define a new trace, it is also added under the respective category in the Navigation Tree. Alternatively, you can define a new trace from the Navigation Tree by right clicking on one of the trace type names and selecting '''Insert New PEC Trace...'''or '''Insert New PMC Trace...'''or '''Insert New Conductive Sheet Trace...'''A respective dialog opens up for setting the trace properties. Once you close this dialog, it takes you directly to the Layer Stack-up Settings dialog so that you can set the right position of the trace on the stack-up.&lt;br /&gt;
&lt;br /&gt;
=== Drawing Planar Objects ===&lt;br /&gt;
&lt;br /&gt;
As soon as you start drawing geometrical objects in the project workspace, the Physical Structure section of the Navigation Tree gets populated. The names of traces are added under their respective trace type category, and the names of objects appear under their respective trace group. At any time, one and only one trace is active in the project workspace. An active trace is where all the new objects you draw belong to. When you define a new trace, it is set as active and you can immediately start drawing new objects on that trace. You can also set any trace active at any time by right clicking its name on the Navigation Tree and selecting '''Activate''' from the contextual menu. The name of the active trace is always displayed in bold letter in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM13.png]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] has a special feature that makes construction of planar structures quite easy and straightforward. '''The active work plane of the project workspace is always set at the plane of the active trace.''' In EM.Cube's other modules, all objects are drawn in the XY plane (z = 0) by default. In [[Planar Module]], all new objects are drawn on a horizontal plane that is located at the Z-coordinate of the currently active trace. As you change the active trace or add a new trace, you will also change the active work plane.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Metallic Traces ===&lt;br /&gt;
&lt;br /&gt;
A trace is a group of finite-sized planar objects that have the same conductive properties and same Z-coordinate. In other words, they are located on the same horizontal plane, or at the same vertical level on the layer stack-up. You can define two types of metallic traces in the [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
# '''PEC Traces:''' These represent perfect conductor objects that have zero thickness and no editable material properties.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metal objects. They have a very small finite thickness t and a finite conductivity s.&lt;br /&gt;
&lt;br /&gt;
The conductive sheet traces are modeled using the surface impedance boundary condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = -Z_s\mathbf{J_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM17(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;Z_s&amp;lt;/math&amp;gt; is the surface impedance of the conductive sheet. If the thickness of the sheet is greater than the skin depth of the metal at the project frequency, then the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1+j}{\sigma \delta}, \quad \delta = \sqrt{\dfrac{2}{k_0 Z_0 \sigma}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM18.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the thickness t of the sheet is less than the skin depth, then the conductive sheet transition boundary condition is used instead, and the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1}{[j k_0 Y_0 (\varepsilon_r - 1) + \sigma] \tau} = \dfrac{1}{\sigma_{tot} \tau} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM19(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]] with no traces defined, if you simply draw a new object, a default PEC trace is created and added to the Navigation Tree to hold that object. Alternatively, you can define your own new traces from the Layer Stack-up Settings dialog or directly from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
NOTE: Two or more PEC and conductive sheet traces can coexist at the same Z-coordinate. In this case, the Layer Stack-up Settings dialog shows these trace rows stacked up on top of each other between their common top and bottom substrate layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM15.png]] [[File:PMOM16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PEC and Conductive Sheet Trace dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Slot Traces ===&lt;br /&gt;
&lt;br /&gt;
Slots and apertures are cut-out and removed metal in an infinite perfectly conducting (PEC) ground plane. When a slot is excited, tangential electric fields are formed on the aperture, which can be modeled as finite magnetic surface currents confined to the area of the slot. Therefore, instead of modeling the electric surface currents on the PEC ground around the slot, one can alternatively model the finite-extent magnetic surface currents on PMC traces. In EM.Cube's [[Planar Module]], you define slot objects under PMC traces. A PMC trace at a certain Z-plane implies the presence of an infinite PEC plane at that Z-coordinate. Therefore, you do not need to define an additional PEC plane at that location on the layer stack-up. The slot (PMC) objects provide the electromagnetic coupling between the two sides of this infinite ground plane. By the same token, you cannot place a PEC trace and a PMC trace at the same Z-level, as the latter's ground will short the former. However, you can define two or more PMC traces at the same Z-plane. In this case, all the slot objects lie on the same infinite PEC ground plane. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM20.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PMC Trace dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Embedded Object Sets ===&lt;br /&gt;
&lt;br /&gt;
Embedded object sets represent short material insertions inside substrate layers. They can be metal or dielectric. Metallic embedded objects can be used to model vias, plated-through holes, shorting pins and interconnects. These are called PEC via sets. Embedded dielectric objects can be used to model air voids, thin films and material inserts in metamaterial structures. Embedded magnetic object are not currently supported by EM.Cube’s [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Embedded objects can be defined either from the Layer Stack-up Settings dialog or directly from the Navigation Tree. In the former case, open the &amp;amp;quot;Embedded Sets&amp;amp;quot; tab of the stack-up dialog. This tab has a table that lists all the embedded object sets along with their material type, the host substrate layer, the host material and their height. &lt;br /&gt;
&lt;br /&gt;
{{Note|The height of an embedded object is always identical to the thickness of its host substrate layer.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up dialog showing the Embedded Sets tab.&lt;br /&gt;
&lt;br /&gt;
To add a new object set, click the arrow symbol on the '''Insert''' button of the dialog and select one of the two options, '''PEC Via Set''' or '''Embedded Dielectric Set''', from the dropdown list. This opens up a new dialog where first you have to set the host layer of the new object set. A dropdown list labeled &amp;amp;quot;'''Host Layer'''&amp;amp;quot; gives a list of all the available finite substrate layers. You can also set the properties of the embedded object set, including its label, color and material properties. Keep in mind that you cannot control the height of embedded objects. Moreover, you cannot assign material properties to PEC via sets, while you can set values for the '''Permittivity'''(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity'''(&amp;amp;sigma;) of embedded dielectric sets. Vacuum is the default material choice. You may use EM.Cube's Material List for this purpose, which can be opened up by clicking the '''Material''' button. Once embedded object sets are added to the Embedded Sets table, you can edit their properties at any time by selecting their row and clicking the '''Edit''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM21.png]] [[File:PMOM22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The [[Planar Module]]'s PEC Via Set and Embedded Dielectric Set dialogs.&lt;br /&gt;
&lt;br /&gt;
To define an embedded set from the Navigation Tree, right click on the '''Embedded Object Sets''' item in the '''Physical Structure''' section of the Navigation Tree and select either '''Insert New PEC Via Set...''' or '''Insert New Embedded Dielectric Set...''' The respective New Embedded Object Set dialog opens up, where you set the properties of the new object set. As soon as you close this dialog, it takes you to the Layer Stack-up Settings dialog, where you can examine the location of the new object set on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
After a new embedded object set has been defined and added to the Navigation Tree, it becomes the active trace. You are now ready to create geometrical objects in the new active trace. Remember that [[Planar Module]] does not allow you to draw 3D objects. The solid object buttons in the '''Object Toolbar''' are disabled to prevent you from doing so. Instead, you draw planar [[Surface Objects|surface objects]] as the cross section of embedded sets. EM.Cube extends these planar objects across their host layer automatically and displays them as wire-frame, 3D extruded objects. Extrusion of embedded object sets happen after meshing and before every simulation. You can enforce this extrusion manually by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Update Planar Structure...''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Rules &amp;amp;amp; Limitations ===&lt;br /&gt;
&lt;br /&gt;
# Terminating PEC ground planes at the top or bottom of a planar structure are defined as PEC top or bottom half-spaces, respectively.&lt;br /&gt;
# A PEC ground plane placed in the middle of a substrate stack-up requires at least one slot object to provide electromagnetic coupling between its top and bottom sides. In this case, a PMC trace is rather introduced at the given Z-plane, which implies the presence of an infinite PEC ground although it is not explicitly indicated in the Navigation Tree.&lt;br /&gt;
# Metallic and slot traces cannot coexist on the same Z-plane. However, you can stack up multiple PEC and conductive sheet traces at the same Z-coordinate. Similarly, multiple PMC traces can be placed at the same Z-coordinate.&lt;br /&gt;
# Metallic and slot traces are strictly defined at the interface planes between substrate layers. To define a suspended metallic trace in a substrate layer (as in the case of the center conductor of a stripline), you must split the dielectric layer into two thinner layers and place your PEC trace at the interface between them.&lt;br /&gt;
# The current version of the Planar MoM simulation engine is based on a 2.5-D MoM formulation. Only vertical volume currents and no circumferential components are allowed on embedded objects. The 2.5-D assumption holds very well in two cases: (a) when embedded objects are very thin with a very small cross section (with lateral dimensions less than 2-5% of the material wavelength) or (b) when embedded objects are very short and sandwiched between two closely spaced PEC traces or grounds from the top and bottom.&lt;br /&gt;
# The current release of EM.Cube allows any number of PEC via sets collocated in the same substrate layer. However, you can define only one embedded dielectric object set per substrate layer, and no vias sets collocated in the same layer. Note that the single set can host an arbitrary number of embedded dielectric objects of the same material properties.&lt;br /&gt;
&lt;br /&gt;
=== Managing Objects, Traces &amp;amp;amp; Sets ===&lt;br /&gt;
&lt;br /&gt;
You can manage your project's layer hierarchy from the Layer Stack-up Settings dialog. You can add, delete and move around substrate layers, metallic and slot traces and embedded object sets. Metallic and slot traces can move among the interface planes between neighboring substrate layers. Embedded object sets including PEC vias and finite dielectric objects can move from substrate layer into another. When you delete a trace from the Layer Stack-up Settings dialog, all of its objects are deleted from the project workspace, too. You can also delete metallic and slot traces or embedded object sets from the Navigation Tree. To do so, right click on the name of the trace or object set in the Navigation Tree and select '''Delete''' from the contextual menu. You can also delete all the traces or object sets of the same type from the contextual menu of the respective type category in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
For better visualization of your planar structure, EM.Cube displays a virtual domain in a default orange color to represent part of the infinite background structure. The size of this virtual domain is a quarter wavelength offset from the largest bounding box that encompasses all the finite objects in the project workspace. You can change the size of the virtual domain or its display color from the Domain Settings dialog, which you can access either by clicking the '''Computational Domain''' [[File:domain_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Domain Settings...''' from the Simulate Menu or by right clicking the '''Virtual Domain''' item of the Navigation Tree and selecting '''Domain Settings...''' from the contextual menu, or using the keyboard shortcut '''Ctrl+A'''. But keep in mind that the virtual domain is only for visualization purpose and does not affect the MoM simulation. The virtual domain also shows the substrate layers in translucent colors. As you change the colors assigned to the substrate layers, you will see a multilayer virtual domain box surrounding your project structure.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_phys5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Virtual Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the last defined trace or embedded object set is active. You can activate any trace or embedded object set at any time for drawing new objects. You can move one or more selected objects from any trace or embedded object set to another group of the same type or of different type. First select an object in the project workspace or in the Navigation Tree. Then, right click on the highlighted selection and select '''Move To &amp;amp;gt;''' from the contextual menu. This opens another sub-menu containing '''Planar''' and a list of all the other EM.Cube modules that have already defined object groups. Select '''Planar''' or any other available module, and yet another sub-menu opens up with a list of all the available traces and embedded object sets already defined in your project. Select the desired group, and all the selected objects will move to that group. When selecting multiple objects from the Navigation Tree, make sure that you hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting a group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Discretizing Planar Structures ==&lt;br /&gt;
&lt;br /&gt;
=== The Planar MoM Mesh ===&lt;br /&gt;
&lt;br /&gt;
The method of moments (MoM) discretizes all the finite-sized objects of a planar structure (excluding the background structure) into a set of elementary cells. The planar integral equations are then solved approximately on these elementary cells. As this method does not require a discretization of the entire computational domain, it is often computationally much more efficient than differential-based techniques like FEM or FDTD, which mesh the whole domain. The accuracy of the MoM numerical solution depends greatly on the quality of the generated mesh. The mesh density gives a measure of how electrically small these elementary cells are. Low mesh resolutions compromise the accuracy of the numerical solution. On the other hand, very high mesh densities may lead to numerical instability of the method of moments. As a rule of thumb, a mesh density of about 20-30 cells per effective wavelength usually yields acceptable results. Yet, for structures with lots of fine geometrical details or for highly resonant structures, higher mesh densities may be required. Also, the particular simulation data that you seek in a project will also influence your choice of mesh resolution. For example, far field characteristics like radiation patterns are less sensitive to the mesh density than field distributions on a structure with a highly irregular shape and a rugged boundary.&lt;br /&gt;
&lt;br /&gt;
It is well known that any planar geometry with any degree of complexity can be reasonably discretized using a surface triangular mesh. EM.Cube's [[Planar Module]] provides a versatile triangular mesh generator for this purpose. This generates a regular mesh, in which most of the triangular cells have almost equal areas. The uniformity or regularity of mesh is an important factor in warranting a stable numerical solution. A highly incongruous mesh may even produce completely erroneous results. EM.Cube's [[Planar Module]] also offers another mesh generator that creates a &amp;amp;quot;Hubrid&amp;amp;quot; planar mesh combining triangular and rectangular cells. Although triangular cells are more versatile than rectangular cells in adapting to arbitrary geometries, many practical planar structures contain a large number of rectangular parts like patch antennas, microstrip lines and components, etc.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM32.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar hybrid and triangular meshes for rectangular patches.&lt;br /&gt;
&lt;br /&gt;
=== The Rectangular Mesh Advantage ===&lt;br /&gt;
&lt;br /&gt;
Rectangular cells offer a major advantage over triangular cells for numerical MoM simulation of planar structures. This is due to the fact that the dyadic Green's functions of planar layered background structures are space-invariant on the transverse plane. Recall that the elements of the moment matrix are given by the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(\mu \nu)} = \iiint_{V_i} d\nu f_i^{(\mu)}(r) \cdot \iiint_{V_j}d\nu ' \overline{\overline{G}}_{\mu \nu}(r|r') \cdot f_j^{(v)}(r') &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM24(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the spatial-domain dyadic Green's functions are a function of the observation and source coordinates, '''r'''and '''r' '''. The MoM matrix elements can indeed be interpreted as interactions between two elementary basis functions '''f&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;(r)''' and '''f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;(r')''' on that particular background structure. The spatial-domain dyadic Green's functions can themselves be expressed in terms of the spectral-domain dyadic Green's functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\overline{\overline{G}}_{\mu \nu}(r|r') = \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{\overline{\overline{G}}}_{\mu \nu} (k_p, z|z') e^{-j[k_x(x-x')+k_y(y-y')]} \, dk_x \, dk_y ,&lt;br /&gt;
\quad {k_p}^2 = {k_x}^2 + {k_y}^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM26.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the doubly infinite integration is performed with respect to the spectral [[variables]] k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;. As can be seen from the above expression, the spatial-domain dyadic Green's functions are functions of z, z', as well as (x-x') and (y-y'). The MoM matrix elements can now be transformed into the spectral domain as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
Z_{ij}^{(\mu \nu)} = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{f}_i^{(\mu)} (k_x, k_y) \cdot \tilde{\overline{\overline{G}}}_{\mu \nu} (k_{\rho}, z|z') \cdot&lt;br /&gt;
\tilde{f}_j^{(\nu)} (k_x, k_y) \, dk_x \, dk_y&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM27.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the tilde symbol signifies the Fourier transform of a function defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\tilde{f}(k_x, k_y) = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
f(x,y) e^{j(k_x x + k_y y)} \, dx \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM28(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rectangular cells have simple Fourier transforms. The rooftop basis functions are triangular functions in the direction of current flow and constant in the perpendicular direction. This means that their Fourier transform is a product of a sinc-squared function along one spectral direction and a sinc function along the other. You can see from the figure below that if one deals with a rectangular mesh of identical cells (all equal and parallel), then the interactions among the rooftop basis functions become a functions of the index differences and not the absolute indices:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{(i,k)|(j,l)} = Z \Big\langle f_{i,k}(x,y)| f_{j,l}(x', y') \Big\rangle = Z_{(i-j)|(k-l)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM29.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equation, the vectorial rooftop basis functions have explicit, double indices: i and k along the local X and Y directions, respectively, for the test (observation) basis function, and j and l along the local X and Y directions, respectively, for the expansion (source) basis function. Thus, uniform rectangular cells, i.e. structured rectangular cells of identical size aligned in the same direction, can speed up the planar MoM simulation significantly due to these symmetry and the invariance properties. For example, all the self-interactions are identical regardless of the location of a rooftop basis function. This reduces the matrix fill process for a total of N rooftop basis functions from an N2 process to one of order N.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Pairs of rooftop basis functions that have identical MoM interactions.&lt;br /&gt;
&lt;br /&gt;
=== Generating A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
The planar MoM mesh generation process involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties&lt;br /&gt;
# Creating and viewing the mesh&lt;br /&gt;
# Verifying the mesh for integrity&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] offers two mesh generation algorithms for discretizing planar structures: Hybrid and Triangular. The hybrid mesh consists of both rectangular and triangular cells. The hybrid mesh generator creates a kind of “object-centric” mesh that depends on the geometry of each object. It tries to discretize rectangular objects with rectangular cells as much as possible. In certain connection areas, a few triangular cells might be inserted to provide the mesh transition for current continuity. All the non-rectangular objects (circular, polygonal, etc.) are discretized using triangular cells. The triangular mesh generator, on the other hand, discretizes the planar objects with all triangular cells regardless of their shape. The only exceptions are feed lines that contain gap sources or lumped elements, which are always meshed with rectangular cells.&lt;br /&gt;
&lt;br /&gt;
You can generate and view a planar mesh by clicking the '''Show Mesh''' [[File:mesh_tool.png]] button of the '''Simulate Toolbar''' or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' or using the keyboard shortcut '''Ctrl+M'''. When the mesh of the planar structure is displayed in EM.Cube’s project workspace, its &amp;amp;quot;Mesh View&amp;amp;quot; mode is enabled. In this mode you can perform view operations like rotate view, pan or zoom, but you cannot create new objects or edit existing ones. To exit the mesh view mode, press the keyboard's '''Esc Key''' or click the '''Show Mesh''' [[File:mesh_tool.png]] button once again.&lt;br /&gt;
&lt;br /&gt;
Once a mesh is generated, it stays in the memory until the structure is changed or the mesh density or other settings are modified. Every time you view mesh, the one in the memory is displayed. You can force EM.Cube to create a new mesh from the ground up by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''Planar Mesh''' item in the '''Discretization''' section of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Mesh Density ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, generates a hybrid mesh of your planar structure with a mesh density of 20 cells per effective wavelength. It is important to understand the concept of mesh density (either hybrid or triangular) as used by [[Planar Module]]. It gives a measure of the number of cells per effective wavelength that are placed in various regions of your planar structure. The higher the mesh density, the more cells are created on the geometrical objects. Keep in mind that only the finite-sized objects of your structure are discretized. No mesh is generated for the substrate layers of your background structure. The free-space wavelength is defined as &amp;lt;math&amp;gt;\lambda_0 = \tfrac{2\pi f}{c}&amp;lt;/math&amp;gt;, where f is the center frequency of your project and c is the speed of light in the free space. The effective wavelength is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where e&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity.&lt;br /&gt;
&lt;br /&gt;
The effective permittivity is defined differently for different types of traces and embedded object sets. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivity of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivity of the two substrate layers just above and below the metallic trace. These definitions of effective permittivity are consistent with the effective propagation constant of transmission lines realized on such trace types. For embedded object sets, the effective permittivity is defined as the largest of the permittivities of all the substrate layers and embedded dielectric sets. In all cases, for the purpose of calculating the effective wavelength, only the real part of the permittivities are considered. The reason for using an effective wavelength so defined for determination of mesh resolution is to make sure that enough cells are placed in areas that might feature higher field concentration.&lt;br /&gt;
&lt;br /&gt;
Due to the different definitions of effective wavelength in different parts of your planar structure, you will see different mesh resolutions. For example, if you structure has several substrate layers with different permittivities, the mesh of metal traces on layers with a higher permittivity value will feature more cells than the mesh of metal traces on layers with a lower permittivity value even though the mesh density value is the same for the whole structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM30.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of two rectangular patches at two different planes. The lower substrate layer has a higher permittivity.&lt;br /&gt;
&lt;br /&gt;
=== Customizing A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the planar mesh including the mesh type and density from the planar Mesh Settings Dialog. You can also change these settings while in the mesh view mode, and you can update the changes to view the new mesh. To open the mesh settings dialog, either click the '''Mesh Settings''' [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Mesh Settings...''', or by right click on the '''Planar 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 mesh algorithm from the dropdown list labeled '''Mesh Type''', which offers two options: '''Hybrid''' and '''Triangular'''. You can also enter a different value for '''Mesh Density''' in cells per effective wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;). For each value of mesh density, the dialog also shows the average &amp;amp;quot;Cell Edge Length&amp;amp;quot; in the free space. To get an idea of the size of mesh cells on the traces and embedded object sets, divide this edge length by the square root of the effective permittivity a particular trace or set. Click the '''Apply''' button to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM31.png]]&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Of Connected Trace Objects ===&lt;br /&gt;
&lt;br /&gt;
Using the generated mesh of a planar structure, EM.Cube creates a set of vectorial basis functions that are passed to the input file of the Planar MoM simulation engine. This engine requires edge-based basis functions. The common edges between adjacent cells are used to define edge-based rooftop or RWG basis functions. These elementary basis functions indeed provide the current flow and warrant the continuity among the mesh cells. Therefore, when two objects overlap or share a common edge, the connection between them must be translated into &amp;amp;quot;bridge&amp;amp;quot; basis functions, which carry the information about current flow to the simulation engine.&lt;br /&gt;
&lt;br /&gt;
'''The most important rule of object connections in EM.Cube's [[Planar Module]] is that only objects belonging to the same trace can be connected to one another.''' For example, if two objects reside on the same Z-plane and geometrically have a common edge which you can clearly see in the project workspace, but organizationally they belong to two different metal traces, then the bridge basis functions will not be generated between them, and the simulation engine will see them disconnected. If two objects belong to the same trace and have a common overlap area, EM.Cube first merges the two objects using the &amp;amp;quot;Boolean Union&amp;amp;quot; operation and converts them into a single object for the purpose of meshing. The mesh of &amp;amp;quot;unioned&amp;amp;quot; areas is usually made up of triangular cells. If two objects reside on the same Z-plane and geometrically overlap with each other but organizationally belong to two different trace groups, incongruous, overlapped cells will be generated that will either blow up the linear system or produce completely wrong simulation results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM36.png|250px]] [[File:PMOM38.png|250px]] [[File:PMOM37.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Two overlapping planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
When two planar objects belonging to the same trace are connected via a common edge, it is critical to generate a consistent mesh at the connection area and properly transition and merge the meshes of the individual objects. EM.Cube's triangular planar mesh generator simply &amp;amp;quot;unions&amp;amp;quot; the two objects and generates a connected mesh. EM.Cube's hybrid planar mesh generator, however, behave differently when it comes to the connection between rectangular objects. The rule in this case is the following:&lt;br /&gt;
&lt;br /&gt;
* If the two connected rectangular objects have the same side dimensions along the common linear edge with perfect alignment, a rectangular bridge mesh is produced.&lt;br /&gt;
* If the two connected rectangular objects have different side dimensions along the common linear edge or have edge offset, a set of triangular cells is generated along the edge of the object with the large side.&lt;br /&gt;
* Rectangular objects that contain gap source or lumped elements, always have a rectangular mesh around the gap area.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM33.png|250px]] [[File:PMOM35.png|250px]] [[File:PMOM34.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edge-connected rectangular planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
=== Mesh of Embedded Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] models embedded objects as vertical volume currents. The vectorial basis functions in this case are Z-directed prisms as opposed to rooftop basis functions. If an embedded object is located under or above a metallic trace or connected from both top and bottom, it is critical to create mesh continuity between the embedded object and its connected metallic traces. In other words, the generated mesh must ensure current continuity between the vertical volume currents and horizontal surface currents. EM.Cube’s planar mesh generator automatically handles situations of this kind and generates all the required connection meshes.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that EM.Cube’s Planar MoM engine uses a 2.5-D approximation, whereby only vertical volume currents are assumed inside embedded objects. When the height of an embedded object is small (as should typically be under the 2.5-D assumption), one prismatic cell is placed across the object along the Z-axis. Long PEC vias with a very small radius do also satisfy the 2.5-D assumption. In this case, the long via objects are discretized further along the Z direction and generate multiple stacked cells. Several prismatic cells along the Z-axis may increase the simulation time drastically. This is due to the fact that the host layer is effectively subdivided into a number of sub-layers and the stacked cells are treated as stacked vias embedded inside these sub-layers. As a result, the simulation engine needs to compute all the dyadic Green’s functions accounting for the interactions between all such sub-layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM39.png|400px]] [[File:PMOM40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of a vertical PEC via connecting two horizontal metallic strips. The shorter via has one prismatic cell along the Z direction, while the longer via is discretized into several stacked cells.&lt;br /&gt;
&lt;br /&gt;
=== Refining Mesh At Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
It is very important to apply the right mesh density to capture all the geometrical details of your planar structure. This is especially true for &amp;amp;quot;field discontinuity&amp;amp;quot; regions such as junction areas between objects of different side dimensions, where larger current concentrations are usually observed at sharp corners, or at the connection areas between metallic traces and PEC vias, as well as the areas around gap sources and lumped elements, as these create voltage or current discontinuities. For large planar structures, using a higher mesh density may not always be a practical option since it will quickly lead to a very large MoM matrix and thus growing the size of the numerical problem. Sometimes a slightly non-uniform mesh still produces stable numerical results. In other words, you may choose to increase the mesh resolution around the discontinuity regions only.&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh around geometrical and field discontinuities. You can check the check box labeled &amp;amp;quot;'''Refine Mesh at Junctions'''&amp;amp;quot;, which increases the mesh resolution at the connection area between rectangular objects. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Gap Locations'''&amp;amp;quot;, which may prove particularly useful when gap sources or lumped elements are placed on a short transmission line connected from both ends. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Vias'''&amp;amp;quot;, which increases the mesh resolution on the cross section of embedded object sets and by extension at the connection regions of the metallic objects connected to them. EM.Cube typically doubles the mesh resolution locally at the discontinuity areas when the respective boxes are checked.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM41.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Refining the planar mesh at the via and surrounding area.&lt;br /&gt;
&lt;br /&gt;
=== Checking Mesh Integrity ===&lt;br /&gt;
&lt;br /&gt;
You should always visually inspect EM.Cube's default generated mesh to see if the current mesh settings have produced an acceptable mesh. You may often need to change the mesh density or other parameters and regenerate the mesh. The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, highly incongruous meshes should always be avoided. Sometimes EM.Cube's default mesh may contain very narrow triangular cells due to very small angles between two edges. In some rare cases, extremely small triangular cells may be generated, whose area is a small fraction of the average mesh cell. These cases typically happen at the junctions and other discontinuity regions or at the boundary of highly irregular geometries with extremely fine details. In such cases, increasing or decreasing the mesh density by one or few cells per effective wavelength often resolves that problem and eliminates those defective cells. Nonetheless, EM.Cube's planar mesh generator offers an option to identify the defective triangular cells and either delete them or cure them. By curing we mean removing a narrow triangular cell and merging its two closely spaced nodes to fill the crack left behind.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM44.png|400px]] [[File:PMOM42.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Deleting or curing defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
EM.Cube by default deletes or cures all the triangular cells that have angles less than 10º. Sometimes removing defective cells may inadvertently cause worse problems in the mesh. You may choose to disable this feature and uncheck the box labeled &amp;amp;quot;'''Remove Defective Triangular Cells'''&amp;amp;quot; in the Planar Mesh Settings dialog. You can also change the value of the minimum allowable cell angle.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM43(1).png]]&lt;br /&gt;
&lt;br /&gt;
Setting the minimum allowable angle for non-defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
=== Locking Mesh Of Object Groups ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides different ways of controlling the mesh of a planar structure locally. Earlier you saw how to increase the mesh resolution at the discontinuity regions without affecting the mesh of uniform or regular areas of a planar structure. Another way of local mesh control is to lock the mesh density of certain traces or object sets. The mesh density that you specify in the Planar Mesh Settings dialog is a global parameter and applies to all the traces and embedded object sets in your project. However, you can lock the mesh of individual PEC, PMC and conductive sheet traces or embedded objects sets. In that case, the locked mesh density takes precedence over the global density. Note that locking mesh of object groups, in principle, is different than refining the mesh at discontinuities. In the latter case, the mesh of connection areas is affected. However, objects belonging to different traces cannot be connected to one another. Therefore, locking mesh can be useful primarily for isolated object groups that may require a higher (or lower) mesh resolution.&lt;br /&gt;
&lt;br /&gt;
You can lock the local mesh density by accessing the property dialog of a specific trace or embedded object set and checking the box labeled '''Lock Mesh'''. This will enable the '''Mesh Density''' box, where you can accept the default global value or set any desired new value.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM45.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of an object group from its property dialog.&lt;br /&gt;
&lt;br /&gt;
=== Local Mesh Control Using Polymesh Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to manually and individually mesh geometrical objects using the concept of polymesh. The Polymesh tool converts a planar surface object to a set of interconnected triangular cells, which is basically identical to its triangular surface mesh. Simply select an object and click the '''Polymesh Tool''' [[File:polymesh_tool_tn.png]] button of '''Tools Toolbar''', or select '''Menu &amp;amp;gt; Tools &amp;amp;gt; Polymesh''', or use the keyboard shortcut '''P'''. You can also right click on a selected object and select '''Polymesh''' from the contextual menu. From the Polymesh Dialog, you can control the mesh resolution through the '''Edge Length''' parameter, which is expressed in project units. Note that unlike the planar mesh generator which uses a frequency-dependent mesh density to drive the mesh resolution, the ploymesh's edge length is fixed and purely geometrical and does not change with the project frequency. '''EM.Cube's mesh generator considers a polymesh object as a &amp;amp;quot;final&amp;amp;quot; mesh and reproduces it &amp;amp;quot;As Is&amp;amp;quot; during the meshing process.'''&lt;br /&gt;
&lt;br /&gt;
You have access to every single node of a polymesh object and you can change its coordinates arbitrarily. You do this by opening the property dialog of a polymesh object and selecting a certain node index in the box labeled '''Active Node'''. You can also select a node by hovering the mouse over the node to highlight it and then click to select it. A red ball appears on the current active node. You can delete the nodes arbitrarily using the '''Delete''' button of the dialog, which results in lowering the mesh resolution at the location of the deleted node. Or you can insert new nodes in the faces of a polymesh object. To insert a node, first you have to select a face. Change the '''Mode''' option by selecting the '''Face''' radio button and then select the right '''Active Face''' index. A red triangular border appears around the selected face. You can also simply click on the surface of a face and select it using the mouse. With the desired face selected, click the '''Insert''' button of the dialog to create a new node at the centroid of the selected face. You can adjust the coordinates of the newly inserted node from the three X, Y and Z '''Coordinate''' boxes. Note that immediately after the insertion of a new node, the label of these coordinate boxes changes to &amp;amp;quot;'''New Node'''&amp;amp;quot; and they show the relative local X, Y and Z offsets with respect to the original node position. Once you close the Polymesh Dialog, the new node is added to the existing node list and can be edited later like the other polymesh nodes. By inserting a new node, you increase the mesh resolution locally and selectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM46(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Discretizing a planar surface object using EM.Cube's Polymesh tool.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that since a polymesh object it considered a final mesh, its mesh cannot be connected to other objects. In other words, bridge basis functions are not generated if even some of the polymesh edges may coincide with other objects' edges. A polymesh object is treated by the mesh generator as an isolated mesh. However, EM.Cube allows you to connect polymesh objects manually. To do so, bring two or more polymesh objects close to each other so that they have one or more common edges. No face overlaps are allowed in this case. Select the polymesh objects and click the '''Merge Tool'''[[File:merge_tool_tn.png]] button of '''Tools Toolbar''' to merge the polymesh objects into a single polymesh object. The new merged polymesh object will provide all the necessary bridge basis functions among the original, separate polymesh objects.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
In a typical electromagnetic simulation in EM.Cube's [[Planar Module]], you define a planar structure that consists of a layered background structure with a number of finite-sized metal and slot traces and possibly embedded metal or dielectric objects interspersed among the substrate layers. The planar structure is then excited by some sort of a signal source that induces electric currents on metal parts and magnetic currents on slot traces. The method of moments (MoM) solver computes these unknown electric and magnetic currents by discretizing the finite-sized objects. The induced currents, in turn, produce their own electric and magnetic fields which coexist (are superposed) with the impressed electric and magnetic fields of the signal source. From a knowledge of the near fields, EM.Cube calculates the port characteristics of the planar structure, if any ports have been defined. From a knowledge of the far fields, EM.Cube calculates the radiation or scattering characteristics of the planar structure.&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure in a number of different ways. The excitation source you choose depends on the observables you seek in your project. [[Planar Module]] provides the following source for exciting planar structures:&lt;br /&gt;
&lt;br /&gt;
* Lumped Sources with three varieties: [[#Gap Sources|Gap Sources]], [[#De-embedded Sources|De-embedded Sources]] and [[#Probe Sources|Probe Sources]]&lt;br /&gt;
* [[#Plane Wave Sources|Plane Wave Sources]]&lt;br /&gt;
* [[#Short Dipole Sources|Short Dipole Sources]]&lt;br /&gt;
* [[#Huygens Sources|Huygens Sources]]&lt;br /&gt;
&lt;br /&gt;
For antennas and planar circuits, where you typically define one or more ports, you usually use lumped sources. A lumped source is indeed a gap discontinuity that is placed on the path of an electric or magnetic current flow, where a voltage or current source is connected to inject a signal. Gap sources are placed across metal or slot traces. Probe sources are placed across vertical PEC vias. A de-embedded source is a special type of gap source that is placed near the open end of an elongated metal or slot trace to create a standing wave pattern, from which the scattering parameters can be calculated accurately. To calculate the scattering characteristics of a planar structure, e.g. its radar cross section (RCS), you excite it with a plane wave source. Short dipole sources are used to explore propagation of points sources along a layered structure. Huygens sources are virtual equivalent sources that capture the radiated electric and magnetic fields from another structure possibly in another EM.Cube computational module and bring them as a new source to excite your planar structure.&lt;br /&gt;
&lt;br /&gt;
=== Gap Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM47.png|thumb|300px|The [[Planar Module]]'s Gap Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A gap is an infinitesimally narrow discontinuity that is placed on the path of current flow on a feed line. In planar structures, feed lines are typically in the form of a microstrip, stripline, slotline or coplanar waveguide (CPW). You use rectangle strip objects to construct such feed lines. A gap source can be placed on any rectangle strip object on a PEC, PMC or conductive sheet trace. Depending on the type of the trace on which a gap source is placed, it will have a different physical interpretation.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PEC or conductive sheet trace can be regarded as a strip transmission line that carries electric currents along its length (local X direction). The characteristic impedance of the line is a function of its width (local Y direction). A gap source is placed somewhere along the length and across the width of such a rectangle strip object, thus creating an infinitesimally narrow gap at its location. In this case, the gap source represents an ideal voltage source in series with a lumped impedance that is connected across the gap to excite the strip transmission line. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the gap. The source pumps electric current into the line. If the voltage source is shorted (having a zero amplitude), then the gap acts like a series lumped element on the transmission line.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PMC trace can be regarded as a slot transmission line on an infinite PEC ground plane that carries a magnetic current along its length (local X direction). The characteristic impedance of the slot line is a function of its width (local Y direction). A slot gap source is placed somewhere along the length and across the width of the rectangle strip object on a PMC trace and creates an infinitesimally narrow gap at its location. In this case, the slot gap source represents an ideal current source with a shunt lumped admittance that is connected across the slot to excite the slot transmission line. When the admittance is zero, the gap acts like an ideal current filament, which creates electric fields across the slot, equivalent to a magnetic current flowing into the slot line. If the current source is open (having a zero amplitude), then the gap acts like a shunt (parallel) lumped element on the slot line. As you will see later, a coplanar waveguide (CPW) can be realized using two parallel slot lines with two aligned, collocated gap sources.&lt;br /&gt;
&lt;br /&gt;
To define a gap source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Gap Source Dialog by right clicking on the '''Gap Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' available in the project workspace. Select the desired host rectangle strip object. The box labeled '''Direction''' shows the direction or polarity of the new gap source on its host rectangle strip object. You have the option to select either the positive or negative direction for the source polarity.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the gap source from the start point of the rectangle strip feed line. The value of '''Offset''' by default is initially set to the center of the line. As you change the offset value, you can see the gap move on its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of a gap on a slot trace) and '''Phase''' in degrees.&lt;br /&gt;
* You can also change the default label as well as the default color of the gap source using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
&lt;br /&gt;
=== Probe Sources ===&lt;br /&gt;
&lt;br /&gt;
Another way of exciting a planar structure is by placing a gap on the path of a vertical current on a PEC via. This represents a filament source, which is used to model coaxial probe excitation. A probe source can be placed only on a PEC via object. Most planar transmission lines are fed using SMA connectors. The outer conductor of the coaxial line is connected to the ground and its inner conductor is extended across the substrate layer and connected to a metallic line. EM.Cube's [[Planar Module]] models a coaxial probe as an infinitesimal gap discontinuity placed across a thin via, representing an ideal voltage source in series with a lumped impedance. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the via. The source pumps vertical electric current into the probe. If the voltage source is shorted (having a zero amplitude), then the gap acts like a shunt lumped element across the via.&lt;br /&gt;
&lt;br /&gt;
To define a probe source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Probe Source Dialog by right clicking on the '''Probe Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, in the dropdown list labeled '''Embedded Objects''', you will find a list of all the PEC via objects available in the project workspace. Select the desired host PEC via object. The box labeled '''Direction''' shows the direction or polarity of the new probe source on its host PEC via object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the probe source from the bottom of the via object. The value of '''Offset''' by default is initially set to the center of the via.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and '''Phase''' in degrees.&lt;br /&gt;
&lt;br /&gt;
Unlike gap sources, whose offset parameter determines their exact location on their host line, the offset parameter of a probe source is not relevant except for long host vias. In the case of a short via that is discretized using a single prismatic element across its host substrate layer, the probe gap is always placed at the middle of its height. Longer vias may have a mesh that consists of two or more stacked prismatic elements. In this case, the probe source's offset determines which prismatic element will host the probe gap discontinuity at its middle.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Probe Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Source Arrays ===&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects, the array object will also be listed as an eligible object for gap source placement. A gap source will then be placed on each element of the array. All the gap sources will have identical direction and offset. Similarly, if the project workspace contains an array of PEC via objects, the embedded array object will also be listed as an eligible object for probe source placement. A probe source will then be placed on each via object of the array. All the probe sources will have identical direction and offset.&lt;br /&gt;
&lt;br /&gt;
However, you can prescribe certain amplitude and/or phase distribution over the array of gap or probe sources. By default, all the gap or probe sources have identical amplitudes of 1V (or 1A for the slot case) and zero phase. The available amplitude distributions to choose from include '''Uniform''', '''Binomial''' and '''Chebyshev''' and '''Date File'''. In the Chebyshev case, you need to set a value for minimum side lobe level ('''SLL''') in dB. You can also define '''Phase Progression''' in degrees along all three principal axes. You can view the amplitude and phase of individual sources by right clicking on the top '''Sources''' item in the Navigation Tree and selecting '''Show Source Label''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM49.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining gap sources on an array of rectangle strip objects with a Chebyshev amplitude distribution.&lt;br /&gt;
&lt;br /&gt;
In the data file option, the complex amplitude are directly read in from a data file using a real - imaginary format. When this option is selected, you can either improvise the complex array weights or import them from an existing file. In the former case click the '''New Data File''' button. This opens up the Windows Notepad with default formatted data file that has a list of all the array element indices with default 1+j0 amplitudes for all of them. You can replace the default complex values with new one and save the Notepad data file, which brings you back to the Gap Source dialog. To import the array weights, click the '''Open Data File''' button, which opens the standard Windows Open dialog. You can then select the right data file from the one of your folders. It is important to note that the data file must have the correct format to be read by EM.Cube. For this reason, it is recommended that you first create a new data file with the right format using Notepad as described earlier and then save it for later use.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining gap source array weights using a data file.&lt;br /&gt;
&lt;br /&gt;
=== Defining Ports ===&lt;br /&gt;
&lt;br /&gt;
Ports are used in a planar structure to order and index the sources for calculation of circuit parameters such as scattering (S), impedance (Z) and admittance (Y) parameters. In EM.Cube's [[Planar Module]], you can use the following types of sources to define ports:&lt;br /&gt;
&lt;br /&gt;
* Gap Sources&lt;br /&gt;
* Probe Sources&lt;br /&gt;
* Active Lumped Elements&lt;br /&gt;
* De-Embedded Sources&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your planar structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree. Note that your project can have mixed gap and probes sources as well as active lumped element sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
'''You can define any number of ports equal to or less than the total number of sources in your project.''' The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50S by default. You can delete any port by selecting it from the Port List and clicking the '''Delete''' button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment and make sure that is what you intend. You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit''' button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM53.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edit Port dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Coupled Ports ===&lt;br /&gt;
&lt;br /&gt;
Sources can be coupled to each other to model coupled strip lines (CPS) on metal traces or coplanar waveguides (CPW) on slot traces. Similarly, probe sources may be coupled to each other. Coupling two or more sources does not change the way they excite a planar structure. It is intended only for the purpose of S parameter calculation. The feed lines or vias which host the coupled sources are usually parallel and aligned with one another and they are all grouped together as a single transmission line represented by a single port. This single &amp;amp;quot;coupled&amp;amp;quot; port then interacts with other coupled or uncoupled ports.&lt;br /&gt;
&lt;br /&gt;
You couple two or more sources using the '''Port Definition Dialog'''. To do so, you need to change the default port assignments. First, delete all the ports that are to be coupled from the Port List of the dialog. Then, define a new port by clicking the '''Add''' button of the dialog. This opens up the Add Port dialog, which consists of two tables: '''Available''' sources on the left and '''Associated''' sources on the right. A right arrow ('''--&amp;amp;gt;''') button and a left arrow ('''&amp;amp;lt;--''') button let you move the sources freely between these two tables. You will see in the &amp;amp;quot;Available&amp;amp;quot; table a list of all the sources that you deleted earlier. You may even see more available sources. Select all the sources that you want to couple and move them to the &amp;amp;quot;Associated&amp;amp;quot; table on the right. You can make multiple selections using the keyboard's '''Shift''' and '''Ctrl''' keys. Closing the Add Port dialog returns you to the Port Definition dialog, where you will now see the names of all the coupled sources next to the name of the newly added port.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is your responsibility to set up coupled ports and coupled transmission lines properly. For example, to excite the desirable odd mode of a coplanar waveguide (CPW), you need to create two rectangular slots parallel to and aligned with each other and place two gap sources on them with the same offsets and opposite polarities. To excite the even mode of the CPW, you use the same polarity for the two collocated gap sources. Whether you define a coupled port for the CPW or not, the right definition of sources will excite the proper mode. The couple ports are needed only for correct calculation of the port characteristics.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM51(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Coupling gap sources in the Port Definition dialog by associating more than one source with a single port.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Port Characteristics At Gap Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
A gap source on a metal trace and a probe source on a PEC via behave like a series voltage source with a prescribed strength (of 1V and zero phase by default) that creates a localized discontinuity on the path of electric current flow. At the end of a planar MoM simulation, the electric current passing through the voltage source is computed and integrated to find the total input current. From this one can calculate the input admittance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_W \hat{y} \cdot \mathbf{J_s} \, dy} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM54(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for gap sources on metal traces, where the line integration is performed across the width of the metal strip, and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_S \hat{z} \cdot \mathbf{J_p} \, ds} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM55.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for probe sources on PEC vias, where the surface integration is performed over the cross section of the via. On the other hand, a gap source on a slot trace behaves like a shunt current source with a prescribed strength (of 1A and zero phase by default) that creates a localized discontinuity on the path of magnetic current flow. At the end of a planar MoM simulation, the magnetic current passing through the current source is computed and integrated to find the total input voltage across the current filament. From this one can calculate the input impedance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{in} = \frac{V_{in}}{I_s} = \frac{\int_W \hat{y} \cdot \mathbf{M_s} \,dy} {V_s} = \frac{\int_W E_y \, dy}{V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM56.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the input admittance or impedance defined at a gap source port is referenced to the two terminals of the voltage source connected across the gap as shown in the figure below. This is different than the input admittance or impedance that one may normally define for a microstrip port, which is referenced to the substrate's ground.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM59(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Definition of different input impedances at the gap location.&lt;br /&gt;
&lt;br /&gt;
To resolve this problem, you can place a gap source on a metal strip line by a distance of a quarter guide wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/4) away from its open end. Note that (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; = 2p/ß), where ß is the propagation constant of the metallic transmission line. As show in the figure below, the impedance looking into an open quarter-wave line segment is zero, which effectively shorts the gap source to the planar structure's ground. The gap admittance or impedance in this case is identical to the input admittance or impedance of the planar structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM60(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing a gap source a quarter guide wavelength away from the open end of a feed line to effectively short it to the ground at the gap location.&lt;br /&gt;
&lt;br /&gt;
The same principle applies to the gap sources on slot traces. The figure below shows how to place two gap sources with opposite polarities a quarter guide wavelength away from their shorted ends to calculate the correct input impedance of the CPW line looking to the left of the gap sources. Note that in this case, you deal with shunt filament current sources across the two slot lines and that the slot line carry magnetic currents. The end of the slot lines look open to the magnetic currents, but in reality they short the electric field. The quarter-wave CPW line acts as an open circuit to the current sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM61(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing two oppositely polarized gap sources a quarter guide wavelength away from the short end of a CPW line to effectively create an open circuit beyond the gap location.&lt;br /&gt;
&lt;br /&gt;
The case of a probe source placed on a PEC via that is connected to a ground plane is more straightforward. In this case, the probe source's gap discontinuity is placed at the middle plane of the PEC via. If the via is short, it is meshed using a single prismatic element, which is connected to the ground from one side and to the metal strip line from the other. Therefore, the probe admittance or impedance is equal to that of the structure at a reference plane that passed through the host via.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM62(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Input impedance of a probe source on a PEC via connected to a ground plane.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Multiport Structures Using Linear Superposition ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure has two or more sources, but you have not defined any ports, all the lumped sources excite the structure locally and contribute to the excitation vector needed for the MoM solution of the problem. However, when you assign N ports to the sources, then you have a multiport structure that is characterized by an N×N admittance matrix (instead of a single Y&amp;lt;sub&amp;gt;in&amp;lt;/sub&amp;gt; parameter), or an N×N impedance matrix, or an N×N scattering matrix. To calculate these matrices, EM.Cube uses a binary excitation scheme in conjunction with the principle of linear superposition. In this binary scheme, the structure is analyzed N times. Each time one of the N port-assigned sources is excited, and all the other port-assigned sources are turned off.&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on metal traces and probe sources on PEC vias, turning a source off means shorting a series voltage source. The electric currents passing through these sources are then found at each port location, and the admittance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_m = \sum_{n=1}^N Y_{mn} V_n, \quad \quad Y_{mn} = \frac{I_m}{V_n} \bigg|_{V_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM57.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on slot traces, turning a source off means opening a shunt filament current source. The magnetic currents passing through the source locations, and thus the voltages across them, are then found at all ports, and the impedance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_m = \sum_{n=1}^N Z_{mn} I_n, \quad \quad Z_{mn} = \frac{V_m}{I_n} \bigg|_{I_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM58.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The N solution vectors that are generated through the N binary excitation analyses are finally superposed to produce the actual solution to the problem. However, in this process, EM.Cube also calculates all the port characteristics. Keep in mind that the impedance (Z) and admittance (Y) matrices are inverse of each other. From the impedance matrix, the scattering matrix is calculated using the following relation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM63.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Lumped Elements In Planar MoM ===&lt;br /&gt;
&lt;br /&gt;
Lumped elements are components, devices, or circuits whose overall dimensions are very small compared to the wavelength. As a result, they are considered to be dimensionless compared to the dimensions of a mesh cell. In fact, a lumped element is equivalent to an infinitesimally narrow gap that is placed in the path of current flow, across which the device's governing equations are enforced. Using Kirkhoff's laws, these device equations normally establish a relationship between the currents and voltages across the device or circuit. Crossing the bridge to Maxwell's domain, the device equations must now be cast into a from o boundary conditions that relate the electric and magnetic currents and fields. EM.Cube's [[Planar Module]] allows you to define passive circuit elements: '''Resistors'''(R), C'''apacitors'''(C), I'''nductors'''(L), and series and parallel combinations of them as shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image106.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A series-parallel RLC combination that can be modeled as a lumped circuit in [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Lumped elements are conceptualized in a similar way as gap or probe sources. They are indeed considered as infinitesimally narrow gaps placed in the path of current flow, across which Ohm's law is enforced. If a lumped element is placed on a PEC or conductive sheet trace, it is treated as a series connection. The boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; &lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{x}\cdot \mathbf{E_{gap}} \, dx = Z_L \int_W \hat{y} \cdot \mathbf{J_s} \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM67.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Z&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total impedance across the two terminals of the series element. If the lumped element is placed on a slot trace, it is treated as a shunt connection that creates a current discontinuity. In this case, the magnetic current across the gap is continuous, and the boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_{gap} = Y_L V_{in} \quad\quad \int_{\delta} J_Y^{fila} \, dx = Y_L \int_W E_y \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \int_{\delta} \hat{x}\cdot\hat{n} \times (\mathbf{H_{gap}^+ - H_{gap}^-}) \, dx = Y_L \int_W \hat{y}\cdot\mathbf{M_s} \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM70(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Y&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total admittance across the two terminals of the shunt element. If a lumped element is placed on a PEC via that is connected to a metal strip from one side and to a PEC ground plane from the other end, it is indeed as a series connection across a gap discontinuity at the middle plane of the via. If the via is short, it is meshed using a single prismatic element. In that case, the lumped element in effect shunts the metal strip to the ground. The boundary condition at the location of the lumped element across the PEC via is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{z}\cdot \mathbf{E_{gap}} \, dz = Z_L \int_S \hat{z} \cdot \mathbf{J_p} \, ds&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM68.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM69.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Using a shunt lumped element on a PEC via to terminate a metallic strip line.&lt;br /&gt;
&lt;br /&gt;
=== Defining Lumped Circuits ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM64.png|thumb|400px|Lumped Element dialog]]&lt;br /&gt;
To define a lumped RLC circuit in your planar structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Lumped Element Dialog by right clicking on the '''Lumped Elements''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Gap Topology''' section of the dialog, select one of the two options: '''Gap on Line''' and '''Gap on Via'''.&lt;br /&gt;
* In the '''Lumped Circuit Type''' section of the dialog, select one of the two options: '''Passive RLC''' and '''Active with Gap Source'''.&lt;br /&gt;
* Depending on your choice of gap topology, in the '''Lumped Circuit Location''' section of the dialog, you will find either a list of all the '''Rectangle Strip Objects''' or a list of all the '''PEC Via Objects''' available in the project workspace. Select the desired rectangle strip or embedded PEC via object.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the rectangle strip line or from the bottom of the via object, whichever the case. The value of '''Offset''' by default is initially set to the center of the line or via.&lt;br /&gt;
* In the '''Load Properties''' section, the series and shunt resistance values Rs and Rp are specified in Ohms, the series and shunt inductance values Ls and Lp are specified in nH (nanohenry), and the series and shunt capacitance values Cs and Cp are specified in pF (picofarad). Only the checked elements are taken into account in the total impedance calculation. By default, only the series resistor is checked with a value of 50S, and all other circuit elements are initially greyed out.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] allows you to define a voltage source in series with a series-parallel RLC combination and place them across the gap. This is called an active lumped element. If you choose the '''Active with Gap Source''' option of the '''Lumped Circuit Type''' section of the dialog, the right section of the dialog entitled '''Source Properties''' becomes enabled, where you can you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of PMC traces) and the '''Phase''' in degrees. Also, the box labeled '''Direction''' becomes relevant in this case which contains a gap source. Otherwise, a passive RLC circuit does not have polarity.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects or PEC via objects, the array object will also be listed as an eligible object for lumped element placement. A lumped element will then be placed on each element of the array. All the lumped elements will have identical direction, offset, resistance, inductance and capacitance values. If you define an active lumped element, you can prescribe certain amplitude and/or phase distribution to the gap sources just like in the case of gap and probe sources. The available amplitude distributions include '''Uniform''', '''Binomial'''''', Chebyshev''' and '''Data File'''.&lt;br /&gt;
&lt;br /&gt;
{{Note|The impedance of the lumped circuit is calculated at the operating frequency of the project using the specified R, L and C values. As you change the frequency, the value of the impedance that is passed to the Planar MoM engine will change.}}&lt;br /&gt;
&lt;br /&gt;
=== Calculating Scattering Parameters Using Prony's Method ===&lt;br /&gt;
&lt;br /&gt;
The calculation of the scattering (S) parameters is usually an important objective of modeling planar structures especially for planar circuits like filters, couplers, etc. As you saw earlier, you can use lumped sources like gaps and probes and even active lumped elements to calculate the circuit characteristics of planar structures. The admittance / impedance calculations based on the gap voltages and currents are accurate at RF and lower microwave frequencies or when the port transmission lines are narrow. In such cases, the electric or magnetic current distributions across the width of the port line are usually smooth, and quite uniform current or voltage profiles can easily be realized. At higher frequencies, however, a more robust method is needed for calculating the port parameters.&lt;br /&gt;
&lt;br /&gt;
One can calculate the scattering parameters of a planar structure directly by analyzing the current distribution patterns on the port transmission lines. The discontinuity at the end of a port line typically gives rise to a standing wave pattern that can clearly be discerned in the line's current distribution. From the location of the current minima and maxima and their relative levels, one can determine the reflection coefficient at the discontinuity, i.e. the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter. A more robust technique is Prony’s method, which is used for exponential approximation of functions. A complex function f(x) can be expanded as a sum of complex exponentials in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f(x) \approx \sum_{n=1}^N c_i e^{-j\gamma_i x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM73.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are complex coefficients and &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are, in general, complex exponents. From the physics of transmission lines, we know that lossless lines may support one or more propagating modes with pure real propagation constants (real &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents). Moreover, line discontinuities generate evanescent modes with pure imaginary propagation constants (imaginary &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents) that decay along the line as you move away from the location of such discontinuities.&lt;br /&gt;
&lt;br /&gt;
In practical planar structures for which you want to calculate the scattering parameters, each port line normally supports one, and only one, dominant propagating mode. Multi-mode transmission lines are seldom used for practical RF and microwave applications. Nonetheless, each port line carries a superposition of incident and reflected dominant-mode propagating signals. An incident signal, by convention, is one that propagates along the line towards the discontinuity, where the phase reference plane is usually established. A reflected signal is one that propagates away from the port plane. Prony's method can be used to extract the incident and reflected propagating and evanescent exponential waves from the standing wave data. From a knowledge of the amplitudes (expansion coefficients) of the incident and reflected dominant propagating modes at all ports, the scattering matrix of the multi-port structure is then calculated. In Prony's method, the quality of the S parameter extraction results depends on the quality of the current samples and whether the port lines exhibit a dominant single-mode behavior. Clean current samples can be drawn in a region far from sources or discontinuities, typically a quarter wavelength away from the two ends of a feed line.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM71.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Minimum and maximum current locations of the standing wave pattern on a microstrip line feeding a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== De-Embedded Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM74.png|thumb|300px|The [[Planar Module]]'s De-embedded Source dialog]]&lt;br /&gt;
EM.Cube's [[Planar Module]] provides de-embedded sources for the exclusive purpose of accurate S parameter calculation based on Prony's method. A de-embedded source is indeed a gap source that is placed close to an open end of a feed line. The other end of the line is typically connected to a planar structure of interest. Like gap sources, de-embedded sources can be placed only on rectangle strip objects. '''During mesh generation, EM.Cube automatically extends the length of a port line that hosts a de-embedded source to about two effective wavelengths.''' This is done to provide enough length for formation of a clean standing wave current pattern. The effective wavelength of a transmission line for length extension purposes is calculated in a similar manner as for the planar mesh resolution. It is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where &amp;amp;epsilon;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivities of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivities of the two substrate layers just above and below the metallic trace. The host port line must always be open from one end to allow for its length extension. You have to make sure that there are no objects standing on the way of the extended port line to avoid any unwanted overlaps.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM72.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The mesh of a patch antenna excited with a de-embedded source. Note the feed line extension in the mesh view.&lt;br /&gt;
&lt;br /&gt;
You can define de-embedded source on metal (PEC), slot (PMC) and conductive sheet traces. To define a de-embedded source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the De-Embedded Source Dialog by right clicking on the '''De-Embedded Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' or arrays of such objects that are available in the project workspace. The box labeled '''Direction''' shows the direction the phase reference plane for S parameter calculation and determines which end of the host line to place the source at. You have the option to select either the positive or negative direction to bounce the source between the two ends of the line.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the phase reference plane from the end of the feed line object. The value of '''Offset''' by default is initially set to zero, meaning that the S parameters are calculated at the plane passing through the end of the feed line. Type in a new offset value or use the spin buttons to move the source arrow along the line away from its end. As you change the offset value, you can see the source arrow move along its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of slot traces) and '''Phase''' in degrees.&lt;br /&gt;
* In the '''Prony Mode Extraction''' section, you can specify the '''Number of Prony Modes''', which refers to the number of positive-negative exponential pairs that are extracted from the standing wave current data. The default value is 1 and represents the dominant quasi-TEM incident/reflected signal pair.&lt;br /&gt;
&lt;br /&gt;
In a planar project with de-embedded sources, if you do not define any ports, the feed lines will simply be extended, and the exciting gap sources will be placed at the open ends of these extended lines. Note that if you define a de-embedded source along with a port definition in your project, then all the other port-assigned sources of your project must be of the same de-embedded type. You can define de-embedded sources for coplanar waveguides (CPW) on slot traces. To do so, you need to place two collocated, de-embedded sources with identical offsets (same phase reference plane), same source amplitudes but 180° phase difference. Note that for CPW structures, setting the number of Prony modes to 2 can get you more accurate results. In this case, the two extracted Prony modes will include the incident and reflected, odd and even, propagating modes of the CPW.&lt;br /&gt;
&lt;br /&gt;
=== Using the Line Calculator ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides a simple calculator for analyzing planar transmission lines. It is based on the frequency domain finite difference (FDFD) technique. You can find the characteristic impedance, effective permittivity and guide wavelength of a TEM or quasi-TEM transmission line defined based on your project's background structure. Therefore, any arbitrary stack-up configuration with any number of substrate layers can be considered.&lt;br /&gt;
&lt;br /&gt;
To access the Line Calculator, first you have to select a metal (PEC) trace or a slot (PMC) trace in the Navigation Tree. Right click on the name of a trace and select '''Line Calc...''' from the contextual menu to open the Line Calc Dialog. You can analyze a metal strip line on any PEC trace or a coplanar waveguide (coupled slot lines) on any PMC trace. The 2D line structure to be analyzed by the FDFD method consists of the background structure of your project with a metal strip or CPW located at the Z-plane of your selected trace. Depending on whether your open the Line Calc dialog from a metal trace or a slot trace, a picture of a microstrip line or a CPW line appear at the top of the dialog, respectively. In the former case, you have to specify '''Strip Width''' in the project units. In the latter case, you have to specify '''Slot Width''', too. Keep in mind that the strip width is equal to the spacing between the two slot lines minus the width of individual slot lines. Clicking the Analyze button of the dialog evokes the FDTD simulator, and calculated results are reflected in the boxes labeled '''Zo''', '''Effective Permittivity''' and '''Guide Wavelength'''.&lt;br /&gt;
&lt;br /&gt;
When your background structure involves a slot (PMC) trace, then there is an infinite PEC ground plane at the plane of the slot trace. In that case, when you analyze a strip line on a metal trace, you must keep in mind that your stack-up configuration will be truncated by the slot's ground plane just for purpose of Z&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; calculation. A typical case of this type is a slot-coupled patch antenna fed by a microstrip line underneath the slot. From the point of view of the Line Calculator, the microstrip line lies on a substrate layer that is backed by the slot's ground plane and it does not see the substrate layer lying above the slot plane.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM75.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Analyzing a metal strip line using the line calculator.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM76.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Analyzing a coplanar waveguide using the line calculator.&lt;br /&gt;
&lt;br /&gt;
=== Short Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM110.png|thumb|250px|Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A short dipole is the simplest type of radiator, which consists of a short current element of length &amp;amp;amp;DELTA;l, aligned along a unit vector û and carrying a current of I Amperes. The product I&amp;amp;amp;DELTA;l is often called the dipole moment and gives a measure of the radiator's strength. A short dipole in the free space generates an azimuth-symmetric, almost omni-directional, far field. However, the radiated fields of a short dipole above a layered planar background structure are greatly altered by the presence of the substrate layers. Note that the electric and magnetic field radiated by a short dipole in the presence of a layered background structure are indeed nothing but the dyadic Green's functions of that structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{EJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{HJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM109(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To define a short dipole source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Short Dipoles''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' The Short Dipole Dialog opens up.&lt;br /&gt;
* In the section titled '''Source Location''', enter values for the X, Y and Z coordinates of the dipole's center. By default, a new dipole is placed at the origin of coordinates. As you change the coordinates using the spin buttons, you will see the dipole move in the project workspace.&lt;br /&gt;
* In the section titled '''Source Properties''', you can change the values of the dipole's '''Amplitude''' (in A), '''Phase''' (in degrees) and '''Length''' in the project's length units. A new dipole, by default, is Z-directed. You can change its orientation by entering the components of its unit vector in the three boxes labeled '''Direction Unit Vector'''.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM77.png|thumb|300px|[[Planar Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure with an incident plane wave to explore its scattering characteristics such as radar cross section (RCS). Exciting an antenna structure with an incident plane wave is equivalent to operating it in the &amp;amp;quot;receive&amp;amp;quot; mode. Plane wave excitation in the [[Planar Module]] is particularly useful for calculation of reflection and transmission coefficients of periodic surfaces. Note that the incident plane wave in your project bounces off the layered background structure and part of it also penetrates the substrate layers. The total incident field that is used to calculate the excitation vector of the MoM linear system is a superposition of the incident, reflected and transmitted plane waves at various regions of your planar structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{inc}(r)} = E_0 (\mathbf{\hat{e}_1} e^{ -jk_0 \mathbf{\hat{k}_1\cdot r} } + &lt;br /&gt;
R \mathbf{\hat{e}_2} e^{ -jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{inc}(r)} = \frac{E_0}{\eta_0} ( \mathbf{\hat{k}_1 \times \hat{e}_1} e^{-jk_0 \mathbf{\hat{k}_1 \cdot r} } + &lt;br /&gt;
R \mathbf{\hat{k}_2 \times \hat{e}_2} e^{-jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi&amp;lt;/math&amp;gt; is the characteristic impedance of the free space, '''k&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the unit propagation vectors of the incident plane wave and the wave reflected off the topmost substrate layer, respectively, and '''ê&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''ê&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the polarization vectors corresponding to the electric field of those waves. R is the reflection coefficient at the interface between the top half-space and the topmost substrate layer and has different values for the TM and TE polarizations.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the theta and phi angles of the propagation vector in the spherical coordinate system. The default values are &amp;amp;theta; = 180° and &amp;amp;phi; = 0°, representing a normally incident plane wave propagating along the -Z direction with a +X-polarized electric field vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization cases, the magnetic and electric fields are parallel to the XY plane, respectively. The left-hand (LCP) and right-hand (RCP) circular polarization cases are restricted to normal incidences only (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the '''Amplitude''' of the incident electric field in V/m and '''Phase''' in degrees. The default field Amplitude is 1 V/m, with a zero Phase.&lt;br /&gt;
* The direction of the Plane Wave is determined by the incident '''Theta''' and '''Phi''' angles expressed in the spherical coordinate system in degrees. You have to choose the '''Polarization''' of the plane wave from the four options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''and '''RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''. The components of the unit propagation vector are shown based on your choice of the angles of incidence. The components of the normalized E- and H-field vectors are also displayed based on your choice of polarization.&lt;br /&gt;
&lt;br /&gt;
== Running Planar MoM Simulations ==&lt;br /&gt;
&lt;br /&gt;
The first step of planning a planar MoM simulation is defining your planar structure. This consists of the background structure plus all the finite-sized metal and slot trace objects and possibly embedded metal or dielectric objects that are interspersed among the substrate layers. The background stack-up is defined in the Layer Stack-up dialog, which automatically opens up as soon as you enter the [[Planar Module]]. The metal and slot traces and embedded object sets are listed in the Navigation Tree, which also shows all the geometrical (CAD) objects you draw in the project workspace under each object group at different Z-planes.&lt;br /&gt;
&lt;br /&gt;
The next step is to decide on the excitation scheme. If your planar structure has one or more ports and you seek to calculate its port characteristics, then you have to choose one of the lumped source types or a de-embedded source. If you are interested in the scattering characteristics of your planar structure, then you must define a plane wave source. Before you can run a planar MoM simulation, you also need to decide on the project's observables. These are the simulation data that you expect EM.Cube to generate as the outcome of the numerical simulation. EM.Cube's [[Planar Module]] offers the following observables:&lt;br /&gt;
&lt;br /&gt;
* Current Distribution&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Far Fields (Radiation Patterns or Radar Cross Section)&lt;br /&gt;
* Huygens Surfaces&lt;br /&gt;
* Port Characteristics&lt;br /&gt;
* Periodic Characteristics&lt;br /&gt;
&lt;br /&gt;
If you run a simulation without having defined any observables, no data will be generated at the end of the simulation. Some observables require a certain type of excitation source. For example, port characteristics will be calculated only if the project contains a port definition, which in turn requires the existence of at least one gap or probe or de-embedded source. The periodic characteristics (reflection and transmission coefficients) are calculated only if the structure has a periodic domain and excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Simulation Modes ===&lt;br /&gt;
&lt;br /&gt;
The simplest simulation type in EM.Cube is an analysis. In this mode, the planar structure in your project workspace is meshed at the center frequency of the project. EM.Cube generates an input file at this single frequency, and the Planar MoM simulation engine is run once. Upon completion of the planar MoM simulation, a number of data files are generated depending on the observables you have defined in your project. An analysis is a single-run simulation.&lt;br /&gt;
&lt;br /&gt;
EM.Cube offers a number of multi-run simulation modes. In such cases, the Planar MoM simulation engine is run multiple times. At each engine run, certain parameters are varied and a collection of simulation data are generated. At the end of a multi-run simulation, you can graph the simulation results in EM.Grid or you can animate the 3D simulation data from the Navigation Tree. For example, in a frequency sweep, the frequency of the project is varied over its specified bandwidth. Port characteristics are usually plotted vs. frequency, representing your planar structure's frequency response. In an angular sweep, the &amp;amp;theta; or &amp;amp;phi; angle of incidence of a plane wave source is varied over their respective ranges. EM.Cube's [[Planar Module]] currently provides the following types of multi-run simulation modes:&lt;br /&gt;
&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
* Angular Sweep&lt;br /&gt;
* R/T Macromodel&lt;br /&gt;
* Huygens Sweep&lt;br /&gt;
* [[Optimization]]&lt;br /&gt;
* HDMR&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting a simulation mode in [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
To run a planar MoM analysis of your project structure, open the Run Simulation Dialog by clicking the '''Run''' [[File:run_icon.png]] button on the '''Simulate Toolbar''' or select '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt;''' '''Run''' or use the keyboard shortcut '''Ctrl+R'''. The '''Analysis''' option of the '''Simulation Mode''' dropdown list is selected by default. Once you click the '''Run''' button, the simulation starts. A new window, called the '''Output Window''', opens up that reports the different stages of simulation and the percentage of the tasks completed at any time. After the simulation is successfully completed, a message pops up and reports the end of simulation. In certain cases like calculating scattering parameters of a circuit or reflection / transmission characteristics of a periodic surface, some results are also reported in the Output Window. At the end of a simulation, you need to click the '''Close''' button of the Output Window to return to the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM78.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Stages Of A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar MoM simulation engine uses a particular formulation of the method of moments called mixed potential integral equation (MPIE). Due to high-order singularities, the dyadic Green's functions for electric fields generated by electric currents as well as the dyadic Green's functions for magnetic fields generated by magnetic currents have very slow convergence behaviors. Instead of using these slowly converging dyadic Green's function, the MPIE formulation uses vector and scalar potentials. These include vector electric potential '''A(r)''', scalar electric potential K&amp;lt;sup&amp;gt;&amp;amp;Phi;&amp;lt;/sup&amp;gt;'''(r)''', vector magnetic potential '''F(r)''' and scalar magnetic potential K&amp;lt;sup&amp;gt;&amp;amp;Psi;&amp;lt;/sup&amp;gt;'''(r)'''. These potentials have singularities of lower orders. As a result, they coverage relatively faster. The speed of their convergence is further increased drastically using special singularity extraction techniques.&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation consists of two major stages: matrix fill and linear system inversion. In the first stage, the moment matrix and excitation vector are calculated. In the second stage, the MoM system of linear equations is inverted using one of the several available matrix solvers to find the unknown coefficients of all the basis functions. The unknown electric and magnetic currents are linear superpositions of all these elementary solutions. These can be visualized in EM.Cube using the current distribution observables. Having determined all the electric and magnetic currents in your planar structure, EM.Cube can then calculate the near fields on prescribed planes. These are introduced as field sensor observables. The near-zone electric and magnetic fields are calculated using a spectral domain formulation of the dyadic Green's functions. Finally the far fields of the planar structure are calculated in the spherical coordinate system. These calculations are performed using the asymptotic form of the dyadic Green's functions using the &amp;amp;quot;stationary phase method&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Setting Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation involves a number of numerical parameters that take preset default values unless you change them. You can access these parameters and change their values by clicking the '''Settings''' button next to the '''Select Engine''' dropdown list in the [[Planar Module]]'s Simulation Run dialog. In most cases, you do not need to open this dialog and you can leave all the default numerical parameter values intact. However, it is useful to familiarize yourself with these parameters, as they may affect the accuracy of your numerical results.&lt;br /&gt;
&lt;br /&gt;
The Planar MoM Engine Settings Dialog is organized in a number of sections. Here we describe some of the numerical parameters. The &amp;amp;quot;'''Matrix Fill'''&amp;amp;quot; section of the dialog deals with the operations involving the dyadic Green's functions. You can set a value for the '''Convergence Rate for Integration''', which is 1E-5 by default. This is used for the convergence test of all the infinite integrals in the calculation of the Hankel transform of spectral-domain dyadic Green's functions. When the substrate is lossy, the surface wave poles are captured in the complex integration plane using contour deformation. You can change the maximum number of iterations involved in this deformed contour integration, whose default value is 20. When the substrate is very thin with respect to the wavelength, the dyadic Green's functions exhibit numerical instability. Additional singularity extraction measures are taken to avoid numerical instability but at the expense of increased computation time. By default, a thin substrate layer is defined to a have a thickness less than 0.01&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;, where &amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective wavelength. You can modify the definition of &amp;amp;quot;Thin Substrate&amp;amp;quot; by entering a value for '''Thin Substrate Threshold''' different than the default 0.01. The parameter '''Max Coupling Range''' determines the distance threshold in wavelength between the observation and source points after which the Green's interactions are neglected. This distance by default is set to 1,000 wavelengths. For electrically small structures, the phase variation across the structure may be negligible. In such cases, a fast quasi-static analysis can be carried out. You can set this threshold in wavelengths in the box labeled '''Max Dimensions for Quasi-Static Analysis'''.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Spectral Domain Integration&amp;amp;quot; section of the dialog, you can set a value to '''Max Spectral Radius in k0''', which has a default value of 30. This means that the infinite spectral-domain integrals in the spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; are pre-calculated and tabulated up to a limit of 30k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant. These integrals may converge much faster based on the specified Convergence Rate for Integration described earlier. However, in certain cases involving highly oscillatory integrands, much larger integration limits like 100k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; might be needed to warrant adequate convergence. For spectral-domain integration along the real k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; axis, the interval [0, Nk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;] is subdivided into a large number of sub-intervals, within each an 8-point Gauss-Legendre quadrature is applied. The next parameter, '''No. Radial Integration Divisions per k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;''', determines how small these intervals should be. By default, 2 divisions are used for the interval [0, k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;]. In other words, the length of each integration sub-interval is k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/2. You can increase the resolution of integration by increasing this value above 2. Finally, instead of 2D Cartesian integration in the spectral domain, a polar integration is performed. You can set the '''No. of Angular Integration Points''', which has a default value of 100.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM79.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Linear System Solvers ===&lt;br /&gt;
&lt;br /&gt;
After the MoM impedance matrix '''[Z]''' (not to be confused with the impedance parameters) and excitation vector '''[V]''' have been computed through the matrix fill process, the planar MoM simulation engine is ready to solve the system of linear equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[Z]}_{N\times N} \cdot \mathbf{[I]}_{N\times 1} = \mathbf{[V]}_{N\times 1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM81.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''[I]''' is the solution vector, which contains the unknown amplitudes of all the basis functions that represent the unknown electric and magnetic currents of finite extents in your planar structure. In the above equation, N is the dimension of the linear system and equal to the total number of basis functions in the planar mesh. EM.Cube's linear solvers compute the solution vector'''[I]''' of the above system. You can instruct EM.Cube to write the MoM matrix and excitation and solution vectors into output data files for your examination. To do so, check the box labeled &amp;amp;quot;'''Output MoM Matrix and Vectors'''&amp;amp;quot; in the Matrix Fill section of the Planar MoM Engine Settings dialog. These are written into three files called mom.dat1, exc.dat1 and soln.dat1, respectively.&lt;br /&gt;
&lt;br /&gt;
There are a large number of numerical methods for solving systems of linear equations. These methods are generally divided into two groups: direct solvers and iterative solvers. Iterative solvers are usually based on matrix-vector multiplications. Direct solvers typically work faster for matrices of smal to medium size (N&amp;amp;lt;3,000). EM.Cube's [[Planar Module]] offers five linear solvers:&lt;br /&gt;
&lt;br /&gt;
# LU Decomposition Method&lt;br /&gt;
# Biconjugate Gradient Method (BiCG)&lt;br /&gt;
# Preconditioned Stabilized Biconjugate Gradient Method (BCG-STAB)&lt;br /&gt;
# Generalized Minimal Residual Method (GMRES)&lt;br /&gt;
# Transpose-Free Quasi-Minimum Residual Method (TFQMR)&lt;br /&gt;
&lt;br /&gt;
Of the above list, LU is a direct solver, while the rest are iterative solvers. BiCG is a relatively fast iterative solver, but it works only for symmetric matrices. You cannot use BiCG for periodic structures or planar structures that contain both metal and slot traces at different planes, as their MoM matrices are not symmetric. The three solvers BCG-STAB, GMRES and TtFQMR work well for both symmetric and asymmetric matrices and they also belong to a class of solvers called '''Krylov Sub-space Methods'''. In particular, the GMRES method always provides guaranteed unconditional convergence.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, provides a &amp;amp;quot;'''Automatic'''&amp;amp;quot; solver option that picks the best method based on the settings and size of the numerical problem. For linear systems with a size less than N = 3,000, the LU solver is used. For larger systems, BiCG is used when dealing with symmetric matrices, and GMRES is used for asymmetric matrices. If the size of the linear system exceeds N = 15,000, the sparse version of the iterative solvers is used, utilizing a row-indexed sparse storage scheme. You can override the automatic solver option and manually set you own solver type. This is done using the '''Solver Type''' dropdown list in the &amp;amp;quot;'''Linear System Solver'''&amp;amp;quot; section of the Planar MoM Engine Settings dialog. There are also a number of other parameters related to the solvers. The default value of '''Tolerance of Iterative Solver''' is 1E-3, which can be increased for more ill-conditioned systems. The maximum number of iterations is usually expressed as a multiple of the systems size. The default value of '''Max No. of Solver Iterations / System Size''' is 3. For extremely large systems, sparse versions of iterative solvers are used. In this case, the elements of the matrix are thresholded with respect to the larges element. The default value of '''Threshold for Sparse Solver''' is 1E-6, meaning that all the matrix elements whose magnitude is less than 1E-6 times the large matrix elements are set equal to zero. There are two more parameters that are related to the Automatic Solver option. These are &amp;amp;quot;''' User Iterative Solver When System Size &amp;amp;gt;'''&amp;amp;quot; with a default value of 3,000 and &amp;amp;quot;''' Use SParse Storage When System Size &amp;amp;gt;''' &amp;amp;quot; with a default value of 15,000. In other words, you control the automatic solver when to switch between direct and iterative solvers and when to switch to the sparse version of iterative solvers.&lt;br /&gt;
&lt;br /&gt;
If your computer has an Intel CPU, then EM.Cube offers special versions of all the above linear solvers that have been optimized for Intel CPU platforms. These optimal solvers usually work 2-3 time faster than their generic counterparts. When you install EM.Cube, the option to use Intel-optimized solvers is already enabled. However, you can disable this option (e.g. if your computer has a non-Intel CPU). To do that, open the EM.Cube's Preferences Dialog from '''Menu &amp;amp;gt; Edit &amp;amp;gt; Preferences''' or using the keyboard shortcut '''Ctrl+H'''. Select the Advanced tab of the dialog and uncheck the box labeled &amp;amp;quot;''' Use Optimized Solvers for Intel CPU'''&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM82.png]]&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
Electric and magnetic currents are the fundamental output data of a planar MoM simulation. After the numerical solution of the MoM linear system, they are found using the solution vector '''[I]''' and the definitions of the electric and magnetic vectorial basis functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{[I]}_{N\times 1} = &lt;br /&gt;
\begin{bmatrix} I^{(J)} \\ \\ V^{(M)} \end{bmatrix} \quad \Rightarrow \quad&lt;br /&gt;
&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\mathbf{J(r)} = \sum_{n=1}^N I_n^{(J)} \mathbf{f_n^{(J)} (r)} \\&lt;br /&gt;
\\&lt;br /&gt;
\mathbf{M(r)} = \sum_{k=1}^K V_k^{(M)} \mathbf{f_k^{(M)} (r)}&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that currents are complex vector quantities. Each electric or magnetic current has three X, Y and Z components, and each complex component has a magnitude and phase. You can visualize the surface electric currents on metal (PEC) and conductive sheet traces, surface magnetic currents on slot (PMC) traces and vertical volume currents on the PEV vias and embedded dielectric objects. 3D color-coded intensity plots of electric and magnetic current distributions are visualized in the project workspace, superimposed on the surface of physical objects.&lt;br /&gt;
&lt;br /&gt;
In order to view the current distributions, you must first define them as observables before running the planar MoM simulation. To do that, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. At the top of the dialog and in the section titled '''Active Trace / Set''', you can select a trace or embedded object set where you want to observe the current distribution. You can also select the current map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for current amplitude and phase, while the latter generates a 3D vector plot.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM84.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Current Distribution dialog.&lt;br /&gt;
&lt;br /&gt;
Once you close the current distribution dialog, the label of the selected trace or object set is added under the '''Current Distributions''' node of the Navigation Tree. &lt;br /&gt;
&lt;br /&gt;
{{Note|You have to define a separate current distribution observable for each individual trace or embedded object set.}}&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the current distribution nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''J''') and magnetic ('''M''') currents as well as the total electric and magnetic currents defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{J_{tot}} | = \sqrt{|J_x|^2 + |J_y|^2 + |J_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{M_{tot}} | = \sqrt{|M_x|^2 + |M_y|^2 + |M_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can click on any current plot to visualize it in the project workspace. A legend box at the upper right corner of the screen shows the color map scale as well as the minimum, maximum, mean and standard deviation of the current data and its units. To exit the 3D plot view and return to EM.Cube's normal view, hit the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM85(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The current distribution map of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM86(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Vectorial (cone) visualization of the current distribution on a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
Once all the current distributions are known in a planar structure, the electric and magnetic fields can be calculated everywhere in that structure using the dyadic Greens's functions of the background structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{EJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{EM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{HJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{HM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM92(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above equations can be cast into the spectral domain as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{EJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{EM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{HJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{HM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM93(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Calculation of the near-zone fields (fields at the vicinity of the unknown currents) is done at the post-processing stage and in a Cartesian coordinate systems. These calculations involve doubly infinite spectral-domain integrals, which are computed numerically. As was mentioned earlier, EM.Cube's planar MoM engine rather uses a polar integration scheme, where the radial spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; is integrated over the interval [0, Mk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;], M being a large enough number to represent infinity, and the angular spectral variable t is integrated over the interval [0, 2&amp;amp;pi;]. You also saw some of the numerical parameters related to this spectral-domain integration scheme.&lt;br /&gt;
&lt;br /&gt;
{{Note|When the observation plane is placed very close to the radiating J and M currents, the Green's functions exhibit singularities, which translate to very slow convergence or divergence of the integrals. You need to be careful to place field sensors at adequate distances from these radiating sources.}}&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|300px|[[Planar Module]]'s Field Sensor dialog]]&lt;br /&gt;
In order to view the near field distributions, you must first define field sensor observables before running the planar MoM simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of near field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear.&lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.&lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a planar MoM simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{E_{tot}}| = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{H_{tot}}| = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules, near field calculations in the [[Planar Module]] usually takes substantial time. This is due to the fact that at the end of a planar MoM simulation, the fields are not available anywhere (as opposed to the [[FDTD Module]]), and their computation requires integration of complex dyadic Green's functions (as opposed to [[MoM3D Module]]'s free space Green's functions).&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM116.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone electric field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone magnetic field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
Unlike differential-based methods, MoM simulators do not need a radiation box to calculate the far field data. The far-zone fields are calculated directly by integrating the currents on the traces and across the embedded objects using the asymptotic form of the background structure’s dyadic Green's functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{ff}(r)} = \iiint_V \mathbf{ \overline{\overline{G}}_{EJ,ff}(r|r') \cdot J(r') } \, d\nu ' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM,ff}(r|r') \cdot M(r') } \, d\nu '&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \dfrac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; is the characteristic impedance of the free space. As can be seen from the above equations, the far fields have the form of a TEM wave propagating in the radial direction away from the origin of coordinates. This means that the far-field magnetic field is always perpendicular to the electric field and the propagation vector, which in this case happens to be the radial unit vector in the spherical coordinate system. In other words, one only needs to know the far-zone electric field and can easily calculate the far-zone magnetic field from it. In EM.Cube's mixed potential integral equation formulation, the far-zone electric field can be expressed in terms of the asymptotic form of the vector electric and magnetic potentials '''A''' and '''F''':&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{E^{ff}}(x,y,z) = j k_0 \eta_0 \hat{r} \times [\hat{r} \times \mathbf{A}(r \to \infty)] +&lt;br /&gt;
j k_0 \hat{r} \times \mathbf{F}(r \to \infty)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The asymptotic form of these vector potentials are calculated using the &amp;amp;quot;'''Method of Stationary Phase'''&amp;amp;quot; when k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;rarr; &amp;amp;infin;. In that case, one can use the approximation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_0 |\mathbf{r-r'}| \approx k_0 (r - \mathbf{\hat{r} \cdot r'}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM115.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After applying the stationary phase method, one can extract the spherical wave factor exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/r from the far-zone electric field, leaving the rest as functions of the spherical angles &amp;amp;theta; and &amp;amp;phi;. In other words, the far field is normalized to r, the distance from the field observation point to the origin. It is customary to express the far fields in spherical components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;. Note that the outward propagating, TEM-type, far fields do not have radial components, i.e. E&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 0.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\theta}}(\theta, \phi) = \cos\theta \cos\phi E_x + \cos\theta \sin\phi E_y - \sin\theta E_z &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\phi}}(\theta, \phi) = -\sin\phi E_x + \cos\phi E_y &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM114.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM118.png|thumb|300px|[[Planar Module]]'s Radiation Pattern dialog]]&lt;br /&gt;
Even though the planar MoM engine does not need a radiation box, you still have to define a &amp;amp;quot;Far Field&amp;amp;quot; observable for radiation pattern calculation. This is because far field calculations take time and you have to instruct EM.Cube to perform these calculations. To define a far field, right click the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...'''. The Radiation Pattern Dialog opens up. You may accept the default settings, or you can change the value of '''Angle Increment''', which is expressed in degrees. You can also choose to '''Normalize 2D Patterns'''. In that case, the maximum value of a 2D paten graph will have a value of 1; otherwise, the actual far field values in V/m will be used on the graph.&lt;br /&gt;
&lt;br /&gt;
Once a planar MoM simulation is finished, three far field items are added under the Far Field item in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the &amp;amp;quot;Total&amp;amp;quot; far field. The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the whole structure or parts of it. In a 3D radiation pattern plot, the fields are always normalized to the maximum value of the total far field for visualization purpose:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM89.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM119.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D polar radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM120.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D vectorial (cone) radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
The 2D radiation pattern graphs can be plotted from EM.Cube's '''Data Manager'''. A total of eight 2D radiation pattern graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section of Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM124.png|thumb|300px|Planar Module's Radar Cross Section dialog]]&lt;br /&gt;
&lt;br /&gt;
When a planar structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields of that planar structure. EM.Cube can also calculate the radar cross section (RCS) of a planar target:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{|E_{\theta}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{|E_{\phi}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{|E_{tot}^{scat}|^2}{|E^{inc}|^2} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM123.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note that in this case the RCS is defined for a finite-sized target in the presence of an infinite background structure.''' The scattered &amp;amp;theta; and &amp;amp;phi; components of the far-zone electric field are indeed what you see in the 3D far field visualization of radiation (scattering) patterns. Instead of radiation or scattering patterns, you can instruct EM.Cube to plot 3D visualizations of &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and the total RCS. To do so, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* At the end of a planar MoM simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This fourth plane cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D mono-static radar cross section plot of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Running a Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
In a frequency sweep, the operating frequency of a planar structure is varied during each sweep run. EM.Cube's [[Planar Module]] offers two types of frequency sweep: Uniform and Adaptive. In a uniform frequency sweep, the frequency range and the number of frequency samples are specified. The samples are equally spaced over the frequency range. At the end of each individual frequency run, the output data are collected and stored. At the end of the frequency sweep, the 3D data can be visualized and/or animated, and the 2D data can be graphed in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
To run a uniform frequency sweep, open the '''Simulation Run Dialog''', and select the '''Frequency Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the frequency sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Frequency Settings''' dialog. The '''Frequency Range'''is initially set equal to your project's center frequency minus and plus half bandwidth. But you can change the values of '''Start Frequency'''and '''End Frequency''' as well as the '''Number of Samples'''. The dialog offers two options for '''Frequency Sweep Type''': '''Uniform''' or '''Adaptive'''. Select the former type. It is very important to note that in a MoM simulation, changing the frequency results in a change of the mesh of the structure, too. This is because the mesh density is defined in terms of the number of cells per effective wavelength. By default, during a frequency sweep, EM.Cube fixes the mesh density at the highest frequency, i.e., at the &amp;amp;quot;End Frequency&amp;amp;quot;. This usually results in a smoother frequency response. You have the option to fix the mesh at the center frequency of the project or let EM.Cube &amp;amp;quot;remesh&amp;amp;quot; the planar structure at each frequency sample during a frequency sweep. You can make one of these three choices using the radio button in the '''Mesh Settings''' section of the dialog. Closing the Frequency Settings dialog returns you to the Simulation Run dialog, where you can start the planar MoM frequency sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Frequency Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Adaptive Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
Frequency sweeps are often performed to study the frequency response of a planar structure. In particular, the variation of scattering parameters like S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; (return loss) and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; (insertion loss) with frequency are of utmost interest. When analyzing resonant structures like patch antennas or planar filters over large frequency ranges, you may have to sweep a large number of frequency samples to capture their behavior with adequate details. The resonant peaks or notches are often missed due to the lack of enough resolution. EM.Cube's [[Planar Module]] offers a powerful adaptive frequency sweep option for this purpose. It is based on the fact that the frequency response of a physical, causal, multiport network can be represented mathematically using a rational function approximation. In other words, the S parameters of a circuit exhibit a finite number of poles and zeros over a given frequency range. EM.Cube first starts with very few frequency samples and tries to fit rational functions of low orders to the scattering parameters. Then, it increases the number of samples gradually by inserting intermediate frequency samples in a progressive manner. At each iteration cycle, all the possible rational functions of higher orders are tried out. The process continues until adding new intermediate frequency samples does not improve the resolution of the &amp;amp;quot;S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;&amp;amp;quot; curves over the given frequency range. In that case, the curves are considered as having converged.&lt;br /&gt;
&lt;br /&gt;
You must have defined one or more ports for your planar structure run an adaptive frequency sweep. Open the Frequency Settings dialog from the Simulation Run dialog and select the '''Adaptive''' option of '''Frequency Sweep Type'''. You have to set values for '''Minimum Number of Samples''' and '''Maximum Number of Samples'''. Their default values are 3 and 9, respectively. You also set a value for the '''Convergence Criterion''', which has a default value of 0.1. At each iteration cycle, all the S parameters are calculated at the newly inserted frequency samples, and their average deviation from the curves of the last cycle is measured as an error. When this error falls below the specified convergence criterion, the iteration is ended. If EM.Cube reaches the specified maximum number of iterations and the convergence criterion has not yet been met, the program will ask you whether to continue the process or exit it and stop.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large frequency ranges, you may have to increase both the minimum and maximum number of samples. Moreover, remeshing the planar structure at each frequency may prove more practical than fixing the mesh at the highest frequency.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Settings adaptive frequency sweep parameters in [[Planar Module]]'s Frequency Settings Dialog.&lt;br /&gt;
&lt;br /&gt;
=== Examining Port Characteristics ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure is excited by gap sources or probe sources or de-embedded sources, and one or more ports have been defined, the planar MoM engine calculates the scattering, impedance and admittance (S/Z/Y) parameters of the designated ports. The scattering parameters are defined based on the port impedances specified in the project's Port Definition dialog. If more than one port has been defined in the project, the S/Z/Y matrices of the multiport network are calculated. Note that the S/Z/Y matrices of an N-port structure are related to each other through the following equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM121.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively, and &amp;lt;math&amp;gt;\mathbf{[\sqrt{Z_0}]}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM122.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the values of S/Z/Y parameters and VSWR data are calculated and reported in the output message window. The S, Z and Y parameters are written into output ASCII data files of complex type with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Every file begins with a header consisting of a few comment lines that start with the &amp;amp;quot;#&amp;amp;quot; symbol. The complex values are arranged into two columns for the real and imaginary parts. In the case of multiport structures, every single element of the S/Z/Y matrices is written into a separate complex data file. For example, you will have data files like S11.CPX, S21.CPX, ..., Z11.CPX, Z21.CPX, etc. The VSWR data are saved to an ASCII data file of real type with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension called, VSWR.DAT.&lt;br /&gt;
&lt;br /&gt;
If you run an analysis, the port characteristics have single complex values, which you can view using EM.Cube's data manager. However, there are no curves to graph. You can plot the S/Z/Y parameters and VSWR data when you have data sets, which are generated at the end of any type of sweep including a frequency sweep. In that case, the &amp;amp;quot;.CPX&amp;amp;quot; files have multiple rows corresponding to each value of the sweep parameter (e.g. frequency). EM.Cube's 2D graph data are plotted in EM.Grid, a versatile graphing utility. You can plot the port characteristics directly from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting port characteristics data to plot from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
You can also see a list of all the port characteristics data files in EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. By default, the S parameters are plotted as double magnitude-phase graphs, while the Y and Z parameters are plotted as double real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You can change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM129.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Data Manager showing a list of the port characteristics data files.&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it in the Data Manager and click its '''Edit''' button. In the Edit File Dialog, choose one of the options provided in the dropdown list labeled '''Graph Type'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM130.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Changing the graph type by editing a data file's properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM134.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plotted on a Smith Chart graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
=== Rational Interpolation Of Scattering Parameters ===&lt;br /&gt;
&lt;br /&gt;
The adaptive frequency sweep described earlier is an iterative process, whereby the Planar MoM simulation engine is run at a certain number of frequency samples at each iteration cycle. The frequency samples are progressively built up, and rational fits for these data are found at each iteration cycle. A decision is then made whether to continue more iterations. At the end of the whole process, a total number of scattering parameter data samples have been generated, and new smooth data corresponding to the best rational fits are written into new data files for graphing. EM.Cube's [[planar Module]] also allows you to generate a rational fit for all or any existing scattering parameter data as a post-processing operation without a need to run additional simulation engine runs.&lt;br /&gt;
&lt;br /&gt;
You can interpolate all the scattering parameters together or select individual parameters. You do this post-processing operation from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select Smart Fit. At the top of the Smart Fit Dialog, there is a dropdown list labeled '''Interpolate''', which gives a list of all the available S parameter data for rational interpolation. The default option is &amp;amp;quot;All Available Parameters&amp;amp;quot;. Then you see a box labeled '''Number of Available Samples''', whose value is read from the data content of the selected complex .CPX data file. Based on the number of available data samples, the dialog reports the '''Maximum Interpolant Order'''. You can choose any integer number for '''Interpolant Order''', from 1 to the maximum allowed. &lt;br /&gt;
&lt;br /&gt;
{{Note|Interpolant order more than 15 will suffer from numerical instabilities even if you have a very large number of data samples.}}&lt;br /&gt;
&lt;br /&gt;
You can use the '''Update''' button of the dialog to generate the interpolated data for a given order. The new data are written to a complex data file with the same name as the selected S parameter and a &amp;amp;quot;'''_RationalFit'''&amp;amp;quot; suffix. While this dialog is still open, you can plot the new data either directly from the Navigation Tree or from the Data Manager. If you are not satisfied with the results, you can return to the Smart Fit dialog and try a higher or lower interpolant order and compare the new data.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM131.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Smart Fit dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM133(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of a two-port structure in magnitude-phase format.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM132(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The smoothed version of the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of the two-port structure using EM.Cube's Smart Fit.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Output Simulation Data ===&lt;br /&gt;
&lt;br /&gt;
Depending on the source type and the types of observables defined in a project, a number of output data are generated at the end of a planar MoM simulation. Some of these data are 2D by nature and some are 3D. The output simulation data generated by EM.Cube's [[Planar Module]] can be categorized into the following groups:&lt;br /&gt;
&lt;br /&gt;
* '''Port Characteristics''': S, Z and Y Parameters and Voltage Standing Wave Ratio (VSWR)&lt;br /&gt;
* '''Radiation Characteristics''': Radiation Patterns, Directivity, Total Radiated Power, Axial Ratio, Main Beam Theta and Phi, Radiation Efficiency, Half Power Beam Width (HPBW), Maximum Side Lobe Level (SLL), First Null Level (FNL), Front-to-Back Ratio (FBR), etc.&lt;br /&gt;
* '''Scattering Characteristics''': Bi-static and Mono-static Radar Cross Section (RCS)&lt;br /&gt;
* '''Periodic Characteristics''': Reflection and Transmission Coefficients&lt;br /&gt;
* '''Current Distributions''': Electric and magnetic current amplitude and phase on all metal and slot traces and embedded objects&lt;br /&gt;
* '''Near-Field Distributions''': Electric and magnetic field amplitude and phase on specified planes and their central axes&lt;br /&gt;
&lt;br /&gt;
At the end of an analysis, the 2D quantities usually have a single value that is written into an ASCII data file. Complex-valued quantities are written into complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Real-valued quantities are written into real data files with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension. Polar 2D radiation pattern data and some other radiation characteristics are written into angular data files with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; extension. In this latter file type, polar data are stored as functions of an angle expressed in degrees. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). If a sweep simulation involves N sweep [[variables]], then the first N columns of the output data files show the samples of those sweep [[variables]]. All the 2D data files are listed in the '''2D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
3D output data, on the other hand, are defined as functions of the space coordinates and are usually of vectorial nature. Cartesian-type and mesh-type data such as current distributions and near-field field distributions are expressed as functions of the Cartesian (X, Y, Z) coordinates. Spherical-type data like far-field radiation patterns and RCS are expressed as functions of the spherical angles (&amp;amp;theta;, &amp;amp;phi;). The 3D radiation patterns are written into a file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension. This file contains the complex values of the &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field (E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;) as well as the total far field magnitude as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The 3D RCS patterns are written into a file with a &amp;amp;quot;'''.RCS'''&amp;amp;quot; extension. This file contains the real values of the &amp;amp;theta;- and &amp;amp;phi;-polarized RCS values as well as the total RCS as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The current distributions are written into data files with a &amp;amp;quot;'''.CUR'''&amp;amp;quot; extension. They contain the real and imaginary parts of the X, Y and Z components of electric ('''J''') and magnetic ('''M''') current on each cells together with the definition of all the node coordinates and node indices of the cells. The near-field distributions are written into data files with a &amp;amp;quot;'''.SEN'''&amp;amp;quot; extension. They contain the amplitude and phase of the X, Y and Z components of electric ('''E''') and magnetic ('''H''') fields as functions of the coordinates of sampling points. All the 3D data files are listed in the '''3D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The 3D Data Files tab of EM.Cube's Data Manager.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM139.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Viewing the contents of a mesh-type 3D data file in Data Manager.&lt;br /&gt;
&lt;br /&gt;
=== Standard vs. Custom Output ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a number of computed quantities are designated as &amp;amp;quot;Standard Output&amp;amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[File:functions_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Functions...'''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[File:custom_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Custom Output...'''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add''' button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit''' button, or you can delete any parameter from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
=== Viewing &amp;amp;amp; Visualizing Various Output Data Types ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a variety of 2D and 3D output data are generated. Some of these can be visualized or graphed directly from the Navigation Tree, while the others can only be accessed from the Data Manager. All of EM.Cube's simulation data are always written into ASCII data files that you can open and inspect or edit. Lists of these 2D and 3D data files appear under Data Manager's various tabs. The generated data also include all of [[Planar Module]]'s legitimate standard outputs that the simulation engine can compute given the specified source and observable types as well as all of your own previously defined custom output parameters. Note that in this release of EM.Cube, all the custom outputs are real-type data. Each custom output is written into a separate real data file with the same name as the parameter's given label and a &amp;amp;quot;'''.DAT'''&amp;amp;quot; file extension. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot its graph in '''EM.Grid'''. You can also view the contents of a data file by selecting its row in th file list and clicking the '''View''' button of the dialog or by simply double-clicking the highlighted row. This opens up a new window containing a convenient spreadsheet that gives a tabular view of the contents of the selected data file. There are a large number of data operations and manipulations that you can perform on the data content including matrix, calculus and statistical calculations as well as computing and plotting new datasets using the &amp;amp;quot;Compute&amp;amp;quot; feature of the spreadsheet. You can make multiple file selection using the keyboard's '''Ctrl''' and '''Shift''' keys.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing an angular file selected and highlighted for further action.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Data Manager's spreadsheet showing the contents of an angular data file.&lt;br /&gt;
&lt;br /&gt;
The 2D output data include real or complex quantities like various port, radiation, scattering and periodic characteristics. At the end of an analysis, most .CPX and .DAT data files have a single complex or real value, respectively. in other words, there are no curves to plot. Exceptions are Cartesian 2D radiation pattern or RCS data files along the principal and user define phi-cut planes, as well as polar 2D radiation pattern or RCS data files of angular type with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; file extension. These files contain the radiation pattern or RCS data as a function of some relevant angle in the specified plane. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). You can plot graphs of the 2D output data files that contain more than one row in '''EM.Grid'''. Each data file has a default graph type. Real data are plotted on EM.Grid's Cartesian graphs. Complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension are plotted on double Cartesian graphs of &amp;amp;quot;'''Magnitude-Phase'''&amp;amp;quot; type, showing the magnitude in dB and phase in radians. You can change the complex data's graph type to the &amp;amp;quot;'''Real-Imaginary'''&amp;amp;quot; or &amp;amp;quot;'''Smith Chart'''&amp;amp;quot; by selecting its entry in the Data Manager and clicking the '''Edit'''button to open the &amp;amp;quot;Edit File Properties Dialog&amp;amp;quot;. Angular data files like polar 2D radiation patterns or RCS, by default, are plotted on EM.Grid's &amp;amp;quot;'''Polar'''&amp;amp;quot; graphs. Note that real data can be graphed on bar charts, too, just as angular can alternatively be graphed on polar stem charts.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM142.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A 2D radiation pattern polar graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's 3D output simulation data usually have a vectorial nature and are defined as functions of the Cartesian or spherical space coordinates. At the end of a planar MoM simulation, you can view 3D visualizations of the vectorial output data such as current distributions, near-field field distributions, far-field radiation patterns and RCS in EM.Cube's project workspace by clicking on the corresponding observable entries in the Navigation Tree. When you run a sweep simulation of some sort, multiple 3D plots appear on the Navigation Tree representing all the sweep variable samples. You can animate these 3D visualization plots very conveniently from the Navigation Tree. To do so, right click on an observable's name in the Navigation Tree and select the '''Animation''' item from the contextual menu. Make sure that you right click on the observable's parent node, not on one of its child components corresponding to the sweep variable samples. The 3D plot in the project workspace starts to animate and continues forever until to stop it. A new window called &amp;amp;quot;''' Animation Controls Dialog'''&amp;amp;quot; opens up at the lower right corner of the EM.Cube desktop. This dialog allows you to control the animation speed using a box labeled '''Rate''', whose value multiplied by 100 milliseconds indeed gives the frame duration. You can speed up the animation or slow it down from the default rate of one frame per 300ms. The box labeled '''Sample''' show the current frame's plot label at any time. You can pause the animation, rewind it to the first frame, fast-forward it to the last frame or manually step it through back and forth using the movement buttons marked with the symbols |&amp;amp;lt;, &amp;amp;lt;&amp;amp;lt;, ||, &amp;amp;gt;&amp;amp;gt;,&amp;amp;gt;|.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM135.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Animating 3D radiation patterns as the send of a frequency sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM136.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep ===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the planar MoM simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweep, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed later, parametric sweeps are simple and straightforward and do not required careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;amp;quot;expression&amp;amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;amp;quot;formal&amp;amp;quot; option, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[File:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; [[Variables]]...'''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;amp;quot;Add Variable Dialog&amp;amp;quot;. Choose a '''Name''' for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;amp;quot;Variable List&amp;amp;quot;. You can also see the '''Current Value''' of every variable at any time in the Variable as dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit''' button or indirectly during a parametric sweep. In the former case, you have to click the '''Update''' button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, trace and object set dialogs, stack-up dialog or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;amp;quot;Variable List&amp;amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;amp;quot;current Value&amp;amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;amp;quot;Independent&amp;amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete''' and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;amp;quot;Start&amp;amp;quot; and &amp;amp;quot;End&amp;amp;quot; value and is incremented by a predetermined &amp;amp;quot;Step&amp;amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution''' is defined by &amp;amp;quot;Minimum&amp;amp;quot; and &amp;amp;quot;Maximum&amp;amp;quot; values, while '''Normal (Gaussian) Distribution''' is defined by a &amp;amp;quot;Mean&amp;amp;quot; and &amp;amp;quot;Standard Deviation&amp;amp;quot;. You need to specify the &amp;amp;quot;Number of Samples&amp;amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;amp;quot;Define Sweep Variable Dialog&amp;amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete''' and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up''' and '''Move Down''' buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;amp;quot;fake&amp;amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. If you run a dry run while EM.Cube is in the mesh view mode, then the planar mesh of your structure is updated for each combination of the sweep variable samples during the dry run process. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Optimizing Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (Optional but Highly Recommended) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;amp;lt;, &amp;amp;lt;=, &amp;amp;gt; or &amp;amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;amp;quot;'''=='''&amp;amp;quot; are regarded a &amp;amp;quot;'''Goals'''&amp;amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;amp;quot;'''Target Value'''&amp;amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;amp;quot;(LHS - RHS) == 0&amp;amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;amp;quot;non-Equal&amp;amp;quot; logical operators are regarded a &amp;amp;quot;'''Constraints'''&amp;amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[File:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;amp;quot;=== (Equal To)&amp;amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit''' button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation Run Dialog''', and select the '''[[Optimization]]''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;amp;quot;'''[[Optimization]] Algorithm'''&amp;amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm''' and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size''' as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;amp;quot;Define [[Optimization]] Variable Dialog&amp;amp;quot; opens up, where you have to set the '''Minimum'''and '''Maximum'''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog to change those value. If you check the box labeled &amp;amp;quot;''' Update [[Variables]] with Optimal Values'''&amp;amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;amp;quot;saturated&amp;amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;amp;quot;'''Exit Local Min Trap'''&amp;amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;amp;quot;'''Error Function'''&amp;amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;amp;quot;'''Maximum Error'''&amp;amp;quot; value for the objective function, which terminates the process as &amp;amp;quot;converged&amp;amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals''' and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those cases, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute''' button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals''' or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
== Periodic Planar Structures &amp;amp;amp; Antenna Arrays ==&lt;br /&gt;
&lt;br /&gt;
=== Finite Arrays vs. Infinite Periodic Structures ===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that exhibits a repeated geometric pattern. It is made up of identical elements that are arranged in the form of a periodic lattice. The spacing between the elements is denoted by Sx along the X direction and Sy along the Y direction. The number of elements is denoted by Nx along the X direction and Ny along the Y direction (i.e. a total of Nx.Ny elements). If Nx and Ny are finite numbers, you have a finite-sized periodic structure, which is constructed using an &amp;amp;quot;'''Array Object'''&amp;amp;quot; in EM.Cube. If Nx and Ny are infinite, you have an infinite periodic structure with periods Sx and Sy along the X and Y directions, respectively. An infinite periodic structure in EM.Cube is represented by a &amp;amp;quot;'''Periodic Unit Cell'''&amp;amp;quot;. Periodic structures have many applications including phased array antennas, frequency selective surfaces (FSS), electromagnetic bandgap structures (EBG), metamaterial structures, etc. EM.Cube allows you to model both finite and infinite periodic structures.&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; Real practical periodic structures obviously have finite extents. You can easily and quickly construct finite-sized arrays of arbitrary complexity using EM.Cube's &amp;amp;quot;Array Tool&amp;amp;quot;. However, for large values of Nx and Ny, the size of the computational problem may rapidly get out of hand and become impractical. For very large periodic arrays, you can alternatively analyze a unit cell subject to the periodic boundary conditions and calculate the current distribtutions and far fields of the periodic unit cell. For their radiation patterns, you can multiply the &amp;amp;quot;Element Pattern&amp;amp;quot; by an &amp;amp;quot;Array Factor&amp;amp;quot; that captures the finite extents of the structure. In many cases, an approximation of this type works quite well. But in some other cases, the edge effects and particularly the field behavior at the corners of the finite-sized array cannot be modeled accurately. Periodic surfaces like FSS, EBG and metamaterials are also modeled as infinite periodic structures, for which one can define reflection and transmission coefficients. For this purpose, the periodic structure is excited using a plane wave source. Reflection and transmission coefficients are typically functions of the angles of incidence.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
The straightforward approach to the modeling of finite-sized antenna arrays is to use the full-wave method of moments (MoM). This requires building an array of radiating elements using EM.Cube's '''Array Tool''' and feeding the individual array elements using some type of excitation. For example, if the antenna elements are excited using a gap source or a probe source, you can assign a certain array weight distribution among the elements as well as phase progression among the elements along the X and Y directions. EM.Cube currently offers uniform, binomial, Chebyshev and (arbitrary) data file-based weight distribution types. The full-wave MoM approach is very accurate and takes into account all the inter-element coupling effects. At the end of a planar MoM simulation of the array structure, you can plot the radiation patterns and other far field characteristics of the antenna array just like any other planar structure.&lt;br /&gt;
&lt;br /&gt;
The radiation pattern of antenna arrays usually has a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' such as first null level and first null beam width. To have EM.Cube calculate all such parameters, you must check the relevant boxes in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. In particular, you can plot such data files at the end of a sweep simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM91.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
Another approach to modeling a finite-sized antenna array is to analyze one of its elements and use the &amp;amp;quot;Array Factor&amp;amp;quot; concept to calculate its radiation patterns. This method ignores any inter-element coupling effects. In other words, you can regard the structure in the project workspace as a single isolated radiating element. To define an array factor, open the '''Radiation Pattern Dialog''' of the project. In the section titled &amp;amp;quot;'''Impose Array Factor'''&amp;amp;quot;, you will see a default value of 1 for the '''Number of Elements''' along the X and Y directions. This implies a single radiator, representing the structure in the project workspace. There are also default zero values for the '''Element Spacing''' along the X and Y directions. You should change both the number of elements and element spacing in the X and Y directions to define a finite array lattice. For example, you can define a linear array by setting the number of elements to 1 in one direction and entering a larger value for the number of elements along the other direction. Keep in mind that when using an array factor for far field calculation, you cannot assign non-uniform amplitude or phase distributions to the array elements. For that purpose, you have to define an array object with a source array.&lt;br /&gt;
&lt;br /&gt;
=== Defining A Periodic Domain ===&lt;br /&gt;
&lt;br /&gt;
In general, a planar structure in EM.Cube's [[Planar Module]] is assumed to have open boundaries. This means that the structure has infinite dimensions along the X and Y directions. In other words, the layers of the background structure extend to infinity, while the traces and embedded object sets have finite sizes. Along the Z direction, a planar structure can be open-boundary, or it may be truncated by PEC ground planes from the top or bottom or both. You can define a planar structure to be infinitely periodic along the X and Y directions. In this case, you only need to define the periodic unit cell. EM.Cube automatically reproduces the unit cell infinitely and simulates it using a spectral domain periodic version of the Green's functions of your project's background structure.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, you must open [[Planar Module]]'s Periodicity Settings Dialog by right clicking the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Periodicity Settings...''' from the contextual menu or by selecting '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt; 'Computational Domain &amp;amp;gt; Periodicity Settings...''' from the Menu Bar. In the Periodicity Settings Dialog, check the box labeled '''Periodic Structure'''. This will enable the section titled''&amp;amp;quot;''Lattice Properties&amp;amp;quot;. You can define the periods along the X and Y axes using the boxes labeled '''Spacing'''. You can also define values for periodic '''Offset''' along the X and Y directions, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
In a periodic structure, the virtual domain is replaced by a default blue periodic domain that is always centered around the origin of coordinates. Keep in mind that the periodic unit cell must always be centered at the origin of coordinates. The relative position of the structure within this centered unit cell will change the phase of the results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM99.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Regular vs. Generalized Periodic Lattices ===&lt;br /&gt;
&lt;br /&gt;
Besides conventional rectangular lattices, EM.Cube's [[Planar Module]] can also handle complex non-rectangular periodic lattices. For example, many frequency selective surfaces have skewed grids. In order to simulate skewed-grid periodic structures, the definition of the grid has to be generalized. A periodic structure is a repetition of a basic structure (unit cell) at pre-determined locations. Let these locations be described by (x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;, y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;), where m and n are integers ranging from -8 to 8. For a general skewed grid, x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; and y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; can be described by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; x_{mn} = m\Delta x + n \Delta x' \\&lt;br /&gt;
&amp;amp; y_{mn} = m\Delta y + n \Delta y'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; is the primary offset in the X direction (X Spacing) controlled by index m and &amp;lt;math&amp;gt;\Delta x'&amp;lt;/math&amp;gt; is the secondary offset in the X direction (X Offset) controlled by index n. The meanings of &amp;lt;math&amp;gt;\Delta y&amp;lt;/math&amp;gt; (Y Spacing) and &amp;lt;math&amp;gt;\Delta y'&amp;lt;/math&amp;gt; (Y Offset) are similar with the roles of indices m and n interchanged. To illustrate how to use this definition, consider an example of an equilateral triangular grid with side length L as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:image121.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of an equilateral triangular periodic lattice.&lt;br /&gt;
&lt;br /&gt;
From the figure, it is obvious that the y coordinate of each row is fixed and identical, thus &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. While in each row the spacing between adjacent elements is L, there is an offset of L/2 between the consecutive rows. This results in &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;. To sum up, an equilateral triangular grid can be described by &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. In an EM.Cube [[Planar Module]] project, the secondary offsets are equal to zero by default, implying a rectangular lattice. You can change the values of the secondary offsets using the boxes labeled '''X Offset''' and '''Y Offset''' in the '''Periodicity Settings Dialog''', respectively. Triangular and Hexagonal lattices are popular special cases of the generalized lattice type. In a triangular lattice with alternating Rows, &amp;lt;math&amp;gt;\Delta x' = \Delta x/2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. A Hexagonal lattice (with alternating rows) is a special case of triangular lattice in which &amp;lt;math&amp;gt;\Delta y = \sqrt{3\Delta x / 2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Interconnectivity Among Unit Cells ===&lt;br /&gt;
&lt;br /&gt;
In many cases, your planar structure's traces or embedded objects are entirely enclosed inside the periodic unit cell and do not touch the boundary of the unit cell. In EM.Cube's [[Planar Module]], you can define periodic structures whose unit cells are interconnected. Interconnectivity applies only to PEC, PMC and conductive sheet traces, and embedded object sets are excluded. Note that in a periodic planar structure, your objects cannot cross the periodic domain. However, you can arrange objects with linear edges such as one or more flat edges line up with the domain's bounding box. In such cases, EM.Cube's planar MoM mesh generator will take into account the continuity of the currents across the adjacent connected unit cells and will create the connection basis functions at the right and top boundaries of the unit cell. It is clear that due to periodicity, the basis functions do not need to be extended at the left or bottom boundaries of the unit cell.&lt;br /&gt;
&lt;br /&gt;
As an example, consider the periodic structure in the figure below that shows a metallic screen or wire grid. The unit cell of this structure can be defined as a rectangular aperture in a PEC ground plane (marked as Unit Cell 1). In this case, the rectangle object is defined as a slot trace. Alternatively, you can define a unit cell in the form of a microstrip cross on a metal trace. In the latter case, however, the microstrip cross should extend across the unit cell and connect to the crosses in the neighboring cells in order to provide current continuity.&lt;br /&gt;
&lt;br /&gt;
[[File:image122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Modeling a periodic screen using two different types of unit cell.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per3_tn.png|400px]] [[File:pmom_per4_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The PMC aperture unit cell and its planar mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per5_tn.png|400px]] [[File:pmom_per6_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The PEC cross unit cell and its planar mesh. Notice the cell extensions at the unit cell's boundaries.&lt;br /&gt;
&lt;br /&gt;
=== Periodic MoM Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the case of an infinite periodic planar structure, the field equations can be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E(r) = E^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{H(r) = H^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM94.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J_{mn}(r) = J_{mn}}(x,y,z) = \mathbf{J_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{M_{mn}(r) = M_{mn}}(x,y,z) = \mathbf{M_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; -\infty &amp;lt; m, n &amp;lt; \infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM95(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, &amp;lt;math&amp;gt;\mathbf{J_{00}(r)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{M_{00}(r)}&amp;lt;/math&amp;gt; are the periodic unit cell's electric and magnetic currents that are repeated everywhere in space on a rectangular lattice with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. &amp;lt;math&amp;gt;k_{x00}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;k_{y00}&amp;lt;/math&amp;gt; are the periodic propagation constants along the X and Y directions, respectively, and they are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{x00} = k_0 \sin\theta \cos\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{y00} = k_0 \sin\theta \sin\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM96(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;theta; and &amp;amp;phi; are the beam scan angles in the case of periodic excitation of lumped sources, or they are the spherical angles of incidence in the case of a plane wave source illuminating the periodic structure. Using the infinite summations, one can define periodic dyadic Green's functions in the spectral domain in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ \overline{\overline{G}}_{\mu \nu}^{PER} (r|r') } =&lt;br /&gt;
\frac{1}{S_x S_y} \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\mathbf{ \tilde{\overline{\overline{G}}}_{\mu \nu} } (k_x, k_y, z|z')&lt;br /&gt;
e^{-j[k_{xm}(x-x') + k_{yn}(y-y')]}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
k_{xm} = k_{x00} + \frac{2\pi m}{S_x} \quad \text{and} \quad&lt;br /&gt;
k_{ym} = k_{y00} + \frac{2\pi m}{S_y}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM97.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above doubly infinite periodic Green's functions are said to be expressed in terms of &amp;amp;quot;Floquet Modes&amp;amp;quot;. The exact formulation involves an infinite set of these periodic Floquet modes. During the MoM matrix fill process for a periodic structure, a finite number of Floquet modes are calculated. By default, EM.Cube's planar MoM engine considers M&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; = M&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; = 25. This implies a total of 51 modes along the X direction and a total of 51 modes along the Y direction, or a grand total of 51&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 2,601 Floquet modes. You can increase the number of Floquet modes for your project from the Planar MoM Engine Settings Dialog. In the section titled &amp;amp;quot;Periodic Simulation&amp;amp;quot;, you can change the values of '''Number of Floquet Modes''' in the two boxes designated X and Y.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM98.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Changing the number of Floquet modes from the Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Phased Arrays ===&lt;br /&gt;
&lt;br /&gt;
Earlier, it was argued that you can calculate the radiation pattern of a finite antenna array by modeling a single isolated element and multiplying its &amp;amp;quot;Element Pattern&amp;amp;quot; by the &amp;amp;quot;Array Factor&amp;amp;quot;. This method gives acceptable results only when the inter-element coupling effects are negligible, as it does not take into account such effects. Planar antennas printed on dielectric substrates usually exhibit inter-element coupling effects due to the propagation of the substrate surface wave modes. If your finite-sized array is very large and you cannot afford a straightforward full-wave MoM simulation of it, you can alternatively model it as an infinite array represented by a periodic unit cell. In this case, you calculate the radiation pattern of the unit cell structure and use it as the &amp;amp;quot;Element Pattern&amp;amp;quot; in conjunction with the &amp;amp;quot;Array Factor&amp;amp;quot;. The periodic Green's functions, in this case, capture the inter-element coupling effects. What is missing from this picture is the finite edge effects and/or corner effects, if any.&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a gap or probe source, it acts like an infinite periodic phased array. All the periodic replicas of the unit cell structure are excited. You can even impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the gap or probe source. At the bottom of the '''Gap Source Dialog''' or '''Probe Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. You can enter desired values for '''Theta''' and '''Phi''' beam scan angles in degrees. The corresponding phase progressions are calculated and applied to the periodic Green's functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\Psi_x = -\frac{2\pi S_x}{\lambda_0} \sin\theta \cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\Psi_y = -\frac{2\pi S_y}{\lambda_0} \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you have to define a finite-sized array factor in the Radiation Pattern dialog. You do this in the '''Impose Array Factor''' section of this dialog. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of '''Element Spacing''' along the X and Y directions are automatically set equal to the value of '''Periodic Lattice Spacing''' along those directions. You have to set the '''Number of Elements''' along the X and Y directions, which are both equal to one initially, representing a single radiator. If you forget to define an array factor, the radiation pattern of the unit cell structure will be displayed, which does not show beam scanning.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM100.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the periodic scan angles in [[Planar Module]]'s Gap Source dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per9_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The 3D radiation pattern of a beam-steered periodic printed dipole array.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Periodic Structures Using Plane Waves ===&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a plane wave source, it acts as a periodic surface that reflects or transmits the incident wave. You can model frequency selective surfaces, electromagnetic band-gap structures and metamaterials in this way. EM.Cube calculates the reflection and transmission coefficients of periodic surfaces or planar structures. If you run a single plane wave simulation, the reflection and transmission coefficients are reported in the Output Window at the end of the simulation. Note that these periodic characteristics depend on the polarization of the incident plane wave. You set the polarization (TMz or TEz) in the '''Plane Wave Dialog''' when defining your excitation source. In this dialog you also set the values of the incident '''Theta''' and '''Phi''' angles.&lt;br /&gt;
&lt;br /&gt;
At the end of the planar MoM simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. As a result, you can run an adaptive sweep of periodic structures with a plane wave source just like projects with gap or probe sources. The reflection and transmission (R/T) coefficients can be plotted in EM.Grid on 2D graphs similar to the S parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
{{Note|In the absence of any finite traces or embedded objects in the project workspace, EM.Cube computes the reflection and transmission coefficients of the layered background structure of your project.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM102.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A periodic planar layered structure with slot traces excited by a normally incident plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Characterizing Periodic Surfaces Using Angular Sweeps ===&lt;br /&gt;
&lt;br /&gt;
The reflection and transmission characteristics of a period surface as functions of the incidence angle are often of great interest. For that purpose, you can run an angular sweep of your periodic structure, where you normally fix the &amp;amp;phi; angle and sweep the &amp;amp;theta; angle from 180 to 90 degrees for one-sided surfaces and from 180 to 0 degrees for two-sided surface. To run an angular sweep, open the [[Planar Module]]'s '''Simulation Run Dialog''' and select the '''Angular Sweep''' option from its '''Simulation Mode''' dropdown list. This enables the '''Settings''' button, which opens up the '''Angle Settings Dialog'''. First, you must choose either Theta or Phi as the '''Sweep Angle'''. Then you can set the '''Start''' and '''End''' values of the selected incidence angle as well as the '''Number of Samples'''. At the end of an angular sweep simulation, you can plot the reflection and transmission coefficients from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The reflection and transmission coefficients of the structure are saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM103.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Structures Using Adaptive Frequency Sweeps ===&lt;br /&gt;
&lt;br /&gt;
You learned earlier how to use EM.Cube's powerful, adaptive frequency sweep utility to study the frequency response of a planar structure. Adaptive frequency sweep uses rational function interpolation to generate smooth curves of the scattering parameters with a relatively small number of full-wave simulation runs in a progressive manner. Therefore, you need a port definition in your planar structure to be able to run an adaptive frequency sweep. This is clear in the case of an infinite periodic phased array, where your periodic unit cell structure must be excited using either a gap source or a probe source. You run an adaptive frequency sweep of an infinite periodic phased array in exactly the same way to do for regular, aperiodic, planar structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar Modules also allows you to run an adaptive frequency sweep of periodic surfaces excited by a plane wave source. In this case, the planar MoM engine calculates the reflection and transmission coefficients of the periodic surface. Note that you can conceptually consider a periodic surface as a two-port network, where Port 1 is the top half-space and Port 2 is the bottom half-space. In that case, the reflection coefficient R is equivalent to S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter, while the transmission coefficient T is equivalent to S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameter. This is, of course, the case when the periodic surface is illuminated by the plane wave source from the top half-space, corresponding to 90°&amp;amp;lt; &amp;amp;theta; = 180°. You can also illuminate the periodic surface by the plane wave source from the bottom half-space, corresponding to 0° = &amp;amp;theta; &amp;amp;lt; 90°. In this case, the reflection coefficient R and transmission coefficient T are equivalent to S&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;12&amp;lt;/sub&amp;gt; parameters, respectively. Having these interpretations in mind, EM.Cube enables the &amp;amp;quot;'''Adaptive Frequency Sweep'''&amp;amp;quot; option of the '''Frequency Settings Dialog''' when your planar structure has a periodic domain together with a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite-Sized Periodic Arrays Using NCCBF Technique ===&lt;br /&gt;
&lt;br /&gt;
Previously, you saw how the concept of &amp;amp;quot;Array Factor&amp;amp;quot; is used to approximate the far field radiation pattern of a finite-sized array of radiators. The total radiation pattern can be expressed as the product of the array factor and the &amp;amp;quot;Element Pattern&amp;amp;quot;. The array factor captures the topology of the array lattice and depends on the number of elements along the X and Y directions as well as the element spacing along those directions. As for the choice of element pattern, you saw two extreme cases. In the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; option, you compute the radiation pattern of a single stand-alone radiator and completely ignore any coupling effects from the neighboring elements. This option is readily available in the Radiation Pattern Dialog of the Far Field observable. In the &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; option, you analyze a periodic version of the radiating element with periods equal to the element spacing. The computed radiation pattern of the periodic unit cell in this case captures the coupling effects from an infinite number of elements.&lt;br /&gt;
&lt;br /&gt;
The array factor approach works well when the inter-element coupling is negligible or when the array contains a very large number of elements. However, finite edge and corner effects cannot be modeled accurately using a simple array factor. A full-wave approach is needed where all the elements are discretized properly, and their interactions are incorporated into the final solution. EM.Cube's Planar MoM simulation engine lets you analyze finite-sized antenna arrays in a rigorous, full-wave manner. As you saw earlier, you can even introduce a source array with arbitrary (amplitude and phase) weights and realize a complex, non-uniformly excited, finite-sized antenna array. Note that if the array contains a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; . N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; elements, and each radiating element involves a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; vectorial basis functions, the numerical solution of the problem will produce a system of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;linear equations. As an example, consider a rectangular patch antenna element that involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. Now consider a not-so-large, 8 × 8 array of these patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. The resulting linear system will have an enormous size of N = 30,720. Keep in mind that, unlike the sparse matrices of the Finite Element Method (FEM), MoM linear systems are dense by nature and typically ill-conditioned. The inversion of dense matrices of such sizes or larger takes a significant amount of computation time even if you use fast iterative solvers.&lt;br /&gt;
&lt;br /&gt;
EMAG Technologies Inc. has recently developed a novel technique, called '''Numerically Constructed Characteristic Basis Functions (NCCBF)''', which generates physics-based entire-domain basis functions for the elements of a finite-sized array. These &amp;amp;quot;sophisticated&amp;amp;quot; basis functions are linear combinations of the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; solutions and &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; solutions. Unlike the array factor method, which is a post-processing calculation of far-field data, the NCCBF method generate a full-wave MoM solution with entire-domain basis functions. Considering the same example of the patch antenna array discussed earlier, the NCCBF method generates a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 4 entire-domain basis functions on each patch element: an isolated X-directed solution, a periodic X-directed solution, an isolated Y-directed solution, and a periodic Y-directed solution. The same approach applies equally well to triangular RWG basis functions and is not limited to rectangular cells. As a result, the new MoM linear system has a dimension of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = (4)(64) = 256. In other words, the NCCBF method compresses the original MoM matrix of size N = 30,720 to one of significantly reduced size N = 256 (i.e. a compression factor of 120x).&lt;br /&gt;
&lt;br /&gt;
=== Running a NCCBF Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the current release of EM.Cube's [[Planar Module]], the NCCBF MoM solver works with any number of distinct, finite-sized arrays if they are excited with one of the following three source types:&lt;br /&gt;
&lt;br /&gt;
# Gap Sources&lt;br /&gt;
# Probe Sources&lt;br /&gt;
# Plane Wave Sources&lt;br /&gt;
&lt;br /&gt;
Note that you can have several coexisting finite arrays with different element spacings (or different periodicities). You can also have regular (aperiodic) objects coexisting with your collection of finite arrays. In that case, the NCCBF process will create entire-domain basis functions for the elements of the finite arrays, while the regular method of moments will apply to the aperiodic portions of your planar structure. This flexibility makes NCCBF a very versatile and powerful technique.&lt;br /&gt;
&lt;br /&gt;
There are a few rules that must be followed and observed when planning a NCCBF simulation. '''Each finite-sized array must be constructed using an EM.Cube &amp;amp;quot;Array Object&amp;amp;quot;. Additionally, each array object must stand alone in a dedicated trace or embedded object set of its own.''' In other words, if an array object belongs to a trace or embedded object set that contains other objects, it will be excluded from the NCCBF process and will get a regular MoM treatment. Keep in mind that [[Planar Module]] allows you to define different traces located at the same Z-plane, although the objects belonging to these separate traces cannot be connected to one another according to the planar meshing rules. Similarly, you can define two or more PEC via sets hosted by the same substrate layer. Therefore, if your planar structure contains finite arrays and aperiodic objects, you have to group them into separate traces or embedded object sets.&lt;br /&gt;
&lt;br /&gt;
To run an NCCBF simulation, open the '''Simulation Run Dialog''', and then open the'''Planar MoM Engine Settings Dialog'''. In the &amp;amp;quot;'''Finite Array Simulation'''&amp;amp;quot; section of the latter dialog, check the box labeled &amp;amp;quot;'''NCCBF Matrix Compression'''&amp;amp;quot;. This box is unchecked by default. Checking it enables the NCCBF Settings button. Click this button to open the NCCBF Settings Dialog. The dialog features a &amp;amp;quot;List of Unit Cells Used for NCCBF Matrix Compression&amp;amp;quot;. This list initially empty. To add unit cells to it, click the '''Add''' button of the dialog to open the &amp;amp;quot;'''Add Unit Cell Dialog'''&amp;amp;quot;. This dialog has two tables: Available Unit Cells on the left side and Associated Unit Cells on the right side. The left table shows a list of all the available, legitimate array objects in your project workspace. Remember that for an array object to be eligible for NCCBF compression, it has to stand alone on a dedicated trace or embedded object set, whichever applies. Select an array object from the left table and use the right arrow button (--&amp;amp;gt;) to move it to the right table to associate it with the new NCCBF unit cell. You can associate more than one array object with the same NCCBF unit cell. In this case, the parent elements of all the associated array objects collectively constitute the NCCBF unit cell. The NCCBF unit cell is the planar structure that is analyzed separately, first, as a stand-alone isolated element, and next, as a periodic unit cell, to generate the NCCBF entire-domain basis function solutions. It is therefore very important that the array objects be positioned carefully with respect to the origin of coordinated and relative to one another to form the correct NCCBF unit cell. Once you move one or more array object names to the &amp;amp;quot;Associated&amp;amp;quot; table on the right, you can move them back to the &amp;amp;quot;Available&amp;amp;quot; table on the left using the left arrow (&amp;amp;lt;--) button. You can also instruct EM.Cube to use only the isolated element solution by unchecking the box labeled &amp;amp;quot;'''Include Periodic Solution of Unit Cell'''&amp;amp;quot;. Once you are satisfied with the definition of your NCCBF unit cell, close the dialog to return to the NCCBF Settings dialog. Here you see the name of the newly added NCCBF unit cell in the list along with the Number of Solutions and the names of all the associated array objects for each NCCBF unit cell. You can modify each row using the '''Edit''' button or remove it from the list using the '''Delete''' button. Close the NCCBF Settings dialog to return to the Planar MoM Engine Settings dialog, and close the latter to return to the Simulation Run dialog, where you can now start the NCCBF simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM163.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar MoM's NCCBF Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM162.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Planar MoM's &amp;amp;quot;Add Unit Cell&amp;amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
=== Symmetries, Array Objects &amp;amp;amp; Composite Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] treats array objects in a special way. That is why you need to use array objects with certain rules for NCCBF simulations. In general, if the mesh of your planar structure involves a total of N vectorial basis functions, the MoM matrix will contain a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; elements. Instead of computing the entire N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; basis interactions, the Planar MoM simulation engine takes advantage of the inherent symmetry properties of the dyadic Green's functions and camputes the diagonal elements of the matrix and all the elements below the diagonal. This amounts to N.(N+1)/2 basis interactions. In many cases, the MoM matrix is symmetric, and the elements above the diagonal are simply mirror-image of the below-diagonal elements. In planar structures that involve both metal and slot traces, there will be sign reversals for some interactions.&lt;br /&gt;
&lt;br /&gt;
In many cases, especially in the areas that contain sizable numbers of rectangular mesh cells, the basis functions are naturally grouped into distinct sets that are called domains. As you saw earlier in the discussion of planar mesh generation, uniform domains with identical rectangular cells bring significant savings during the matrix fill process. Using the concept of domains renders the MoM matrix as a block matrix, whose blocks represent the interactions among the domains. The diagonal blocks therefore correspond to self-domain interactions. By a similar argument, if your planar structure is made up of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; domains, then a total of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) are computed. An EM.Cube array object consists of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical geometrical elements. If the array object belongs to a trace that has other objects in it, then by the planar mesh generator's rules, the elements of the array object are merged with the other objects on the same trace using the &amp;amp;quot;Union&amp;amp;quot; Boolean operation. If some array elements possibly have connections with other objects, such connections are taken care of in the meshing process. '''However, if an array object stands alone in a dedicated trace, then only the parent (first) element is meshed, and it mesh is copied and cloned for all the other elements of the array.''' This produces a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical domains of vectorial basis functions. A direct consequence of this is identification of only N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; unique domain-pair interactions or matrix blocks. In the absence of these symmetries, a total of at least N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) must be computed. To better illustrate such matrix fill savings, let us consider the previous, not-so-large, 8 × 8 array of patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. It was previously assumed that each rectangular patch antenna element involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. The numerical solution of this structure produces a linear system of total size N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 30,720. The total number of complex-valued elements of this matrix is 9.44E+08. This is the total number of highly sophisticated multi-dimensional integrals that you need to compute during a brute-force matrix fill process. For the sake of generality of the argument, here we ignore the huge additional savings that rectangular cells offer, and we assume that each unique domain-pair interaction involves N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 230,400 elements, except for the self-domain interaction which requires N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 115,440 integral computations. This amounts to a total of (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; -1) . N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 1.46E+07 integral computations, which is roughly N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;(64) times fewer and faster than a brute-force matrix fill process.&lt;br /&gt;
&lt;br /&gt;
To remedy the limitation that stand-alone array objects on dedicated traces cannot be connected to anything and therefore would severely limit the geometrical complexity of individual elements, EM.Cube allows you to build arrays of composite objects. A &amp;amp;quot;'''Composite Object'''&amp;amp;quot; in EM.Cube is a group of objects that are tied together only for the purpose of organization. As a result, the mesh of a composite object is the same as that of its constituent member objects (including any possible connections), had they not been grouped together. In a similar manner to simpler array objects, if a composite array stands alone in a dedicated trace or embedded object set, then only the parent composite object is meshed, and its mesh is copied and cloned for all the other composite elements of the array object. Furthermore, all the unique domain-pair interactions are identified during the matrix fill process, and lead to a major saving in computation time. '''Note that you can assign gap or probe sources to composite arrays in a similar way as you excite simpler array objects.''' If your planar structure involves a composite array, whose composite parent element has constituent members: Object1, Object2, ..., then the Gap Source dialog or Probe Source dialog will include the names of all the eligible constituent members (rectangle strips or PEC via objects) that can host the respective source types. '''Complex composite arrays hosting gap or probe source arrays or illuminated by plane wave sources are great candidates for NCCBF simulation.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM165.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Assigning gap sources to the elements of a composite array object.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-14T17:59:57Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Waveforms &amp;amp; Discrete Fourier Transforms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and &amp;amp;Phi; is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Anisotropic Materials ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png|thumb|250px|[[FDTD Module]]'s Anisotropic Material dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
=== FDTD Mesh Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png|thumb|400px|[[FDTD Module]]'s Mesh Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
=== The FDTD Simulation Engine Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png|thumb|300px|[[FDTD Module]]'s Engine Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\exp[-(\pi f_{\delta} \tau)^2] = \exp[-(\pi \Delta f \tau)^2] = \delta &lt;br /&gt;
\quad \Rightarrow \quad &lt;br /&gt;
\tau = \frac{\sqrt{-\ln\delta}}{\pi f_{max}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD64(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\exp[ -[\pi(f_{\delta} - f_0)\tau] ^2 ] = \exp \left[ -\left(\pi \frac{\Delta f}{2} \tau\right)^2 \right] = \delta&lt;br /&gt;
\quad \Rightarrow \quad&lt;br /&gt;
\tau = \frac{2\sqrt{-\ln \delta}}{\pi \Delta f}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD65.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\tilde{F}(f) = \int_{-\infty}^{\infty} f(t) e^{-j2\pi f t} \, dt &lt;br /&gt;
\quad \approx \quad&lt;br /&gt;
\Delta t \sum_{n=0}^N f(n\Delta t) e^{-j2 \pi n f \Delta t}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD68.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{inc}}(r,t) = (E_{\theta}^{inc} \hat{\theta} + E_{\phi}^{inc} \hat{\phi}) &lt;br /&gt;
f \left[ (t-t_0) - \frac{\mathbf{\hat{k} \cdot r} - l_0}{c}  \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD69.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp;(N.F.)_{Sinusoidal}  = \frac{2}{T} = \frac{2}{N \Delta t} \\&lt;br /&gt;
&amp;amp;(N.F.)_{Gaussian}  = \frac{ e^{(\pi f_0 \tau)^2} }{ \sqrt{\pi} \tau } = \frac{1}{\sqrt{\pi} \tau \delta^{1/4}} \\&lt;br /&gt;
&amp;amp;(N.F.)_{Modulated}  = \frac{2}{\sqrt{\pi} \tau}&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD70.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out36_tn.png]] [[Image:fdtd_out37_tn.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out38_tn.png]] [[Image:fdtd_out39_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant &amp;amp;phi;-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle &amp;amp;phi; as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-14T16:10:38Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Waveforms &amp;amp; Discrete Fourier Transforms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and &amp;amp;Phi; is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Anisotropic Materials ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png|thumb|250px|[[FDTD Module]]'s Anisotropic Material dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
=== FDTD Mesh Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png|thumb|400px|[[FDTD Module]]'s Mesh Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
=== The FDTD Simulation Engine Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png|thumb|300px|[[FDTD Module]]'s Engine Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\exp[-(\pi f_{\delta} \tau)^2] = \exp[-(\pi \Delta f \tau)^2] = \delta &lt;br /&gt;
\quad \Rightarrow \quad &lt;br /&gt;
\tau = \frac{\sqrt{-\ln\delta}}{\pi f_{max}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD64(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\exp[ -[\pi(f_{\delta} - f_0)\tau] ^2 ] = \exp \left[ -\left(\pi \frac{\Delta f}{2} \tau\right)^2 \right] = \delta&lt;br /&gt;
\quad \Rightarrow \quad&lt;br /&gt;
\tau = \frac{2\sqrt{-\ln \delta}}{\pi \Delta f}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD65.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\tilde{F}(f) = \int_{-\infty}^{\infty} f(t) e^{-j2\pi f t} \, dt &lt;br /&gt;
\quad \approx \quad&lt;br /&gt;
\Delta t \sum_{n=0}^N f(n\Delta t) e^{-j2 \pi n f \Delta t}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD68.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD69.png]]&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD70.png]]&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out36_tn.png]] [[Image:fdtd_out37_tn.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out38_tn.png]] [[Image:fdtd_out39_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant &amp;amp;phi;-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle &amp;amp;phi; as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-14T15:52:44Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Radiation Pattern Above A Half-Space Medium */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and &amp;amp;Phi; is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Anisotropic Materials ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png|thumb|250px|[[FDTD Module]]'s Anisotropic Material dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
=== FDTD Mesh Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png|thumb|400px|[[FDTD Module]]'s Mesh Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
=== The FDTD Simulation Engine Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png|thumb|300px|[[FDTD Module]]'s Engine Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD64(1).png]]&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD65.png]]&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD68.png]]&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD69.png]]&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD70.png]]&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out36_tn.png]] [[Image:fdtd_out37_tn.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out38_tn.png]] [[Image:fdtd_out39_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant &amp;amp;phi;-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle &amp;amp;phi; as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-14T15:51:08Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* The FDTD Simulation Engine Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and &amp;amp;Phi; is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Anisotropic Materials ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png|thumb|250px|[[FDTD Module]]'s Anisotropic Material dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
=== FDTD Mesh Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png|thumb|400px|[[FDTD Module]]'s Mesh Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
=== The FDTD Simulation Engine Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png|thumb|300px|[[FDTD Module]]'s Engine Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD64(1).png]]&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD65.png]]&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD68.png]]&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD69.png]]&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD70.png]]&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out36_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out37_tn.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out38_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out39_tn.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant &amp;amp;phi;-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle &amp;amp;phi; as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-14T15:50:19Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Plane Waves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and &amp;amp;Phi; is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Anisotropic Materials ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png|thumb|250px|[[FDTD Module]]'s Anisotropic Material dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
=== FDTD Mesh Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png|thumb|400px|[[FDTD Module]]'s Mesh Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
===The FDTD Simulation Engine Settings===&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD64(1).png]]&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD65.png]]&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD68.png]]&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD69.png]]&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD70.png]]&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out36_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out37_tn.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out38_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out39_tn.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant &amp;amp;phi;-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle &amp;amp;phi; as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-14T15:49:28Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* FDTD Mesh Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and &amp;amp;Phi; is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Anisotropic Materials ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png|thumb|250px|[[FDTD Module]]'s Anisotropic Material dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
=== FDTD Mesh Settings ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png|thumb|400px|[[FDTD Module]]'s Mesh Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
# TMz&lt;br /&gt;
# TEz&lt;br /&gt;
# Custom Linear&lt;br /&gt;
# LCPz&lt;br /&gt;
# RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
===The FDTD Simulation Engine Settings===&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD64(1).png]]&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD65.png]]&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD68.png]]&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD69.png]]&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD70.png]]&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out36_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out37_tn.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out38_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out39_tn.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant &amp;amp;phi;-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle &amp;amp;phi; as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-14T15:48:11Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Anisotropic Materials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and &amp;amp;Phi; is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Anisotropic Materials ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png|thumb|250px|[[FDTD Module]]'s Anisotropic Material dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
===FDTD Mesh Settings===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
# TMz&lt;br /&gt;
# TEz&lt;br /&gt;
# Custom Linear&lt;br /&gt;
# LCPz&lt;br /&gt;
# RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
===The FDTD Simulation Engine Settings===&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD64(1).png]]&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD65.png]]&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD68.png]]&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD69.png]]&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD70.png]]&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out36_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out37_tn.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out38_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out39_tn.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant &amp;amp;phi;-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle &amp;amp;phi; as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Picasso</id>
		<title>EM.Picasso</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Picasso"/>
				<updated>2013-06-14T15:44:02Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Regular vs. Generalized Periodic Lattices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Picasso® is a versatile planar structure simulator for modeling and design of printed antennas, planar microwave circuits, and layered periodic structures. EM.Picasso's simulation engine is based on a 2.5-D full-wave Method of Moments (MoM) formulation that provides the ultimate modeling accuracy and computational speed for open-boundary multilayer structures. It can handle planar structures with arbitrary numbers of metal layouts, slot traces, vertical interconnects and lumped elements interspersed among different substrate layers. You can use EM.Picasso to model large finite-sized antenna arrays as well as infinite periodic structures such as frequency selective surfaces.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Picasso has been successfully used by numerous users around the globe in industry, academia and government. The new EM.Picasso 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has introduced far more powerful CAD utilities, greater geometrical variety, and a vast array of capabilities like parametric sweep, [[optimization]], data visualization and post-processing computations. The new foundation also facilitates import and export of many popular CAD formats and provides a seamless interface with our other simulation tools.&lt;br /&gt;
&lt;br /&gt;
== A Planar Method Of Moments Primer ==&lt;br /&gt;
&lt;br /&gt;
The Method of Moments (MoM) is a rigorous, full-wave numerical technique for solving open boundary electromagnetic problems. Using this technique, you can analyze electromagnetic radiation, scattering and wave propagation problems with relatively short computation times and modest computing resources. The method of moments is an integral equation technique; it solves the integral form of Maxwell’s equations as opposed to their differential forms that are used in the finite element or finite difference time domain methods.&lt;br /&gt;
&lt;br /&gt;
In a planar MoM simulation, the background structure is usually a layered planar structure that consists of one or more laterally infinite material layers. In EM.Cube’s [[Planar Module]], the layered structure is stacked along the Z axis. In other words, the dimensions of the layers are infinite along the X and Y axes. Metallic traces are placed at the boundaries between the substrate or superstrate layers. These are modeled by perfect electric conductor (PEC) traces or conductive sheet traces of finite thickness and finite conductivity. Some layers might be separated by infinite perfectly conducting ground planes. The two sides of a ground plane can be electromagnetically coupled through one or several slots or apertures. Such slots or apertures are modeled by magnetic currents and are realized and represented by perfectly magnetic conductor (PMC) traces. Furthermore, the metallic traces can be interconnected or connected to ground planes using embedded objects. Such objects can be used to model circuit vias, plated-through holes or dielectric inserts. These are modeled as volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
The currents in a planar MoM simulation are discretized as a collection of elementary currents with small finite spatial extents. These elementary currents are called basis functions and obviously have a vectorial nature. The total currents (solution of the problem) are summations of these elementary currents. The basis functions are well defined and easy to calculate; however, their amplitudes are initially unknown in a MoM problem. Through the planar MoM solution, you find these unknown amplitudes. Once the total currents are known, you can calculate the fields everywhere in the structure.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Green’s Functions ===&lt;br /&gt;
&lt;br /&gt;
The Green’s functions are the solutions of boundary value problems when they are excited by an elementary source. This is usually assumed to be an infinitesimally small vectorial point source. In order for Green’s functions to be computationally useful, they must have analytical closed forms like a mathematical expression, or one should be able to compute them using a recursive process. It turns out that only very few boundary value problems have closed-form Green’s functions. Planar layered structures with laterally infinite extents are one of those few cases, which can be represented by recursive dyadic Green's functions.&lt;br /&gt;
&lt;br /&gt;
In general, a structure may support both electric ('''J''') and magnetic ('''M''') currents. The total electric ('''E''') and magnetic ('''H''') fields can be expressed in terms of the electric and magnetic currents in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;E = E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;H = H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''GH&amp;lt;sub&amp;gt;M&amp;lt;/sub&amp;gt;''' are the dyadic Green’s functions for the electric and magnetic currents due to electric and magnetic current source, respectively, and '''E&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' and '''H&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' are the incident or impressed electric and magnetic fields, respectively. In these equations, '''r''' is the position vector of the observation point and '''r'''' is the position vector of the source point. V is the volume that contains all the sources and the volume integration is performed with respect to the primed coordinates. The incident or impressed fields provide the excitation of the structure. They may come from an incident plane wave or a gap source on a microstrip line, a short dipole, etc. The complexity of the Green’s functions depends on what is considered as the background structure. If you remove all the unknown currents from the structure, you are left with the background structure.&lt;br /&gt;
&lt;br /&gt;
=== Planar Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
To derive a system of integral equations, we enforce the boundary conditions on the integral definitions of the '''E''' and '''H''' fields as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_E(E) = L_E \bigg\{ E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_H(H) = L_H \bigg\{ H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM4(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' is the boundary value operator for the electric field and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' is the boundary value operator for the magnetic field. For example, '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E'''field vanish on perfect conductors:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = 0, \quad \mathbf{r} \in PEC &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM65.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E''' and '''H''' fields be continuous across an aperture in a perfect ground plane:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{E}^+ - \mathbf{E}^-) = 0 \\&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{H}^+ - \mathbf{H}^-) = 0&lt;br /&gt;
\end{cases} &lt;br /&gt;
\quad \Rightarrow \quad&lt;br /&gt;
\mathbf{M}^+(r) = \mathbf{M}^-(r), \quad r \in PMC&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM66(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the fact that the dyadic Green’s functions and the incident or impressed fields are all known, one can solve the above system of integral equations to find the unknown currents '''J''' and '''M'''.&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE's [[Planar Module|Planar module]], magnetic currents are always surface current with units of V/m. Electric currents, however, can be surface currents with units of A/m as in the case of metallic traces like microstrip lines, or they can be volume currents with units of A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; as in the case of perfectly conducting vias. Dielectric inserts are modeled as volume polarization currents that are related to the electric field '''E''' in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J}_p(r) = jk_0 Y_0(\varepsilon_r - \varepsilon_b)\mathbf{E}(r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant, &amp;lt;math&amp;gt;Y_0 = \tfrac{1}{Z_0} = \tfrac{1}{120\pi}&amp;lt;/math&amp;gt; is the free space intrinsic admittance, &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is the permittivity of the dielectric insert, and &amp;amp;epsilon;&amp;lt;sub&amp;gt;b&amp;lt;/sub&amp;gt; is the permittivity of its background layer. In a 2.5-D formulation, it is assumed that the volume currents have only a vertical component along the Z direction, and their circumferential components are negligible.&lt;br /&gt;
&lt;br /&gt;
=== Numerical Solution Of Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
The planar integral equations derived earlier can be solved numerically by discretizing the unknown currents using a proper meshing scheme. The original functional equations are reduced to discretized linear algebraic equations over elementary cells. The unknown quantities are found by solving this system of linear equations, and many other parameters can be computed thereafter. This method of numerical solution of integral equations is known as the Method of Moments (MoM). In this method, the unknown electric and magnetic currents are represented by expansions of basis functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;J(r) = \sum_{n=1}^N I_n^{(J)} f_n^{(J)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;M(r) = \sum_{k=1}^K V_k^{(M)} f_k^{(M)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_k^{(M)}&amp;lt;/math&amp;gt; are the generalized vector basis functions for the expansion of electric and magnetic currents, respectively, and &amp;lt;math&amp;gt;I_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;V_k^{(M)}&amp;lt;/math&amp;gt; are the unknown amplitudes of these basis functions, which have to be determined. Substituting these expansions into the integral equations generates a set of discretized integral equations, which can further be converted to a system of linear algebraic equations. This is accomplished by testing the discretized integral equations using the a set of test functions. In the method of moments, the Galerkin technique is typically used, which chooses the expansion basis functions as test functions. This leads to the following linear system:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
Z^{(EJ)} &amp;amp; T^{(EM)} \\&lt;br /&gt;
U^{(HJ)} &amp;amp; Y^{(HM)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
\cdot&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
I^{(J)} \\&lt;br /&gt;
V^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
=&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
V^{(E)} \\&lt;br /&gt;
I^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(EJ)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot &lt;br /&gt;
\iiint\limits_{V_j} dv' \overline{\overline{G}}_{EJ}(r|r') \cdot f_i^{(J)}(r')&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_i^{(E)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot E^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_i^{(H)} = \iiint\limits_{V_i} dv f_i^{(M)}(r) \cdot H^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similar expressions can be derived for the T&amp;lt;sup&amp;gt;(EM)&amp;lt;/sup&amp;gt;, U&amp;lt;sup&amp;gt;(HJ)&amp;lt;/sup&amp;gt; and Y&amp;lt;sup&amp;gt;(HM)&amp;lt;/sup&amp;gt;elements of the MoM matrix.&lt;br /&gt;
&lt;br /&gt;
=== Discretization Of Electric &amp;amp;amp; Magnetic Currents ===&lt;br /&gt;
&lt;br /&gt;
The right choice of the basis functions to represent the elementary currents is very important. It will determine the accuracy and computational efficiency of the resulting numerical solution. Rooftop basis functions are one of the most popular types of basis functions used in a variety of MoM formulations. The surface currents (whether electric or magnetic) are discretized using 2D rooftop basis functions shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image055_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Rooftop or RWG basis functions built over two rectangular, triangular or mixed cells.&lt;br /&gt;
&lt;br /&gt;
The rooftop basis functions are defined over two adjacent cells with a common edge of length. If the two cells are triangular, then the so-called RWG functions are obtained. It is also possible to define rooftop functions over two adjacent rectangular cells or two adjacent rectangular and triangular cells with a common edge. On a rectangular cell, the function is defined as having a (descending or ascending) linear profile in one direction and a constant profile in the other perpendicular direction.&lt;br /&gt;
&lt;br /&gt;
The volume polarization currents in 2.5-D MoM have a vertical direction along the Z-axis. These are discretized using prismatic basis functions that have either a rectangular or triangular base with a constant profile along the Z-axis.&lt;br /&gt;
&lt;br /&gt;
[[File:image065_tn.png]][[File:image066_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Prismatic basis functions built over single triangular and rectangular cells.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Planar Structure ==&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM14.png|thumb|350px|A typical planar layered structure]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] is intended for constructing and modeling planar layered structures. By a planar structure we mean one that contains a background substrate of laterally infinite extents, made up of one or more material layers all stacked up vertically along the Z axis. Objects of finite size are then interspersed among these substrate layers. This is somehow different than EM.Cube's other computational modules, which are geared for handling arbitrary 3D structures.&lt;br /&gt;
&lt;br /&gt;
In [[Planar Module]], the background structure, called &amp;amp;quot;'''Layer Stack-up'''&amp;amp;quot;, may involve one or more material layers of infinite extents along the X and Y axes but of finite thickness along the Z axis. When you start a new project, the background structure has a single vacuum layer. The layer stack-up is always terminated from the top and bottom by two infinite half-spaces. The terminating half-spaces might be the free space, or a perfect conductor (PEC ground), or any material medium. Most planar structures used in RF and microwave applications such as microstrip-based components have a PEC ground at their bottom. EM.Cube's default stack-up has a vacuum top half-space and a PEC bottom half-space. Some structures like stripline components require two bounding PEC grounds at both top and bottom.&lt;br /&gt;
&lt;br /&gt;
The finite-sized objects of a planar structure may include metal traces, slots and apertures, vertical vias and interconnects, or dielectric inserts including air voids inside the substrate layers. Metal traces are modeled as electric surface currents. These are planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on metal (PEC) traces and placed at the boundary (interface) plane between two substrate layers. Slots and apertures are modeled as magnetic surface currents on the surface of an infinite PEC plane and provide electromagnetic coupling between its top and bottom sides. These, too, are constructed using planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on slot (PMC) traces and placed at the boundary (interface) plane between two substrate layers. EM.Cube's [[Planar Module]] also allows prismatic objects that can be modeled by electric volume currents. These include vertical vias and dielectric inserts, and are called embedded object sets. [[Planar Module|Planar module]] does not allow construction of 3D CAD objects. Instead, you draw the cross section of prismatic objects as planar [[Surface Objects|surface objects]] parallel to the XY plane. EM.Cube then automatically extrudes these cross sections and constructs and displays 3D prisms over them. The prisms extend all the way across the thickness of the host substrate layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:PMOM14.png]]&lt;br /&gt;
Figure 1: A typical planar layered structure.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Defining Layer Stack-Up ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube’s [[Planar Module]], there is always a default background structure that consists of a finite vacuum layer sandwiched between a vacuum top half-space and a PEC bottom half-space. Every time you enter the [[Planar Module|Planar module]], the '''Stack-up Settings Dialog''' opens up. This is where you define the entire background structure. Once you close this dialog, you can open it again by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Layer Stack-up Settings...''' from the contextual menu. Or alternatively, you can select the menu item '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Layer Stack-up Settings...'''&lt;br /&gt;
&lt;br /&gt;
The Stack-up Settings dialog has two tabs: '''Layer Hierarchy''' and '''Embedded Sets'''. The Layer Hierarchy tab has a table that shows all the background layers in hierarchical order from the top half-space to the bottom half-space. It also lists the material label of each layer, Z-coordinate of the bottom of each layer, its thickness (in project units) and material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). There is also a column that lists the names of embedded object sets inside each substrate layer, if any.&lt;br /&gt;
&lt;br /&gt;
You can add new layers to your project's stack-up or delete its layers, or move layers up or down and thus change the layer hierarchy. To add a new background layer, click the arrow symbol on the '''Insert...'''button at the bottom of the dialog and select '''Substrate Layer''' from the button's dropdown list. A new dialog opens up where you can enter a label for the new layer and values for its material properties and thickness in project units.&lt;br /&gt;
&lt;br /&gt;
You can delete a layer by selecting its row in the table and clicking the '''Delete''' button. To move a layer up and down, click on its row to select and highlight it. Then click either the '''Move Up''' or '''Move Down''' buttons consecutively to move the selected layer to the desired location in the stack-up. Note that you cannot delete or move the top or bottom half-spaces.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM8(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Editing Substrate Layers ===&lt;br /&gt;
After creating a substrate layer, you can always edit its properties in the Layer Stack-up Settings dialog. Click on any layer's row in the table to select and highlight it and then click the '''Edit''' button. The substrate layer dialog opens up, where you can change the layer's label and assigned color. In the material properties section of the dialog, you can change the name of the material and its properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). To define electrical losses, you can either assign a value for electric conductivity (s), or alternatively, define a loss tangent for the material. In the latter case, check the box labeled &amp;amp;quot;'''Specify Loss Tangent'''&amp;amp;quot; and enter a value for it. In this case, the electric conductivity field becomes greyed out and reflects the corresponding s value at the center frequency of the project.&lt;br /&gt;
&lt;br /&gt;
You can also set the thickness of the substrate layer in the project units. Note that you cannot change the thickness of the top and bottom half-spaces. You can only change their material properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM9.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Substrate Layer dialog.&lt;br /&gt;
&lt;br /&gt;
You can also use EM.Cube's Material List to define the material properties of a substrate layer. In the Substrate Layer Dialog, click the '''Material''' button to open the '''Material List'''. In the Material List Dialog, pick any material or type the first letter of a material to highlight it. Then click the '''OK''' button or simply hit the '''Enter''' key of your keyboard to close the list and return to the substrate layer dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM10.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Materials dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Object Types ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] groups objects by their material and electromagnetic properties. Each object group shares the same color and same position in the layer stack-up. All the planar objects belonging to the same trace are located on the same substrate layer boundary. All the prismatic objects belonging to the same embedded set lie inside the same substrate layer and have the same material composition. Theoretically speaking, all the objects belonging to a group are governed by the same boundary conditions. EM.Cube’s [[Planar Module]] currently provides the following types of objects for building a planar layered structure:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC) Traces:''' These represent infinitesimally thin metallic objects that are deposited or metallized on or between substrate layers. PEC objects are modeled by surface electric currents that satisfy the PEC boundary condition.&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC) Traces:''' These are used to model slots and apertures in infinite PEC ground planes. PMC objects are always assumed to lie on an infinite horizontal PEC ground plane with zero thickness. They are modeled by surface magnetic currents, enforcing the continuity of tangential fields across the slots or apertures.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metals. They have a finite conductivity and a very small thickness. A surface impedance boundary condition is enforced on the surface of such traces.&lt;br /&gt;
# '''PEC Via Sets:''' These are metallic objects such as shorting pins, interconnect vias, plated-through holes, etc. that are grouped together as prismatic object sets. The embedded objects are modeled as vertical volume conduction currents.&lt;br /&gt;
# '''Embedded Dielectric Sets:''' These are prismatic dielectric objects inserted inside a substrate layer. You can define a finite permittivity and conductivity for such objects, but their height is always the same as the height of their host layer. The embedded dielectric objects are modeled as vertical volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
=== Defining Traces &amp;amp;amp; Object Sets ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]], the project workspace looks empty, and there are no finite objects in it. However, a default background structure is always assumed to exist by default. Objects are defined as part of traces or embedded sets. Once defined, you can see a list of project objects in the '''Physical Structure''' section of the Navigation Tree. Traces and object sets can be defined either from Layer Stack-up Settings dialog or from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
In the '''Layer Stack-up Settings''' dialog, you can add a new trace to the stack-up by clicking the arrow symbol on the '''Insert''' button of the dialog. You have to choose from '''Metal (PEC)''', '''Slot (PMC)''' or '''Conductive Sheet''' options. A respective dialog opens up, where you can enter a label and assign a color other than default ones. Once a new trace is defined, it is added, by default, to the top of the stack-up table underneath the top half-space. From here, you can move the trace down to the desired location on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Every time you define a new trace, it is also added under the respective category in the Navigation Tree. Alternatively, you can define a new trace from the Navigation Tree by right clicking on one of the trace type names and selecting '''Insert New PEC Trace...'''or '''Insert New PMC Trace...'''or '''Insert New Conductive Sheet Trace...'''A respective dialog opens up for setting the trace properties. Once you close this dialog, it takes you directly to the Layer Stack-up Settings dialog so that you can set the right position of the trace on the stack-up.&lt;br /&gt;
&lt;br /&gt;
=== Drawing Planar Objects ===&lt;br /&gt;
&lt;br /&gt;
As soon as you start drawing geometrical objects in the project workspace, the Physical Structure section of the Navigation Tree gets populated. The names of traces are added under their respective trace type category, and the names of objects appear under their respective trace group. At any time, one and only one trace is active in the project workspace. An active trace is where all the new objects you draw belong to. When you define a new trace, it is set as active and you can immediately start drawing new objects on that trace. You can also set any trace active at any time by right clicking its name on the Navigation Tree and selecting '''Activate''' from the contextual menu. The name of the active trace is always displayed in bold letter in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM13.png]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] has a special feature that makes construction of planar structures quite easy and straightforward. '''The active work plane of the project workspace is always set at the plane of the active trace.''' In EM.Cube's other modules, all objects are drawn in the XY plane (z = 0) by default. In [[Planar Module]], all new objects are drawn on a horizontal plane that is located at the Z-coordinate of the currently active trace. As you change the active trace or add a new trace, you will also change the active work plane.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Metallic Traces ===&lt;br /&gt;
&lt;br /&gt;
A trace is a group of finite-sized planar objects that have the same conductive properties and same Z-coordinate. In other words, they are located on the same horizontal plane, or at the same vertical level on the layer stack-up. You can define two types of metallic traces in the [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
# '''PEC Traces:''' These represent perfect conductor objects that have zero thickness and no editable material properties.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metal objects. They have a very small finite thickness t and a finite conductivity s.&lt;br /&gt;
&lt;br /&gt;
The conductive sheet traces are modeled using the surface impedance boundary condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = -Z_s\mathbf{J_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM17(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;Z_s&amp;lt;/math&amp;gt; is the surface impedance of the conductive sheet. If the thickness of the sheet is greater than the skin depth of the metal at the project frequency, then the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1+j}{\sigma \delta}, \quad \delta = \sqrt{\dfrac{2}{k_0 Z_0 \sigma}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM18.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the thickness t of the sheet is less than the skin depth, then the conductive sheet transition boundary condition is used instead, and the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1}{[j k_0 Y_0 (\varepsilon_r - 1) + \sigma] \tau} = \dfrac{1}{\sigma_{tot} \tau} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM19(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]] with no traces defined, if you simply draw a new object, a default PEC trace is created and added to the Navigation Tree to hold that object. Alternatively, you can define your own new traces from the Layer Stack-up Settings dialog or directly from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
NOTE: Two or more PEC and conductive sheet traces can coexist at the same Z-coordinate. In this case, the Layer Stack-up Settings dialog shows these trace rows stacked up on top of each other between their common top and bottom substrate layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM15.png]] [[File:PMOM16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PEC and Conductive Sheet Trace dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Slot Traces ===&lt;br /&gt;
&lt;br /&gt;
Slots and apertures are cut-out and removed metal in an infinite perfectly conducting (PEC) ground plane. When a slot is excited, tangential electric fields are formed on the aperture, which can be modeled as finite magnetic surface currents confined to the area of the slot. Therefore, instead of modeling the electric surface currents on the PEC ground around the slot, one can alternatively model the finite-extent magnetic surface currents on PMC traces. In EM.Cube's [[Planar Module]], you define slot objects under PMC traces. A PMC trace at a certain Z-plane implies the presence of an infinite PEC plane at that Z-coordinate. Therefore, you do not need to define an additional PEC plane at that location on the layer stack-up. The slot (PMC) objects provide the electromagnetic coupling between the two sides of this infinite ground plane. By the same token, you cannot place a PEC trace and a PMC trace at the same Z-level, as the latter's ground will short the former. However, you can define two or more PMC traces at the same Z-plane. In this case, all the slot objects lie on the same infinite PEC ground plane. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM20.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PMC Trace dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Embedded Object Sets ===&lt;br /&gt;
&lt;br /&gt;
Embedded object sets represent short material insertions inside substrate layers. They can be metal or dielectric. Metallic embedded objects can be used to model vias, plated-through holes, shorting pins and interconnects. These are called PEC via sets. Embedded dielectric objects can be used to model air voids, thin films and material inserts in metamaterial structures. Embedded magnetic object are not currently supported by EM.Cube’s [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Embedded objects can be defined either from the Layer Stack-up Settings dialog or directly from the Navigation Tree. In the former case, open the &amp;amp;quot;Embedded Sets&amp;amp;quot; tab of the stack-up dialog. This tab has a table that lists all the embedded object sets along with their material type, the host substrate layer, the host material and their height. &lt;br /&gt;
&lt;br /&gt;
{{Note|The height of an embedded object is always identical to the thickness of its host substrate layer.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up dialog showing the Embedded Sets tab.&lt;br /&gt;
&lt;br /&gt;
To add a new object set, click the arrow symbol on the '''Insert''' button of the dialog and select one of the two options, '''PEC Via Set''' or '''Embedded Dielectric Set''', from the dropdown list. This opens up a new dialog where first you have to set the host layer of the new object set. A dropdown list labeled &amp;amp;quot;'''Host Layer'''&amp;amp;quot; gives a list of all the available finite substrate layers. You can also set the properties of the embedded object set, including its label, color and material properties. Keep in mind that you cannot control the height of embedded objects. Moreover, you cannot assign material properties to PEC via sets, while you can set values for the '''Permittivity'''(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity'''(&amp;amp;sigma;) of embedded dielectric sets. Vacuum is the default material choice. You may use EM.Cube's Material List for this purpose, which can be opened up by clicking the '''Material''' button. Once embedded object sets are added to the Embedded Sets table, you can edit their properties at any time by selecting their row and clicking the '''Edit''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM21.png]] [[File:PMOM22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The [[Planar Module]]'s PEC Via Set and Embedded Dielectric Set dialogs.&lt;br /&gt;
&lt;br /&gt;
To define an embedded set from the Navigation Tree, right click on the '''Embedded Object Sets''' item in the '''Physical Structure''' section of the Navigation Tree and select either '''Insert New PEC Via Set...''' or '''Insert New Embedded Dielectric Set...''' The respective New Embedded Object Set dialog opens up, where you set the properties of the new object set. As soon as you close this dialog, it takes you to the Layer Stack-up Settings dialog, where you can examine the location of the new object set on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
After a new embedded object set has been defined and added to the Navigation Tree, it becomes the active trace. You are now ready to create geometrical objects in the new active trace. Remember that [[Planar Module]] does not allow you to draw 3D objects. The solid object buttons in the '''Object Toolbar''' are disabled to prevent you from doing so. Instead, you draw planar [[Surface Objects|surface objects]] as the cross section of embedded sets. EM.Cube extends these planar objects across their host layer automatically and displays them as wire-frame, 3D extruded objects. Extrusion of embedded object sets happen after meshing and before every simulation. You can enforce this extrusion manually by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Update Planar Structure...''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Rules &amp;amp;amp; Limitations ===&lt;br /&gt;
&lt;br /&gt;
# Terminating PEC ground planes at the top or bottom of a planar structure are defined as PEC top or bottom half-spaces, respectively.&lt;br /&gt;
# A PEC ground plane placed in the middle of a substrate stack-up requires at least one slot object to provide electromagnetic coupling between its top and bottom sides. In this case, a PMC trace is rather introduced at the given Z-plane, which implies the presence of an infinite PEC ground although it is not explicitly indicated in the Navigation Tree.&lt;br /&gt;
# Metallic and slot traces cannot coexist on the same Z-plane. However, you can stack up multiple PEC and conductive sheet traces at the same Z-coordinate. Similarly, multiple PMC traces can be placed at the same Z-coordinate.&lt;br /&gt;
# Metallic and slot traces are strictly defined at the interface planes between substrate layers. To define a suspended metallic trace in a substrate layer (as in the case of the center conductor of a stripline), you must split the dielectric layer into two thinner layers and place your PEC trace at the interface between them.&lt;br /&gt;
# The current version of the Planar MoM simulation engine is based on a 2.5-D MoM formulation. Only vertical volume currents and no circumferential components are allowed on embedded objects. The 2.5-D assumption holds very well in two cases: (a) when embedded objects are very thin with a very small cross section (with lateral dimensions less than 2-5% of the material wavelength) or (b) when embedded objects are very short and sandwiched between two closely spaced PEC traces or grounds from the top and bottom.&lt;br /&gt;
# The current release of EM.Cube allows any number of PEC via sets collocated in the same substrate layer. However, you can define only one embedded dielectric object set per substrate layer, and no vias sets collocated in the same layer. Note that the single set can host an arbitrary number of embedded dielectric objects of the same material properties.&lt;br /&gt;
&lt;br /&gt;
=== Managing Objects, Traces &amp;amp;amp; Sets ===&lt;br /&gt;
&lt;br /&gt;
You can manage your project's layer hierarchy from the Layer Stack-up Settings dialog. You can add, delete and move around substrate layers, metallic and slot traces and embedded object sets. Metallic and slot traces can move among the interface planes between neighboring substrate layers. Embedded object sets including PEC vias and finite dielectric objects can move from substrate layer into another. When you delete a trace from the Layer Stack-up Settings dialog, all of its objects are deleted from the project workspace, too. You can also delete metallic and slot traces or embedded object sets from the Navigation Tree. To do so, right click on the name of the trace or object set in the Navigation Tree and select '''Delete''' from the contextual menu. You can also delete all the traces or object sets of the same type from the contextual menu of the respective type category in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
For better visualization of your planar structure, EM.Cube displays a virtual domain in a default orange color to represent part of the infinite background structure. The size of this virtual domain is a quarter wavelength offset from the largest bounding box that encompasses all the finite objects in the project workspace. You can change the size of the virtual domain or its display color from the Domain Settings dialog, which you can access either by clicking the '''Computational Domain''' [[File:domain_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Domain Settings...''' from the Simulate Menu or by right clicking the '''Virtual Domain''' item of the Navigation Tree and selecting '''Domain Settings...''' from the contextual menu, or using the keyboard shortcut '''Ctrl+A'''. But keep in mind that the virtual domain is only for visualization purpose and does not affect the MoM simulation. The virtual domain also shows the substrate layers in translucent colors. As you change the colors assigned to the substrate layers, you will see a multilayer virtual domain box surrounding your project structure.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_phys5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Virtual Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the last defined trace or embedded object set is active. You can activate any trace or embedded object set at any time for drawing new objects. You can move one or more selected objects from any trace or embedded object set to another group of the same type or of different type. First select an object in the project workspace or in the Navigation Tree. Then, right click on the highlighted selection and select '''Move To &amp;amp;gt;''' from the contextual menu. This opens another sub-menu containing '''Planar''' and a list of all the other EM.Cube modules that have already defined object groups. Select '''Planar''' or any other available module, and yet another sub-menu opens up with a list of all the available traces and embedded object sets already defined in your project. Select the desired group, and all the selected objects will move to that group. When selecting multiple objects from the Navigation Tree, make sure that you hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting a group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Discretizing Planar Structures ==&lt;br /&gt;
&lt;br /&gt;
=== The Planar MoM Mesh ===&lt;br /&gt;
&lt;br /&gt;
The method of moments (MoM) discretizes all the finite-sized objects of a planar structure (excluding the background structure) into a set of elementary cells. The planar integral equations are then solved approximately on these elementary cells. As this method does not require a discretization of the entire computational domain, it is often computationally much more efficient than differential-based techniques like FEM or FDTD, which mesh the whole domain. The accuracy of the MoM numerical solution depends greatly on the quality of the generated mesh. The mesh density gives a measure of how electrically small these elementary cells are. Low mesh resolutions compromise the accuracy of the numerical solution. On the other hand, very high mesh densities may lead to numerical instability of the method of moments. As a rule of thumb, a mesh density of about 20-30 cells per effective wavelength usually yields acceptable results. Yet, for structures with lots of fine geometrical details or for highly resonant structures, higher mesh densities may be required. Also, the particular simulation data that you seek in a project will also influence your choice of mesh resolution. For example, far field characteristics like radiation patterns are less sensitive to the mesh density than field distributions on a structure with a highly irregular shape and a rugged boundary.&lt;br /&gt;
&lt;br /&gt;
It is well known that any planar geometry with any degree of complexity can be reasonably discretized using a surface triangular mesh. EM.Cube's [[Planar Module]] provides a versatile triangular mesh generator for this purpose. This generates a regular mesh, in which most of the triangular cells have almost equal areas. The uniformity or regularity of mesh is an important factor in warranting a stable numerical solution. A highly incongruous mesh may even produce completely erroneous results. EM.Cube's [[Planar Module]] also offers another mesh generator that creates a &amp;amp;quot;Hubrid&amp;amp;quot; planar mesh combining triangular and rectangular cells. Although triangular cells are more versatile than rectangular cells in adapting to arbitrary geometries, many practical planar structures contain a large number of rectangular parts like patch antennas, microstrip lines and components, etc.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM32.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar hybrid and triangular meshes for rectangular patches.&lt;br /&gt;
&lt;br /&gt;
=== The Rectangular Mesh Advantage ===&lt;br /&gt;
&lt;br /&gt;
Rectangular cells offer a major advantage over triangular cells for numerical MoM simulation of planar structures. This is due to the fact that the dyadic Green's functions of planar layered background structures are space-invariant on the transverse plane. Recall that the elements of the moment matrix are given by the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(\mu \nu)} = \iiint_{V_i} d\nu f_i^{(\mu)}(r) \cdot \iiint_{V_j}d\nu ' \overline{\overline{G}}_{\mu \nu}(r|r') \cdot f_j^{(v)}(r') &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM24(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the spatial-domain dyadic Green's functions are a function of the observation and source coordinates, '''r'''and '''r' '''. The MoM matrix elements can indeed be interpreted as interactions between two elementary basis functions '''f&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;(r)''' and '''f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;(r')''' on that particular background structure. The spatial-domain dyadic Green's functions can themselves be expressed in terms of the spectral-domain dyadic Green's functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\overline{\overline{G}}_{\mu \nu}(r|r') = \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{\overline{\overline{G}}}_{\mu \nu} (k_p, z|z') e^{-j[k_x(x-x')+k_y(y-y')]} \, dk_x \, dk_y ,&lt;br /&gt;
\quad {k_p}^2 = {k_x}^2 + {k_y}^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM26.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the doubly infinite integration is performed with respect to the spectral [[variables]] k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;. As can be seen from the above expression, the spatial-domain dyadic Green's functions are functions of z, z', as well as (x-x') and (y-y'). The MoM matrix elements can now be transformed into the spectral domain as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
Z_{ij}^{(\mu \nu)} = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{f}_i^{(\mu)} (k_x, k_y) \cdot \tilde{\overline{\overline{G}}}_{\mu \nu} (k_{\rho}, z|z') \cdot&lt;br /&gt;
\tilde{f}_j^{(\nu)} (k_x, k_y) \, dk_x \, dk_y&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM27.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the tilde symbol signifies the Fourier transform of a function defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\tilde{f}(k_x, k_y) = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
f(x,y) e^{j(k_x x + k_y y)} \, dx \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM28(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rectangular cells have simple Fourier transforms. The rooftop basis functions are triangular functions in the direction of current flow and constant in the perpendicular direction. This means that their Fourier transform is a product of a sinc-squared function along one spectral direction and a sinc function along the other. You can see from the figure below that if one deals with a rectangular mesh of identical cells (all equal and parallel), then the interactions among the rooftop basis functions become a functions of the index differences and not the absolute indices:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{(i,k)|(j,l)} = Z \Big\langle f_{i,k}(x,y)| f_{j,l}(x', y') \Big\rangle = Z_{(i-j)|(k-l)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM29.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equation, the vectorial rooftop basis functions have explicit, double indices: i and k along the local X and Y directions, respectively, for the test (observation) basis function, and j and l along the local X and Y directions, respectively, for the expansion (source) basis function. Thus, uniform rectangular cells, i.e. structured rectangular cells of identical size aligned in the same direction, can speed up the planar MoM simulation significantly due to these symmetry and the invariance properties. For example, all the self-interactions are identical regardless of the location of a rooftop basis function. This reduces the matrix fill process for a total of N rooftop basis functions from an N2 process to one of order N.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Pairs of rooftop basis functions that have identical MoM interactions.&lt;br /&gt;
&lt;br /&gt;
=== Generating A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
The planar MoM mesh generation process involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties&lt;br /&gt;
# Creating and viewing the mesh&lt;br /&gt;
# Verifying the mesh for integrity&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] offers two mesh generation algorithms for discretizing planar structures: Hybrid and Triangular. The hybrid mesh consists of both rectangular and triangular cells. The hybrid mesh generator creates a kind of “object-centric” mesh that depends on the geometry of each object. It tries to discretize rectangular objects with rectangular cells as much as possible. In certain connection areas, a few triangular cells might be inserted to provide the mesh transition for current continuity. All the non-rectangular objects (circular, polygonal, etc.) are discretized using triangular cells. The triangular mesh generator, on the other hand, discretizes the planar objects with all triangular cells regardless of their shape. The only exceptions are feed lines that contain gap sources or lumped elements, which are always meshed with rectangular cells.&lt;br /&gt;
&lt;br /&gt;
You can generate and view a planar mesh by clicking the '''Show Mesh''' [[File:mesh_tool.png]] button of the '''Simulate Toolbar''' or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' or using the keyboard shortcut '''Ctrl+M'''. When the mesh of the planar structure is displayed in EM.Cube’s project workspace, its &amp;amp;quot;Mesh View&amp;amp;quot; mode is enabled. In this mode you can perform view operations like rotate view, pan or zoom, but you cannot create new objects or edit existing ones. To exit the mesh view mode, press the keyboard's '''Esc Key''' or click the '''Show Mesh''' [[File:mesh_tool.png]] button once again.&lt;br /&gt;
&lt;br /&gt;
Once a mesh is generated, it stays in the memory until the structure is changed or the mesh density or other settings are modified. Every time you view mesh, the one in the memory is displayed. You can force EM.Cube to create a new mesh from the ground up by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''Planar Mesh''' item in the '''Discretization''' section of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Mesh Density ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, generates a hybrid mesh of your planar structure with a mesh density of 20 cells per effective wavelength. It is important to understand the concept of mesh density (either hybrid or triangular) as used by [[Planar Module]]. It gives a measure of the number of cells per effective wavelength that are placed in various regions of your planar structure. The higher the mesh density, the more cells are created on the geometrical objects. Keep in mind that only the finite-sized objects of your structure are discretized. No mesh is generated for the substrate layers of your background structure. The free-space wavelength is defined as &amp;lt;math&amp;gt;\lambda_0 = \tfrac{2\pi f}{c}&amp;lt;/math&amp;gt;, where f is the center frequency of your project and c is the speed of light in the free space. The effective wavelength is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where e&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity.&lt;br /&gt;
&lt;br /&gt;
The effective permittivity is defined differently for different types of traces and embedded object sets. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivity of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivity of the two substrate layers just above and below the metallic trace. These definitions of effective permittivity are consistent with the effective propagation constant of transmission lines realized on such trace types. For embedded object sets, the effective permittivity is defined as the largest of the permittivities of all the substrate layers and embedded dielectric sets. In all cases, for the purpose of calculating the effective wavelength, only the real part of the permittivities are considered. The reason for using an effective wavelength so defined for determination of mesh resolution is to make sure that enough cells are placed in areas that might feature higher field concentration.&lt;br /&gt;
&lt;br /&gt;
Due to the different definitions of effective wavelength in different parts of your planar structure, you will see different mesh resolutions. For example, if you structure has several substrate layers with different permittivities, the mesh of metal traces on layers with a higher permittivity value will feature more cells than the mesh of metal traces on layers with a lower permittivity value even though the mesh density value is the same for the whole structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM30.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of two rectangular patches at two different planes. The lower substrate layer has a higher permittivity.&lt;br /&gt;
&lt;br /&gt;
=== Customizing A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the planar mesh including the mesh type and density from the planar Mesh Settings Dialog. You can also change these settings while in the mesh view mode, and you can update the changes to view the new mesh. To open the mesh settings dialog, either click the '''Mesh Settings''' [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Mesh Settings...''', or by right click on the '''Planar 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 mesh algorithm from the dropdown list labeled '''Mesh Type''', which offers two options: '''Hybrid''' and '''Triangular'''. You can also enter a different value for '''Mesh Density''' in cells per effective wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;). For each value of mesh density, the dialog also shows the average &amp;amp;quot;Cell Edge Length&amp;amp;quot; in the free space. To get an idea of the size of mesh cells on the traces and embedded object sets, divide this edge length by the square root of the effective permittivity a particular trace or set. Click the '''Apply''' button to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM31.png]]&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Of Connected Trace Objects ===&lt;br /&gt;
&lt;br /&gt;
Using the generated mesh of a planar structure, EM.Cube creates a set of vectorial basis functions that are passed to the input file of the Planar MoM simulation engine. This engine requires edge-based basis functions. The common edges between adjacent cells are used to define edge-based rooftop or RWG basis functions. These elementary basis functions indeed provide the current flow and warrant the continuity among the mesh cells. Therefore, when two objects overlap or share a common edge, the connection between them must be translated into &amp;amp;quot;bridge&amp;amp;quot; basis functions, which carry the information about current flow to the simulation engine.&lt;br /&gt;
&lt;br /&gt;
'''The most important rule of object connections in EM.Cube's [[Planar Module]] is that only objects belonging to the same trace can be connected to one another.''' For example, if two objects reside on the same Z-plane and geometrically have a common edge which you can clearly see in the project workspace, but organizationally they belong to two different metal traces, then the bridge basis functions will not be generated between them, and the simulation engine will see them disconnected. If two objects belong to the same trace and have a common overlap area, EM.Cube first merges the two objects using the &amp;amp;quot;Boolean Union&amp;amp;quot; operation and converts them into a single object for the purpose of meshing. The mesh of &amp;amp;quot;unioned&amp;amp;quot; areas is usually made up of triangular cells. If two objects reside on the same Z-plane and geometrically overlap with each other but organizationally belong to two different trace groups, incongruous, overlapped cells will be generated that will either blow up the linear system or produce completely wrong simulation results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM36.png|250px]] [[File:PMOM38.png|250px]] [[File:PMOM37.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Two overlapping planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
When two planar objects belonging to the same trace are connected via a common edge, it is critical to generate a consistent mesh at the connection area and properly transition and merge the meshes of the individual objects. EM.Cube's triangular planar mesh generator simply &amp;amp;quot;unions&amp;amp;quot; the two objects and generates a connected mesh. EM.Cube's hybrid planar mesh generator, however, behave differently when it comes to the connection between rectangular objects. The rule in this case is the following:&lt;br /&gt;
&lt;br /&gt;
* If the two connected rectangular objects have the same side dimensions along the common linear edge with perfect alignment, a rectangular bridge mesh is produced.&lt;br /&gt;
* If the two connected rectangular objects have different side dimensions along the common linear edge or have edge offset, a set of triangular cells is generated along the edge of the object with the large side.&lt;br /&gt;
* Rectangular objects that contain gap source or lumped elements, always have a rectangular mesh around the gap area.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM33.png|250px]] [[File:PMOM35.png|250px]] [[File:PMOM34.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edge-connected rectangular planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
=== Mesh of Embedded Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] models embedded objects as vertical volume currents. The vectorial basis functions in this case are Z-directed prisms as opposed to rooftop basis functions. If an embedded object is located under or above a metallic trace or connected from both top and bottom, it is critical to create mesh continuity between the embedded object and its connected metallic traces. In other words, the generated mesh must ensure current continuity between the vertical volume currents and horizontal surface currents. EM.Cube’s planar mesh generator automatically handles situations of this kind and generates all the required connection meshes.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that EM.Cube’s Planar MoM engine uses a 2.5-D approximation, whereby only vertical volume currents are assumed inside embedded objects. When the height of an embedded object is small (as should typically be under the 2.5-D assumption), one prismatic cell is placed across the object along the Z-axis. Long PEC vias with a very small radius do also satisfy the 2.5-D assumption. In this case, the long via objects are discretized further along the Z direction and generate multiple stacked cells. Several prismatic cells along the Z-axis may increase the simulation time drastically. This is due to the fact that the host layer is effectively subdivided into a number of sub-layers and the stacked cells are treated as stacked vias embedded inside these sub-layers. As a result, the simulation engine needs to compute all the dyadic Green’s functions accounting for the interactions between all such sub-layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM39.png|400px]] [[File:PMOM40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of a vertical PEC via connecting two horizontal metallic strips. The shorter via has one prismatic cell along the Z direction, while the longer via is discretized into several stacked cells.&lt;br /&gt;
&lt;br /&gt;
=== Refining Mesh At Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
It is very important to apply the right mesh density to capture all the geometrical details of your planar structure. This is especially true for &amp;amp;quot;field discontinuity&amp;amp;quot; regions such as junction areas between objects of different side dimensions, where larger current concentrations are usually observed at sharp corners, or at the connection areas between metallic traces and PEC vias, as well as the areas around gap sources and lumped elements, as these create voltage or current discontinuities. For large planar structures, using a higher mesh density may not always be a practical option since it will quickly lead to a very large MoM matrix and thus growing the size of the numerical problem. Sometimes a slightly non-uniform mesh still produces stable numerical results. In other words, you may choose to increase the mesh resolution around the discontinuity regions only.&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh around geometrical and field discontinuities. You can check the check box labeled &amp;amp;quot;'''Refine Mesh at Junctions'''&amp;amp;quot;, which increases the mesh resolution at the connection area between rectangular objects. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Gap Locations'''&amp;amp;quot;, which may prove particularly useful when gap sources or lumped elements are placed on a short transmission line connected from both ends. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Vias'''&amp;amp;quot;, which increases the mesh resolution on the cross section of embedded object sets and by extension at the connection regions of the metallic objects connected to them. EM.Cube typically doubles the mesh resolution locally at the discontinuity areas when the respective boxes are checked.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM41.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Refining the planar mesh at the via and surrounding area.&lt;br /&gt;
&lt;br /&gt;
=== Checking Mesh Integrity ===&lt;br /&gt;
&lt;br /&gt;
You should always visually inspect EM.Cube's default generated mesh to see if the current mesh settings have produced an acceptable mesh. You may often need to change the mesh density or other parameters and regenerate the mesh. The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, highly incongruous meshes should always be avoided. Sometimes EM.Cube's default mesh may contain very narrow triangular cells due to very small angles between two edges. In some rare cases, extremely small triangular cells may be generated, whose area is a small fraction of the average mesh cell. These cases typically happen at the junctions and other discontinuity regions or at the boundary of highly irregular geometries with extremely fine details. In such cases, increasing or decreasing the mesh density by one or few cells per effective wavelength often resolves that problem and eliminates those defective cells. Nonetheless, EM.Cube's planar mesh generator offers an option to identify the defective triangular cells and either delete them or cure them. By curing we mean removing a narrow triangular cell and merging its two closely spaced nodes to fill the crack left behind.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM44.png|400px]] [[File:PMOM42.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Deleting or curing defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
EM.Cube by default deletes or cures all the triangular cells that have angles less than 10º. Sometimes removing defective cells may inadvertently cause worse problems in the mesh. You may choose to disable this feature and uncheck the box labeled &amp;amp;quot;'''Remove Defective Triangular Cells'''&amp;amp;quot; in the Planar Mesh Settings dialog. You can also change the value of the minimum allowable cell angle.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM43(1).png]]&lt;br /&gt;
&lt;br /&gt;
Setting the minimum allowable angle for non-defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
=== Locking Mesh Of Object Groups ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides different ways of controlling the mesh of a planar structure locally. Earlier you saw how to increase the mesh resolution at the discontinuity regions without affecting the mesh of uniform or regular areas of a planar structure. Another way of local mesh control is to lock the mesh density of certain traces or object sets. The mesh density that you specify in the Planar Mesh Settings dialog is a global parameter and applies to all the traces and embedded object sets in your project. However, you can lock the mesh of individual PEC, PMC and conductive sheet traces or embedded objects sets. In that case, the locked mesh density takes precedence over the global density. Note that locking mesh of object groups, in principle, is different than refining the mesh at discontinuities. In the latter case, the mesh of connection areas is affected. However, objects belonging to different traces cannot be connected to one another. Therefore, locking mesh can be useful primarily for isolated object groups that may require a higher (or lower) mesh resolution.&lt;br /&gt;
&lt;br /&gt;
You can lock the local mesh density by accessing the property dialog of a specific trace or embedded object set and checking the box labeled '''Lock Mesh'''. This will enable the '''Mesh Density''' box, where you can accept the default global value or set any desired new value.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM45.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of an object group from its property dialog.&lt;br /&gt;
&lt;br /&gt;
=== Local Mesh Control Using Polymesh Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to manually and individually mesh geometrical objects using the concept of polymesh. The Polymesh tool converts a planar surface object to a set of interconnected triangular cells, which is basically identical to its triangular surface mesh. Simply select an object and click the '''Polymesh Tool''' [[File:polymesh_tool_tn.png]] button of '''Tools Toolbar''', or select '''Menu &amp;amp;gt; Tools &amp;amp;gt; Polymesh''', or use the keyboard shortcut '''P'''. You can also right click on a selected object and select '''Polymesh''' from the contextual menu. From the Polymesh Dialog, you can control the mesh resolution through the '''Edge Length''' parameter, which is expressed in project units. Note that unlike the planar mesh generator which uses a frequency-dependent mesh density to drive the mesh resolution, the ploymesh's edge length is fixed and purely geometrical and does not change with the project frequency. '''EM.Cube's mesh generator considers a polymesh object as a &amp;amp;quot;final&amp;amp;quot; mesh and reproduces it &amp;amp;quot;As Is&amp;amp;quot; during the meshing process.'''&lt;br /&gt;
&lt;br /&gt;
You have access to every single node of a polymesh object and you can change its coordinates arbitrarily. You do this by opening the property dialog of a polymesh object and selecting a certain node index in the box labeled '''Active Node'''. You can also select a node by hovering the mouse over the node to highlight it and then click to select it. A red ball appears on the current active node. You can delete the nodes arbitrarily using the '''Delete''' button of the dialog, which results in lowering the mesh resolution at the location of the deleted node. Or you can insert new nodes in the faces of a polymesh object. To insert a node, first you have to select a face. Change the '''Mode''' option by selecting the '''Face''' radio button and then select the right '''Active Face''' index. A red triangular border appears around the selected face. You can also simply click on the surface of a face and select it using the mouse. With the desired face selected, click the '''Insert''' button of the dialog to create a new node at the centroid of the selected face. You can adjust the coordinates of the newly inserted node from the three X, Y and Z '''Coordinate''' boxes. Note that immediately after the insertion of a new node, the label of these coordinate boxes changes to &amp;amp;quot;'''New Node'''&amp;amp;quot; and they show the relative local X, Y and Z offsets with respect to the original node position. Once you close the Polymesh Dialog, the new node is added to the existing node list and can be edited later like the other polymesh nodes. By inserting a new node, you increase the mesh resolution locally and selectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM46(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Discretizing a planar surface object using EM.Cube's Polymesh tool.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that since a polymesh object it considered a final mesh, its mesh cannot be connected to other objects. In other words, bridge basis functions are not generated if even some of the polymesh edges may coincide with other objects' edges. A polymesh object is treated by the mesh generator as an isolated mesh. However, EM.Cube allows you to connect polymesh objects manually. To do so, bring two or more polymesh objects close to each other so that they have one or more common edges. No face overlaps are allowed in this case. Select the polymesh objects and click the '''Merge Tool'''[[File:merge_tool_tn.png]] button of '''Tools Toolbar''' to merge the polymesh objects into a single polymesh object. The new merged polymesh object will provide all the necessary bridge basis functions among the original, separate polymesh objects.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
In a typical electromagnetic simulation in EM.Cube's [[Planar Module]], you define a planar structure that consists of a layered background structure with a number of finite-sized metal and slot traces and possibly embedded metal or dielectric objects interspersed among the substrate layers. The planar structure is then excited by some sort of a signal source that induces electric currents on metal parts and magnetic currents on slot traces. The method of moments (MoM) solver computes these unknown electric and magnetic currents by discretizing the finite-sized objects. The induced currents, in turn, produce their own electric and magnetic fields which coexist (are superposed) with the impressed electric and magnetic fields of the signal source. From a knowledge of the near fields, EM.Cube calculates the port characteristics of the planar structure, if any ports have been defined. From a knowledge of the far fields, EM.Cube calculates the radiation or scattering characteristics of the planar structure.&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure in a number of different ways. The excitation source you choose depends on the observables you seek in your project. [[Planar Module]] provides the following source for exciting planar structures:&lt;br /&gt;
&lt;br /&gt;
* Lumped Sources with three varieties: [[#Gap Sources|Gap Sources]], [[#De-embedded Sources|De-embedded Sources]] and [[#Probe Sources|Probe Sources]]&lt;br /&gt;
* [[#Plane Wave Sources|Plane Wave Sources]]&lt;br /&gt;
* [[#Short Dipole Sources|Short Dipole Sources]]&lt;br /&gt;
* [[#Huygens Sources|Huygens Sources]]&lt;br /&gt;
&lt;br /&gt;
For antennas and planar circuits, where you typically define one or more ports, you usually use lumped sources. A lumped source is indeed a gap discontinuity that is placed on the path of an electric or magnetic current flow, where a voltage or current source is connected to inject a signal. Gap sources are placed across metal or slot traces. Probe sources are placed across vertical PEC vias. A de-embedded source is a special type of gap source that is placed near the open end of an elongated metal or slot trace to create a standing wave pattern, from which the scattering parameters can be calculated accurately. To calculate the scattering characteristics of a planar structure, e.g. its radar cross section (RCS), you excite it with a plane wave source. Short dipole sources are used to explore propagation of points sources along a layered structure. Huygens sources are virtual equivalent sources that capture the radiated electric and magnetic fields from another structure possibly in another EM.Cube computational module and bring them as a new source to excite your planar structure.&lt;br /&gt;
&lt;br /&gt;
=== Gap Sources ===&lt;br /&gt;
&lt;br /&gt;
A gap is an infinitesimally narrow discontinuity that is placed on the path of current flow on a feed line. In planar structures, feed lines are typically in the form of a microstrip, stripline, slotline or coplanar waveguide (CPW). You use rectangle strip objects to construct such feed lines. A gap source can be placed on any rectangle strip object on a PEC, PMC or conductive sheet trace. Depending on the type of the trace on which a gap source is placed, it will have a different physical interpretation.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PEC or conductive sheet trace can be regarded as a strip transmission line that carries electric currents along its length (local X direction). The characteristic impedance of the line is a function of its width (local Y direction). A gap source is placed somewhere along the length and across the width of such a rectangle strip object, thus creating an infinitesimally narrow gap at its location. In this case, the gap source represents an ideal voltage source in series with a lumped impedance that is connected across the gap to excite the strip transmission line. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the gap. The source pumps electric current into the line. If the voltage source is shorted (having a zero amplitude), then the gap acts like a series lumped element on the transmission line.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PMC trace can be regarded as a slot transmission line on an infinite PEC ground plane that carries a magnetic current along its length (local X direction). The characteristic impedance of the slot line is a function of its width (local Y direction). A slot gap source is placed somewhere along the length and across the width of the rectangle strip object on a PMC trace and creates an infinitesimally narrow gap at its location. In this case, the slot gap source represents an ideal current source with a shunt lumped admittance that is connected across the slot to excite the slot transmission line. When the admittance is zero, the gap acts like an ideal current filament, which creates electric fields across the slot, equivalent to a magnetic current flowing into the slot line. If the current source is open (having a zero amplitude), then the gap acts like a shunt (parallel) lumped element on the slot line. As you will see later, a coplanar waveguide (CPW) can be realized using two parallel slot lines with two aligned, collocated gap sources.&lt;br /&gt;
&lt;br /&gt;
To define a gap source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Gap Source Dialog by right clicking on the '''Gap Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' available in the project workspace. Select the desired host rectangle strip object. The box labeled '''Direction''' shows the direction or polarity of the new gap source on its host rectangle strip object. You have the option to select either the positive or negative direction for the source polarity.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the gap source from the start point of the rectangle strip feed line. The value of '''Offset''' by default is initially set to the center of the line. As you change the offset value, you can see the gap move on its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of a gap on a slot trace) and '''Phase''' in degrees.&lt;br /&gt;
* You can also change the default label as well as the default color of the gap source using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM47.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Gap Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Probe Sources ===&lt;br /&gt;
&lt;br /&gt;
Another way of exciting a planar structure is by placing a gap on the path of a vertical current on a PEC via. This represents a filament source, which is used to model coaxial probe excitation. A probe source can be placed only on a PEC via object. Most planar transmission lines are fed using SMA connectors. The outer conductor of the coaxial line is connected to the ground and its inner conductor is extended across the substrate layer and connected to a metallic line. EM.Cube's [[Planar Module]] models a coaxial probe as an infinitesimal gap discontinuity placed across a thin via, representing an ideal voltage source in series with a lumped impedance. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the via. The source pumps vertical electric current into the probe. If the voltage source is shorted (having a zero amplitude), then the gap acts like a shunt lumped element across the via.&lt;br /&gt;
&lt;br /&gt;
To define a probe source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Probe Source Dialog by right clicking on the '''Probe Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, in the dropdown list labeled '''Embedded Objects''', you will find a list of all the PEC via objects available in the project workspace. Select the desired host PEC via object. The box labeled '''Direction''' shows the direction or polarity of the new probe source on its host PEC via object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the probe source from the bottom of the via object. The value of '''Offset''' by default is initially set to the center of the via.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and '''Phase''' in degrees.&lt;br /&gt;
&lt;br /&gt;
Unlike gap sources, whose offset parameter determines their exact location on their host line, the offset parameter of a probe source is not relevant except for long host vias. In the case of a short via that is discretized using a single prismatic element across its host substrate layer, the probe gap is always placed at the middle of its height. Longer vias may have a mesh that consists of two or more stacked prismatic elements. In this case, the probe source's offset determines which prismatic element will host the probe gap discontinuity at its middle.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Probe Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Source Arrays ===&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects, the array object will also be listed as an eligible object for gap source placement. A gap source will then be placed on each element of the array. All the gap sources will have identical direction and offset. Similarly, if the project workspace contains an array of PEC via objects, the embedded array object will also be listed as an eligible object for probe source placement. A probe source will then be placed on each via object of the array. All the probe sources will have identical direction and offset.&lt;br /&gt;
&lt;br /&gt;
However, you can prescribe certain amplitude and/or phase distribution over the array of gap or probe sources. By default, all the gap or probe sources have identical amplitudes of 1V (or 1A for the slot case) and zero phase. The available amplitude distributions to choose from include '''Uniform''', '''Binomial''' and '''Chebyshev''' and '''Date File'''. In the Chebyshev case, you need to set a value for minimum side lobe level ('''SLL''') in dB. You can also define '''Phase Progression''' in degrees along all three principal axes. You can view the amplitude and phase of individual sources by right clicking on the top '''Sources''' item in the Navigation Tree and selecting '''Show Source Label''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM49.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining gap sources on an array of rectangle strip objects with a Chebyshev amplitude distribution.&lt;br /&gt;
&lt;br /&gt;
In the data file option, the complex amplitude are directly read in from a data file using a real - imaginary format. When this option is selected, you can either improvise the complex array weights or import them from an existing file. In the former case click the '''New Data File''' button. This opens up the Windows Notepad with default formatted data file that has a list of all the array element indices with default 1+j0 amplitudes for all of them. You can replace the default complex values with new one and save the Notepad data file, which brings you back to the Gap Source dialog. To import the array weights, click the '''Open Data File''' button, which opens the standard Windows Open dialog. You can then select the right data file from the one of your folders. It is important to note that the data file must have the correct format to be read by EM.Cube. For this reason, it is recommended that you first create a new data file with the right format using Notepad as described earlier and then save it for later use.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining gap source array weights using a data file.&lt;br /&gt;
&lt;br /&gt;
=== Defining Ports ===&lt;br /&gt;
&lt;br /&gt;
Ports are used in a planar structure to order and index the sources for calculation of circuit parameters such as scattering (S), impedance (Z) and admittance (Y) parameters. In EM.Cube's [[Planar Module]], you can use the following types of sources to define ports:&lt;br /&gt;
&lt;br /&gt;
* Gap Sources&lt;br /&gt;
* Probe Sources&lt;br /&gt;
* Active Lumped Elements&lt;br /&gt;
* De-Embedded Sources&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your planar structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree. Note that your project can have mixed gap and probes sources as well as active lumped element sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
'''You can define any number of ports equal to or less than the total number of sources in your project.''' The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50S by default. You can delete any port by selecting it from the Port List and clicking the '''Delete''' button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment and make sure that is what you intend. You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit''' button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM53.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edit Port dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Coupled Ports ===&lt;br /&gt;
&lt;br /&gt;
Sources can be coupled to each other to model coupled strip lines (CPS) on metal traces or coplanar waveguides (CPW) on slot traces. Similarly, probe sources may be coupled to each other. Coupling two or more sources does not change the way they excite a planar structure. It is intended only for the purpose of S parameter calculation. The feed lines or vias which host the coupled sources are usually parallel and aligned with one another and they are all grouped together as a single transmission line represented by a single port. This single &amp;amp;quot;coupled&amp;amp;quot; port then interacts with other coupled or uncoupled ports.&lt;br /&gt;
&lt;br /&gt;
You couple two or more sources using the '''Port Definition Dialog'''. To do so, you need to change the default port assignments. First, delete all the ports that are to be coupled from the Port List of the dialog. Then, define a new port by clicking the '''Add''' button of the dialog. This opens up the Add Port dialog, which consists of two tables: '''Available''' sources on the left and '''Associated''' sources on the right. A right arrow ('''--&amp;amp;gt;''') button and a left arrow ('''&amp;amp;lt;--''') button let you move the sources freely between these two tables. You will see in the &amp;amp;quot;Available&amp;amp;quot; table a list of all the sources that you deleted earlier. You may even see more available sources. Select all the sources that you want to couple and move them to the &amp;amp;quot;Associated&amp;amp;quot; table on the right. You can make multiple selections using the keyboard's '''Shift''' and '''Ctrl''' keys. Closing the Add Port dialog returns you to the Port Definition dialog, where you will now see the names of all the coupled sources next to the name of the newly added port.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is your responsibility to set up coupled ports and coupled transmission lines properly. For example, to excite the desirable odd mode of a coplanar waveguide (CPW), you need to create two rectangular slots parallel to and aligned with each other and place two gap sources on them with the same offsets and opposite polarities. To excite the even mode of the CPW, you use the same polarity for the two collocated gap sources. Whether you define a coupled port for the CPW or not, the right definition of sources will excite the proper mode. The couple ports are needed only for correct calculation of the port characteristics.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM51(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Coupling gap sources in the Port Definition dialog by associating more than one source with a single port.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Port Characteristics At Gap Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
A gap source on a metal trace and a probe source on a PEC via behave like a series voltage source with a prescribed strength (of 1V and zero phase by default) that creates a localized discontinuity on the path of electric current flow. At the end of a planar MoM simulation, the electric current passing through the voltage source is computed and integrated to find the total input current. From this one can calculate the input admittance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_W \hat{y} \cdot \mathbf{J_s} \, dy} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM54(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for gap sources on metal traces, where the line integration is performed across the width of the metal strip, and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_S \hat{z} \cdot \mathbf{J_p} \, ds} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM55.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for probe sources on PEC vias, where the surface integration is performed over the cross section of the via. On the other hand, a gap source on a slot trace behaves like a shunt current source with a prescribed strength (of 1A and zero phase by default) that creates a localized discontinuity on the path of magnetic current flow. At the end of a planar MoM simulation, the magnetic current passing through the current source is computed and integrated to find the total input voltage across the current filament. From this one can calculate the input impedance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{in} = \frac{V_{in}}{I_s} = \frac{\int_W \hat{y} \cdot \mathbf{M_s} \,dy} {V_s} = \frac{\int_W E_y \, dy}{V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM56.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the input admittance or impedance defined at a gap source port is referenced to the two terminals of the voltage source connected across the gap as shown in the figure below. This is different than the input admittance or impedance that one may normally define for a microstrip port, which is referenced to the substrate's ground.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM59(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Definition of different input impedances at the gap location.&lt;br /&gt;
&lt;br /&gt;
To resolve this problem, you can place a gap source on a metal strip line by a distance of a quarter guide wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/4) away from its open end. Note that (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; = 2p/ß), where ß is the propagation constant of the metallic transmission line. As show in the figure below, the impedance looking into an open quarter-wave line segment is zero, which effectively shorts the gap source to the planar structure's ground. The gap admittance or impedance in this case is identical to the input admittance or impedance of the planar structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM60(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing a gap source a quarter guide wavelength away from the open end of a feed line to effectively short it to the ground at the gap location.&lt;br /&gt;
&lt;br /&gt;
The same principle applies to the gap sources on slot traces. The figure below shows how to place two gap sources with opposite polarities a quarter guide wavelength away from their shorted ends to calculate the correct input impedance of the CPW line looking to the left of the gap sources. Note that in this case, you deal with shunt filament current sources across the two slot lines and that the slot line carry magnetic currents. The end of the slot lines look open to the magnetic currents, but in reality they short the electric field. The quarter-wave CPW line acts as an open circuit to the current sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM61(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing two oppositely polarized gap sources a quarter guide wavelength away from the short end of a CPW line to effectively create an open circuit beyond the gap location.&lt;br /&gt;
&lt;br /&gt;
The case of a probe source placed on a PEC via that is connected to a ground plane is more straightforward. In this case, the probe source's gap discontinuity is placed at the middle plane of the PEC via. If the via is short, it is meshed using a single prismatic element, which is connected to the ground from one side and to the metal strip line from the other. Therefore, the probe admittance or impedance is equal to that of the structure at a reference plane that passed through the host via.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM62(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Input impedance of a probe source on a PEC via connected to a ground plane.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Multiport Structures Using Linear Superposition ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure has two or more sources, but you have not defined any ports, all the lumped sources excite the structure locally and contribute to the excitation vector needed for the MoM solution of the problem. However, when you assign N ports to the sources, then you have a multiport structure that is characterized by an N×N admittance matrix (instead of a single Y&amp;lt;sub&amp;gt;in&amp;lt;/sub&amp;gt; parameter), or an N×N impedance matrix, or an N×N scattering matrix. To calculate these matrices, EM.Cube uses a binary excitation scheme in conjunction with the principle of linear superposition. In this binary scheme, the structure is analyzed N times. Each time one of the N port-assigned sources is excited, and all the other port-assigned sources are turned off.&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on metal traces and probe sources on PEC vias, turning a source off means shorting a series voltage source. The electric currents passing through these sources are then found at each port location, and the admittance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_m = \sum_{n=1}^N Y_{mn} V_n, \quad \quad Y_{mn} = \frac{I_m}{V_n} \bigg|_{V_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM57.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on slot traces, turning a source off means opening a shunt filament current source. The magnetic currents passing through the source locations, and thus the voltages across them, are then found at all ports, and the impedance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_m = \sum_{n=1}^N Z_{mn} I_n, \quad \quad Z_{mn} = \frac{V_m}{I_n} \bigg|_{I_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM58.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The N solution vectors that are generated through the N binary excitation analyses are finally superposed to produce the actual solution to the problem. However, in this process, EM.Cube also calculates all the port characteristics. Keep in mind that the impedance (Z) and admittance (Y) matrices are inverse of each other. From the impedance matrix, the scattering matrix is calculated using the following relation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM63.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Lumped Elements In Planar MoM ===&lt;br /&gt;
&lt;br /&gt;
Lumped elements are components, devices, or circuits whose overall dimensions are very small compared to the wavelength. As a result, they are considered to be dimensionless compared to the dimensions of a mesh cell. In fact, a lumped element is equivalent to an infinitesimally narrow gap that is placed in the path of current flow, across which the device's governing equations are enforced. Using Kirkhoff's laws, these device equations normally establish a relationship between the currents and voltages across the device or circuit. Crossing the bridge to Maxwell's domain, the device equations must now be cast into a from o boundary conditions that relate the electric and magnetic currents and fields. EM.Cube's [[Planar Module]] allows you to define passive circuit elements: '''Resistors'''(R), C'''apacitors'''(C), I'''nductors'''(L), and series and parallel combinations of them as shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image106.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A series-parallel RLC combination that can be modeled as a lumped circuit in [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Lumped elements are conceptualized in a similar way as gap or probe sources. They are indeed considered as infinitesimally narrow gaps placed in the path of current flow, across which Ohm's law is enforced. If a lumped element is placed on a PEC or conductive sheet trace, it is treated as a series connection. The boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; &lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{x}\cdot \mathbf{E_{gap}} \, dx = Z_L \int_W \hat{y} \cdot \mathbf{J_s} \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM67.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Z&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total impedance across the two terminals of the series element. If the lumped element is placed on a slot trace, it is treated as a shunt connection that creates a current discontinuity. In this case, the magnetic current across the gap is continuous, and the boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_{gap} = Y_L V_{in} \quad\quad \int_{\delta} J_Y^{fila} \, dx = Y_L \int_W E_y \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \int_{\delta} \hat{x}\cdot\hat{n} \times (\mathbf{H_{gap}^+ - H_{gap}^-}) \, dx = Y_L \int_W \hat{y}\cdot\mathbf{M_s} \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM70(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Y&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total admittance across the two terminals of the shunt element. If a lumped element is placed on a PEC via that is connected to a metal strip from one side and to a PEC ground plane from the other end, it is indeed as a series connection across a gap discontinuity at the middle plane of the via. If the via is short, it is meshed using a single prismatic element. In that case, the lumped element in effect shunts the metal strip to the ground. The boundary condition at the location of the lumped element across the PEC via is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{z}\cdot \mathbf{E_{gap}} \, dz = Z_L \int_S \hat{z} \cdot \mathbf{J_p} \, ds&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM68.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM69.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Using a shunt lumped element on a PEC via to terminate a metallic strip line.&lt;br /&gt;
&lt;br /&gt;
=== Defining Lumped Circuits ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM64.png|thumb|400px|Lumped Element dialog]]&lt;br /&gt;
To define a lumped RLC circuit in your planar structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Lumped Element Dialog by right clicking on the '''Lumped Elements''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Gap Topology''' section of the dialog, select one of the two options: '''Gap on Line''' and '''Gap on Via'''.&lt;br /&gt;
* In the '''Lumped Circuit Type''' section of the dialog, select one of the two options: '''Passive RLC''' and '''Active with Gap Source'''.&lt;br /&gt;
* Depending on your choice of gap topology, in the '''Lumped Circuit Location''' section of the dialog, you will find either a list of all the '''Rectangle Strip Objects''' or a list of all the '''PEC Via Objects''' available in the project workspace. Select the desired rectangle strip or embedded PEC via object.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the rectangle strip line or from the bottom of the via object, whichever the case. The value of '''Offset''' by default is initially set to the center of the line or via.&lt;br /&gt;
* In the '''Load Properties''' section, the series and shunt resistance values Rs and Rp are specified in Ohms, the series and shunt inductance values Ls and Lp are specified in nH (nanohenry), and the series and shunt capacitance values Cs and Cp are specified in pF (picofarad). Only the checked elements are taken into account in the total impedance calculation. By default, only the series resistor is checked with a value of 50S, and all other circuit elements are initially greyed out.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] allows you to define a voltage source in series with a series-parallel RLC combination and place them across the gap. This is called an active lumped element. If you choose the '''Active with Gap Source''' option of the '''Lumped Circuit Type''' section of the dialog, the right section of the dialog entitled '''Source Properties''' becomes enabled, where you can you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of PMC traces) and the '''Phase''' in degrees. Also, the box labeled '''Direction''' becomes relevant in this case which contains a gap source. Otherwise, a passive RLC circuit does not have polarity.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects or PEC via objects, the array object will also be listed as an eligible object for lumped element placement. A lumped element will then be placed on each element of the array. All the lumped elements will have identical direction, offset, resistance, inductance and capacitance values. If you define an active lumped element, you can prescribe certain amplitude and/or phase distribution to the gap sources just like in the case of gap and probe sources. The available amplitude distributions include '''Uniform''', '''Binomial'''''', Chebyshev''' and '''Data File'''.&lt;br /&gt;
&lt;br /&gt;
{{Note|The impedance of the lumped circuit is calculated at the operating frequency of the project using the specified R, L and C values. As you change the frequency, the value of the impedance that is passed to the Planar MoM engine will change.}}&lt;br /&gt;
&lt;br /&gt;
=== Calculating Scattering Parameters Using Prony's Method ===&lt;br /&gt;
&lt;br /&gt;
The calculation of the scattering (S) parameters is usually an important objective of modeling planar structures especially for planar circuits like filters, couplers, etc. As you saw earlier, you can use lumped sources like gaps and probes and even active lumped elements to calculate the circuit characteristics of planar structures. The admittance / impedance calculations based on the gap voltages and currents are accurate at RF and lower microwave frequencies or when the port transmission lines are narrow. In such cases, the electric or magnetic current distributions across the width of the port line are usually smooth, and quite uniform current or voltage profiles can easily be realized. At higher frequencies, however, a more robust method is needed for calculating the port parameters.&lt;br /&gt;
&lt;br /&gt;
One can calculate the scattering parameters of a planar structure directly by analyzing the current distribution patterns on the port transmission lines. The discontinuity at the end of a port line typically gives rise to a standing wave pattern that can clearly be discerned in the line's current distribution. From the location of the current minima and maxima and their relative levels, one can determine the reflection coefficient at the discontinuity, i.e. the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter. A more robust technique is Prony’s method, which is used for exponential approximation of functions. A complex function f(x) can be expanded as a sum of complex exponentials in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f(x) \approx \sum_{n=1}^N c_i e^{-j\gamma_i x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM73.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are complex coefficients and &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are, in general, complex exponents. From the physics of transmission lines, we know that lossless lines may support one or more propagating modes with pure real propagation constants (real &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents). Moreover, line discontinuities generate evanescent modes with pure imaginary propagation constants (imaginary &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents) that decay along the line as you move away from the location of such discontinuities.&lt;br /&gt;
&lt;br /&gt;
In practical planar structures for which you want to calculate the scattering parameters, each port line normally supports one, and only one, dominant propagating mode. Multi-mode transmission lines are seldom used for practical RF and microwave applications. Nonetheless, each port line carries a superposition of incident and reflected dominant-mode propagating signals. An incident signal, by convention, is one that propagates along the line towards the discontinuity, where the phase reference plane is usually established. A reflected signal is one that propagates away from the port plane. Prony's method can be used to extract the incident and reflected propagating and evanescent exponential waves from the standing wave data. From a knowledge of the amplitudes (expansion coefficients) of the incident and reflected dominant propagating modes at all ports, the scattering matrix of the multi-port structure is then calculated. In Prony's method, the quality of the S parameter extraction results depends on the quality of the current samples and whether the port lines exhibit a dominant single-mode behavior. Clean current samples can be drawn in a region far from sources or discontinuities, typically a quarter wavelength away from the two ends of a feed line.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM71.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Minimum and maximum current locations of the standing wave pattern on a microstrip line feeding a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== De-Embedded Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM74.png|thumb|300px|The [[Planar Module]]'s De-embedded Source dialog]]&lt;br /&gt;
EM.Cube's [[Planar Module]] provides de-embedded sources for the exclusive purpose of accurate S parameter calculation based on Prony's method. A de-embedded source is indeed a gap source that is placed close to an open end of a feed line. The other end of the line is typically connected to a planar structure of interest. Like gap sources, de-embedded sources can be placed only on rectangle strip objects. '''During mesh generation, EM.Cube automatically extends the length of a port line that hosts a de-embedded source to about two effective wavelengths.''' This is done to provide enough length for formation of a clean standing wave current pattern. The effective wavelength of a transmission line for length extension purposes is calculated in a similar manner as for the planar mesh resolution. It is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where &amp;amp;epsilon;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivities of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivities of the two substrate layers just above and below the metallic trace. The host port line must always be open from one end to allow for its length extension. You have to make sure that there are no objects standing on the way of the extended port line to avoid any unwanted overlaps.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM72.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The mesh of a patch antenna excited with a de-embedded source. Note the feed line extension in the mesh view.&lt;br /&gt;
&lt;br /&gt;
You can define de-embedded source on metal (PEC), slot (PMC) and conductive sheet traces. To define a de-embedded source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the De-Embedded Source Dialog by right clicking on the '''De-Embedded Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' or arrays of such objects that are available in the project workspace. The box labeled '''Direction''' shows the direction the phase reference plane for S parameter calculation and determines which end of the host line to place the source at. You have the option to select either the positive or negative direction to bounce the source between the two ends of the line.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the phase reference plane from the end of the feed line object. The value of '''Offset''' by default is initially set to zero, meaning that the S parameters are calculated at the plane passing through the end of the feed line. Type in a new offset value or use the spin buttons to move the source arrow along the line away from its end. As you change the offset value, you can see the source arrow move along its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of slot traces) and '''Phase''' in degrees.&lt;br /&gt;
* In the '''Prony Mode Extraction''' section, you can specify the '''Number of Prony Modes''', which refers to the number of positive-negative exponential pairs that are extracted from the standing wave current data. The default value is 1 and represents the dominant quasi-TEM incident/reflected signal pair.&lt;br /&gt;
&lt;br /&gt;
In a planar project with de-embedded sources, if you do not define any ports, the feed lines will simply be extended, and the exciting gap sources will be placed at the open ends of these extended lines. Note that if you define a de-embedded source along with a port definition in your project, then all the other port-assigned sources of your project must be of the same de-embedded type. You can define de-embedded sources for coplanar waveguides (CPW) on slot traces. To do so, you need to place two collocated, de-embedded sources with identical offsets (same phase reference plane), same source amplitudes but 180° phase difference. Note that for CPW structures, setting the number of Prony modes to 2 can get you more accurate results. In this case, the two extracted Prony modes will include the incident and reflected, odd and even, propagating modes of the CPW.&lt;br /&gt;
&lt;br /&gt;
=== Using the Line Calculator ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides a simple calculator for analyzing planar transmission lines. It is based on the frequency domain finite difference (FDFD) technique. You can find the characteristic impedance, effective permittivity and guide wavelength of a TEM or quasi-TEM transmission line defined based on your project's background structure. Therefore, any arbitrary stack-up configuration with any number of substrate layers can be considered.&lt;br /&gt;
&lt;br /&gt;
To access the Line Calculator, first you have to select a metal (PEC) trace or a slot (PMC) trace in the Navigation Tree. Right click on the name of a trace and select '''Line Calc...''' from the contextual menu to open the Line Calc Dialog. You can analyze a metal strip line on any PEC trace or a coplanar waveguide (coupled slot lines) on any PMC trace. The 2D line structure to be analyzed by the FDFD method consists of the background structure of your project with a metal strip or CPW located at the Z-plane of your selected trace. Depending on whether your open the Line Calc dialog from a metal trace or a slot trace, a picture of a microstrip line or a CPW line appear at the top of the dialog, respectively. In the former case, you have to specify '''Strip Width''' in the project units. In the latter case, you have to specify '''Slot Width''', too. Keep in mind that the strip width is equal to the spacing between the two slot lines minus the width of individual slot lines. Clicking the Analyze button of the dialog evokes the FDTD simulator, and calculated results are reflected in the boxes labeled '''Zo''', '''Effective Permittivity''' and '''Guide Wavelength'''.&lt;br /&gt;
&lt;br /&gt;
When your background structure involves a slot (PMC) trace, then there is an infinite PEC ground plane at the plane of the slot trace. In that case, when you analyze a strip line on a metal trace, you must keep in mind that your stack-up configuration will be truncated by the slot's ground plane just for purpose of Z&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; calculation. A typical case of this type is a slot-coupled patch antenna fed by a microstrip line underneath the slot. From the point of view of the Line Calculator, the microstrip line lies on a substrate layer that is backed by the slot's ground plane and it does not see the substrate layer lying above the slot plane.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM75.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Analyzing a metal strip line using the line calculator.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM76.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Analyzing a coplanar waveguide using the line calculator.&lt;br /&gt;
&lt;br /&gt;
=== Short Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM110.png|thumb|250px|Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A short dipole is the simplest type of radiator, which consists of a short current element of length &amp;amp;amp;DELTA;l, aligned along a unit vector û and carrying a current of I Amperes. The product I&amp;amp;amp;DELTA;l is often called the dipole moment and gives a measure of the radiator's strength. A short dipole in the free space generates an azimuth-symmetric, almost omni-directional, far field. However, the radiated fields of a short dipole above a layered planar background structure are greatly altered by the presence of the substrate layers. Note that the electric and magnetic field radiated by a short dipole in the presence of a layered background structure are indeed nothing but the dyadic Green's functions of that structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{EJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{HJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM109(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To define a short dipole source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Short Dipoles''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' The Short Dipole Dialog opens up.&lt;br /&gt;
* In the section titled '''Source Location''', enter values for the X, Y and Z coordinates of the dipole's center. By default, a new dipole is placed at the origin of coordinates. As you change the coordinates using the spin buttons, you will see the dipole move in the project workspace.&lt;br /&gt;
* In the section titled '''Source Properties''', you can change the values of the dipole's '''Amplitude''' (in A), '''Phase''' (in degrees) and '''Length''' in the project's length units. A new dipole, by default, is Z-directed. You can change its orientation by entering the components of its unit vector in the three boxes labeled '''Direction Unit Vector'''.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM77.png|thumb|300px|[[Planar Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure with an incident plane wave to explore its scattering characteristics such as radar cross section (RCS). Exciting an antenna structure with an incident plane wave is equivalent to operating it in the &amp;amp;quot;receive&amp;amp;quot; mode. Plane wave excitation in the [[Planar Module]] is particularly useful for calculation of reflection and transmission coefficients of periodic surfaces. Note that the incident plane wave in your project bounces off the layered background structure and part of it also penetrates the substrate layers. The total incident field that is used to calculate the excitation vector of the MoM linear system is a superposition of the incident, reflected and transmitted plane waves at various regions of your planar structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{inc}(r)} = E_0 (\mathbf{\hat{e}_1} e^{ -jk_0 \mathbf{\hat{k}_1\cdot r} } + &lt;br /&gt;
R \mathbf{\hat{e}_2} e^{ -jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{inc}(r)} = \frac{E_0}{\eta_0} ( \mathbf{\hat{k}_1 \times \hat{e}_1} e^{-jk_0 \mathbf{\hat{k}_1 \cdot r} } + &lt;br /&gt;
R \mathbf{\hat{k}_2 \times \hat{e}_2} e^{-jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi&amp;lt;/math&amp;gt; is the characteristic impedance of the free space, '''k&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the unit propagation vectors of the incident plane wave and the wave reflected off the topmost substrate layer, respectively, and '''ê&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''ê&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the polarization vectors corresponding to the electric field of those waves. R is the reflection coefficient at the interface between the top half-space and the topmost substrate layer and has different values for the TM and TE polarizations.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the theta and phi angles of the propagation vector in the spherical coordinate system. The default values are &amp;amp;theta; = 180° and &amp;amp;phi; = 0°, representing a normally incident plane wave propagating along the -Z direction with a +X-polarized electric field vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization cases, the magnetic and electric fields are parallel to the XY plane, respectively. The left-hand (LCP) and right-hand (RCP) circular polarization cases are restricted to normal incidences only (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the '''Amplitude''' of the incident electric field in V/m and '''Phase''' in degrees. The default field Amplitude is 1 V/m, with a zero Phase.&lt;br /&gt;
* The direction of the Plane Wave is determined by the incident '''Theta''' and '''Phi''' angles expressed in the spherical coordinate system in degrees. You have to choose the '''Polarization''' of the plane wave from the four options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''and '''RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''. The components of the unit propagation vector are shown based on your choice of the angles of incidence. The components of the normalized E- and H-field vectors are also displayed based on your choice of polarization.&lt;br /&gt;
&lt;br /&gt;
== Running Planar MoM Simulations ==&lt;br /&gt;
&lt;br /&gt;
The first step of planning a planar MoM simulation is defining your planar structure. This consists of the background structure plus all the finite-sized metal and slot trace objects and possibly embedded metal or dielectric objects that are interspersed among the substrate layers. The background stack-up is defined in the Layer Stack-up dialog, which automatically opens up as soon as you enter the [[Planar Module]]. The metal and slot traces and embedded object sets are listed in the Navigation Tree, which also shows all the geometrical (CAD) objects you draw in the project workspace under each object group at different Z-planes.&lt;br /&gt;
&lt;br /&gt;
The next step is to decide on the excitation scheme. If your planar structure has one or more ports and you seek to calculate its port characteristics, then you have to choose one of the lumped source types or a de-embedded source. If you are interested in the scattering characteristics of your planar structure, then you must define a plane wave source. Before you can run a planar MoM simulation, you also need to decide on the project's observables. These are the simulation data that you expect EM.Cube to generate as the outcome of the numerical simulation. EM.Cube's [[Planar Module]] offers the following observables:&lt;br /&gt;
&lt;br /&gt;
* Current Distribution&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Far Fields (Radiation Patterns or Radar Cross Section)&lt;br /&gt;
* Huygens Surfaces&lt;br /&gt;
* Port Characteristics&lt;br /&gt;
* Periodic Characteristics&lt;br /&gt;
&lt;br /&gt;
If you run a simulation without having defined any observables, no data will be generated at the end of the simulation. Some observables require a certain type of excitation source. For example, port characteristics will be calculated only if the project contains a port definition, which in turn requires the existence of at least one gap or probe or de-embedded source. The periodic characteristics (reflection and transmission coefficients) are calculated only if the structure has a periodic domain and excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Simulation Modes ===&lt;br /&gt;
&lt;br /&gt;
The simplest simulation type in EM.Cube is an analysis. In this mode, the planar structure in your project workspace is meshed at the center frequency of the project. EM.Cube generates an input file at this single frequency, and the Planar MoM simulation engine is run once. Upon completion of the planar MoM simulation, a number of data files are generated depending on the observables you have defined in your project. An analysis is a single-run simulation.&lt;br /&gt;
&lt;br /&gt;
EM.Cube offers a number of multi-run simulation modes. In such cases, the Planar MoM simulation engine is run multiple times. At each engine run, certain parameters are varied and a collection of simulation data are generated. At the end of a multi-run simulation, you can graph the simulation results in EM.Grid or you can animate the 3D simulation data from the Navigation Tree. For example, in a frequency sweep, the frequency of the project is varied over its specified bandwidth. Port characteristics are usually plotted vs. frequency, representing your planar structure's frequency response. In an angular sweep, the &amp;amp;theta; or &amp;amp;phi; angle of incidence of a plane wave source is varied over their respective ranges. EM.Cube's [[Planar Module]] currently provides the following types of multi-run simulation modes:&lt;br /&gt;
&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
* Angular Sweep&lt;br /&gt;
* R/T Macromodel&lt;br /&gt;
* Huygens Sweep&lt;br /&gt;
* [[Optimization]]&lt;br /&gt;
* HDMR&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting a simulation mode in [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
To run a planar MoM analysis of your project structure, open the Run Simulation Dialog by clicking the '''Run''' [[File:run_icon.png]] button on the '''Simulate Toolbar''' or select '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt;''' '''Run''' or use the keyboard shortcut '''Ctrl+R'''. The '''Analysis''' option of the '''Simulation Mode''' dropdown list is selected by default. Once you click the '''Run''' button, the simulation starts. A new window, called the '''Output Window''', opens up that reports the different stages of simulation and the percentage of the tasks completed at any time. After the simulation is successfully completed, a message pops up and reports the end of simulation. In certain cases like calculating scattering parameters of a circuit or reflection / transmission characteristics of a periodic surface, some results are also reported in the Output Window. At the end of a simulation, you need to click the '''Close''' button of the Output Window to return to the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM78.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Stages Of A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar MoM simulation engine uses a particular formulation of the method of moments called mixed potential integral equation (MPIE). Due to high-order singularities, the dyadic Green's functions for electric fields generated by electric currents as well as the dyadic Green's functions for magnetic fields generated by magnetic currents have very slow convergence behaviors. Instead of using these slowly converging dyadic Green's function, the MPIE formulation uses vector and scalar potentials. These include vector electric potential '''A(r)''', scalar electric potential K&amp;lt;sup&amp;gt;&amp;amp;Phi;&amp;lt;/sup&amp;gt;'''(r)''', vector magnetic potential '''F(r)''' and scalar magnetic potential K&amp;lt;sup&amp;gt;&amp;amp;Psi;&amp;lt;/sup&amp;gt;'''(r)'''. These potentials have singularities of lower orders. As a result, they coverage relatively faster. The speed of their convergence is further increased drastically using special singularity extraction techniques.&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation consists of two major stages: matrix fill and linear system inversion. In the first stage, the moment matrix and excitation vector are calculated. In the second stage, the MoM system of linear equations is inverted using one of the several available matrix solvers to find the unknown coefficients of all the basis functions. The unknown electric and magnetic currents are linear superpositions of all these elementary solutions. These can be visualized in EM.Cube using the current distribution observables. Having determined all the electric and magnetic currents in your planar structure, EM.Cube can then calculate the near fields on prescribed planes. These are introduced as field sensor observables. The near-zone electric and magnetic fields are calculated using a spectral domain formulation of the dyadic Green's functions. Finally the far fields of the planar structure are calculated in the spherical coordinate system. These calculations are performed using the asymptotic form of the dyadic Green's functions using the &amp;amp;quot;stationary phase method&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Setting Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation involves a number of numerical parameters that take preset default values unless you change them. You can access these parameters and change their values by clicking the '''Settings''' button next to the '''Select Engine''' dropdown list in the [[Planar Module]]'s Simulation Run dialog. In most cases, you do not need to open this dialog and you can leave all the default numerical parameter values intact. However, it is useful to familiarize yourself with these parameters, as they may affect the accuracy of your numerical results.&lt;br /&gt;
&lt;br /&gt;
The Planar MoM Engine Settings Dialog is organized in a number of sections. Here we describe some of the numerical parameters. The &amp;amp;quot;'''Matrix Fill'''&amp;amp;quot; section of the dialog deals with the operations involving the dyadic Green's functions. You can set a value for the '''Convergence Rate for Integration''', which is 1E-5 by default. This is used for the convergence test of all the infinite integrals in the calculation of the Hankel transform of spectral-domain dyadic Green's functions. When the substrate is lossy, the surface wave poles are captured in the complex integration plane using contour deformation. You can change the maximum number of iterations involved in this deformed contour integration, whose default value is 20. When the substrate is very thin with respect to the wavelength, the dyadic Green's functions exhibit numerical instability. Additional singularity extraction measures are taken to avoid numerical instability but at the expense of increased computation time. By default, a thin substrate layer is defined to a have a thickness less than 0.01&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;, where &amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective wavelength. You can modify the definition of &amp;amp;quot;Thin Substrate&amp;amp;quot; by entering a value for '''Thin Substrate Threshold''' different than the default 0.01. The parameter '''Max Coupling Range''' determines the distance threshold in wavelength between the observation and source points after which the Green's interactions are neglected. This distance by default is set to 1,000 wavelengths. For electrically small structures, the phase variation across the structure may be negligible. In such cases, a fast quasi-static analysis can be carried out. You can set this threshold in wavelengths in the box labeled '''Max Dimensions for Quasi-Static Analysis'''.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Spectral Domain Integration&amp;amp;quot; section of the dialog, you can set a value to '''Max Spectral Radius in k0''', which has a default value of 30. This means that the infinite spectral-domain integrals in the spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; are pre-calculated and tabulated up to a limit of 30k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant. These integrals may converge much faster based on the specified Convergence Rate for Integration described earlier. However, in certain cases involving highly oscillatory integrands, much larger integration limits like 100k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; might be needed to warrant adequate convergence. For spectral-domain integration along the real k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; axis, the interval [0, Nk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;] is subdivided into a large number of sub-intervals, within each an 8-point Gauss-Legendre quadrature is applied. The next parameter, '''No. Radial Integration Divisions per k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;''', determines how small these intervals should be. By default, 2 divisions are used for the interval [0, k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;]. In other words, the length of each integration sub-interval is k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/2. You can increase the resolution of integration by increasing this value above 2. Finally, instead of 2D Cartesian integration in the spectral domain, a polar integration is performed. You can set the '''No. of Angular Integration Points''', which has a default value of 100.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM79.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Linear System Solvers ===&lt;br /&gt;
&lt;br /&gt;
After the MoM impedance matrix '''[Z]''' (not to be confused with the impedance parameters) and excitation vector '''[V]''' have been computed through the matrix fill process, the planar MoM simulation engine is ready to solve the system of linear equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[Z]}_{N\times N} \cdot \mathbf{[I]}_{N\times 1} = \mathbf{[V]}_{N\times 1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM81.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''[I]''' is the solution vector, which contains the unknown amplitudes of all the basis functions that represent the unknown electric and magnetic currents of finite extents in your planar structure. In the above equation, N is the dimension of the linear system and equal to the total number of basis functions in the planar mesh. EM.Cube's linear solvers compute the solution vector'''[I]''' of the above system. You can instruct EM.Cube to write the MoM matrix and excitation and solution vectors into output data files for your examination. To do so, check the box labeled &amp;amp;quot;'''Output MoM Matrix and Vectors'''&amp;amp;quot; in the Matrix Fill section of the Planar MoM Engine Settings dialog. These are written into three files called mom.dat1, exc.dat1 and soln.dat1, respectively.&lt;br /&gt;
&lt;br /&gt;
There are a large number of numerical methods for solving systems of linear equations. These methods are generally divided into two groups: direct solvers and iterative solvers. Iterative solvers are usually based on matrix-vector multiplications. Direct solvers typically work faster for matrices of smal to medium size (N&amp;amp;lt;3,000). EM.Cube's [[Planar Module]] offers five linear solvers:&lt;br /&gt;
&lt;br /&gt;
# LU Decomposition Method&lt;br /&gt;
# Biconjugate Gradient Method (BiCG)&lt;br /&gt;
# Preconditioned Stabilized Biconjugate Gradient Method (BCG-STAB)&lt;br /&gt;
# Generalized Minimal Residual Method (GMRES)&lt;br /&gt;
# Transpose-Free Quasi-Minimum Residual Method (TFQMR)&lt;br /&gt;
&lt;br /&gt;
Of the above list, LU is a direct solver, while the rest are iterative solvers. BiCG is a relatively fast iterative solver, but it works only for symmetric matrices. You cannot use BiCG for periodic structures or planar structures that contain both metal and slot traces at different planes, as their MoM matrices are not symmetric. The three solvers BCG-STAB, GMRES and TtFQMR work well for both symmetric and asymmetric matrices and they also belong to a class of solvers called '''Krylov Sub-space Methods'''. In particular, the GMRES method always provides guaranteed unconditional convergence.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, provides a &amp;amp;quot;'''Automatic'''&amp;amp;quot; solver option that picks the best method based on the settings and size of the numerical problem. For linear systems with a size less than N = 3,000, the LU solver is used. For larger systems, BiCG is used when dealing with symmetric matrices, and GMRES is used for asymmetric matrices. If the size of the linear system exceeds N = 15,000, the sparse version of the iterative solvers is used, utilizing a row-indexed sparse storage scheme. You can override the automatic solver option and manually set you own solver type. This is done using the '''Solver Type''' dropdown list in the &amp;amp;quot;'''Linear System Solver'''&amp;amp;quot; section of the Planar MoM Engine Settings dialog. There are also a number of other parameters related to the solvers. The default value of '''Tolerance of Iterative Solver''' is 1E-3, which can be increased for more ill-conditioned systems. The maximum number of iterations is usually expressed as a multiple of the systems size. The default value of '''Max No. of Solver Iterations / System Size''' is 3. For extremely large systems, sparse versions of iterative solvers are used. In this case, the elements of the matrix are thresholded with respect to the larges element. The default value of '''Threshold for Sparse Solver''' is 1E-6, meaning that all the matrix elements whose magnitude is less than 1E-6 times the large matrix elements are set equal to zero. There are two more parameters that are related to the Automatic Solver option. These are &amp;amp;quot;''' User Iterative Solver When System Size &amp;amp;gt;'''&amp;amp;quot; with a default value of 3,000 and &amp;amp;quot;''' Use SParse Storage When System Size &amp;amp;gt;''' &amp;amp;quot; with a default value of 15,000. In other words, you control the automatic solver when to switch between direct and iterative solvers and when to switch to the sparse version of iterative solvers.&lt;br /&gt;
&lt;br /&gt;
If your computer has an Intel CPU, then EM.Cube offers special versions of all the above linear solvers that have been optimized for Intel CPU platforms. These optimal solvers usually work 2-3 time faster than their generic counterparts. When you install EM.Cube, the option to use Intel-optimized solvers is already enabled. However, you can disable this option (e.g. if your computer has a non-Intel CPU). To do that, open the EM.Cube's Preferences Dialog from '''Menu &amp;amp;gt; Edit &amp;amp;gt; Preferences''' or using the keyboard shortcut '''Ctrl+H'''. Select the Advanced tab of the dialog and uncheck the box labeled &amp;amp;quot;''' Use Optimized Solvers for Intel CPU'''&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM82.png]]&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
Electric and magnetic currents are the fundamental output data of a planar MoM simulation. After the numerical solution of the MoM linear system, they are found using the solution vector '''[I]''' and the definitions of the electric and magnetic vectorial basis functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{[I]}_{N\times 1} = &lt;br /&gt;
\begin{bmatrix} I^{(J)} \\ \\ V^{(M)} \end{bmatrix} \quad \Rightarrow \quad&lt;br /&gt;
&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\mathbf{J(r)} = \sum_{n=1}^N I_n^{(J)} \mathbf{f_n^{(J)} (r)} \\&lt;br /&gt;
\\&lt;br /&gt;
\mathbf{M(r)} = \sum_{k=1}^K V_k^{(M)} \mathbf{f_k^{(M)} (r)}&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that currents are complex vector quantities. Each electric or magnetic current has three X, Y and Z components, and each complex component has a magnitude and phase. You can visualize the surface electric currents on metal (PEC) and conductive sheet traces, surface magnetic currents on slot (PMC) traces and vertical volume currents on the PEV vias and embedded dielectric objects. 3D color-coded intensity plots of electric and magnetic current distributions are visualized in the project workspace, superimposed on the surface of physical objects.&lt;br /&gt;
&lt;br /&gt;
In order to view the current distributions, you must first define them as observables before running the planar MoM simulation. To do that, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. At the top of the dialog and in the section titled '''Active Trace / Set''', you can select a trace or embedded object set where you want to observe the current distribution. You can also select the current map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for current amplitude and phase, while the latter generates a 3D vector plot.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM84.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Current Distribution dialog.&lt;br /&gt;
&lt;br /&gt;
Once you close the current distribution dialog, the label of the selected trace or object set is added under the '''Current Distributions''' node of the Navigation Tree. &lt;br /&gt;
&lt;br /&gt;
{{Note|You have to define a separate current distribution observable for each individual trace or embedded object set.}}&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the current distribution nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''J''') and magnetic ('''M''') currents as well as the total electric and magnetic currents defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{J_{tot}} | = \sqrt{|J_x|^2 + |J_y|^2 + |J_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{M_{tot}} | = \sqrt{|M_x|^2 + |M_y|^2 + |M_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can click on any current plot to visualize it in the project workspace. A legend box at the upper right corner of the screen shows the color map scale as well as the minimum, maximum, mean and standard deviation of the current data and its units. To exit the 3D plot view and return to EM.Cube's normal view, hit the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM85(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The current distribution map of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM86(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Vectorial (cone) visualization of the current distribution on a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
Once all the current distributions are known in a planar structure, the electric and magnetic fields can be calculated everywhere in that structure using the dyadic Greens's functions of the background structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{EJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{EM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{HJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{HM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM92(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above equations can be cast into the spectral domain as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{EJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{EM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{HJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{HM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM93(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Calculation of the near-zone fields (fields at the vicinity of the unknown currents) is done at the post-processing stage and in a Cartesian coordinate systems. These calculations involve doubly infinite spectral-domain integrals, which are computed numerically. As was mentioned earlier, EM.Cube's planar MoM engine rather uses a polar integration scheme, where the radial spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; is integrated over the interval [0, Mk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;], M being a large enough number to represent infinity, and the angular spectral variable t is integrated over the interval [0, 2&amp;amp;pi;]. You also saw some of the numerical parameters related to this spectral-domain integration scheme.&lt;br /&gt;
&lt;br /&gt;
{{Note|When the observation plane is placed very close to the radiating J and M currents, the Green's functions exhibit singularities, which translate to very slow convergence or divergence of the integrals. You need to be careful to place field sensors at adequate distances from these radiating sources.}}&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|300px|[[Planar Module]]'s Field Sensor dialog]]&lt;br /&gt;
In order to view the near field distributions, you must first define field sensor observables before running the planar MoM simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of near field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear.&lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.&lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a planar MoM simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{E_{tot}}| = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{H_{tot}}| = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules, near field calculations in the [[Planar Module]] usually takes substantial time. This is due to the fact that at the end of a planar MoM simulation, the fields are not available anywhere (as opposed to the [[FDTD Module]]), and their computation requires integration of complex dyadic Green's functions (as opposed to [[MoM3D Module]]'s free space Green's functions).&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM116.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone electric field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone magnetic field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
Unlike differential-based methods, MoM simulators do not need a radiation box to calculate the far field data. The far-zone fields are calculated directly by integrating the currents on the traces and across the embedded objects using the asymptotic form of the background structure’s dyadic Green's functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{ff}(r)} = \iiint_V \mathbf{ \overline{\overline{G}}_{EJ,ff}(r|r') \cdot J(r') } \, d\nu ' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM,ff}(r|r') \cdot M(r') } \, d\nu '&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \dfrac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; is the characteristic impedance of the free space. As can be seen from the above equations, the far fields have the form of a TEM wave propagating in the radial direction away from the origin of coordinates. This means that the far-field magnetic field is always perpendicular to the electric field and the propagation vector, which in this case happens to be the radial unit vector in the spherical coordinate system. In other words, one only needs to know the far-zone electric field and can easily calculate the far-zone magnetic field from it. In EM.Cube's mixed potential integral equation formulation, the far-zone electric field can be expressed in terms of the asymptotic form of the vector electric and magnetic potentials '''A''' and '''F''':&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{E^{ff}}(x,y,z) = j k_0 \eta_0 \hat{r} \times [\hat{r} \times \mathbf{A}(r \to \infty)] +&lt;br /&gt;
j k_0 \hat{r} \times \mathbf{F}(r \to \infty)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The asymptotic form of these vector potentials are calculated using the &amp;amp;quot;'''Method of Stationary Phase'''&amp;amp;quot; when k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;rarr; &amp;amp;infin;. In that case, one can use the approximation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_0 |\mathbf{r-r'}| \approx k_0 (r - \mathbf{\hat{r} \cdot r'}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM115.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After applying the stationary phase method, one can extract the spherical wave factor exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/r from the far-zone electric field, leaving the rest as functions of the spherical angles &amp;amp;theta; and &amp;amp;phi;. In other words, the far field is normalized to r, the distance from the field observation point to the origin. It is customary to express the far fields in spherical components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;. Note that the outward propagating, TEM-type, far fields do not have radial components, i.e. E&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 0.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\theta}}(\theta, \phi) = \cos\theta \cos\phi E_x + \cos\theta \sin\phi E_y - \sin\theta E_z &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\phi}}(\theta, \phi) = -\sin\phi E_x + \cos\phi E_y &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM114.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM118.png|thumb|300px|[[Planar Module]]'s Radiation Pattern dialog]]&lt;br /&gt;
Even though the planar MoM engine does not need a radiation box, you still have to define a &amp;amp;quot;Far Field&amp;amp;quot; observable for radiation pattern calculation. This is because far field calculations take time and you have to instruct EM.Cube to perform these calculations. To define a far field, right click the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...'''. The Radiation Pattern Dialog opens up. You may accept the default settings, or you can change the value of '''Angle Increment''', which is expressed in degrees. You can also choose to '''Normalize 2D Patterns'''. In that case, the maximum value of a 2D paten graph will have a value of 1; otherwise, the actual far field values in V/m will be used on the graph.&lt;br /&gt;
&lt;br /&gt;
Once a planar MoM simulation is finished, three far field items are added under the Far Field item in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the &amp;amp;quot;Total&amp;amp;quot; far field. The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the whole structure or parts of it. In a 3D radiation pattern plot, the fields are always normalized to the maximum value of the total far field for visualization purpose:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM89.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM119.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D polar radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM120.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D vectorial (cone) radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
The 2D radiation pattern graphs can be plotted from EM.Cube's '''Data Manager'''. A total of eight 2D radiation pattern graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section of Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM124.png|thumb|300px|Planar Module's Radar Cross Section dialog]]&lt;br /&gt;
&lt;br /&gt;
When a planar structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields of that planar structure. EM.Cube can also calculate the radar cross section (RCS) of a planar target:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{|E_{\theta}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{|E_{\phi}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{|E_{tot}^{scat}|^2}{|E^{inc}|^2} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM123.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note that in this case the RCS is defined for a finite-sized target in the presence of an infinite background structure.''' The scattered &amp;amp;theta; and &amp;amp;phi; components of the far-zone electric field are indeed what you see in the 3D far field visualization of radiation (scattering) patterns. Instead of radiation or scattering patterns, you can instruct EM.Cube to plot 3D visualizations of &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and the total RCS. To do so, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* At the end of a planar MoM simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This fourth plane cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D mono-static radar cross section plot of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Running a Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
In a frequency sweep, the operating frequency of a planar structure is varied during each sweep run. EM.Cube's [[Planar Module]] offers two types of frequency sweep: Uniform and Adaptive. In a uniform frequency sweep, the frequency range and the number of frequency samples are specified. The samples are equally spaced over the frequency range. At the end of each individual frequency run, the output data are collected and stored. At the end of the frequency sweep, the 3D data can be visualized and/or animated, and the 2D data can be graphed in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
To run a uniform frequency sweep, open the '''Simulation Run Dialog''', and select the '''Frequency Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the frequency sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Frequency Settings''' dialog. The '''Frequency Range'''is initially set equal to your project's center frequency minus and plus half bandwidth. But you can change the values of '''Start Frequency'''and '''End Frequency''' as well as the '''Number of Samples'''. The dialog offers two options for '''Frequency Sweep Type''': '''Uniform''' or '''Adaptive'''. Select the former type. It is very important to note that in a MoM simulation, changing the frequency results in a change of the mesh of the structure, too. This is because the mesh density is defined in terms of the number of cells per effective wavelength. By default, during a frequency sweep, EM.Cube fixes the mesh density at the highest frequency, i.e., at the &amp;amp;quot;End Frequency&amp;amp;quot;. This usually results in a smoother frequency response. You have the option to fix the mesh at the center frequency of the project or let EM.Cube &amp;amp;quot;remesh&amp;amp;quot; the planar structure at each frequency sample during a frequency sweep. You can make one of these three choices using the radio button in the '''Mesh Settings''' section of the dialog. Closing the Frequency Settings dialog returns you to the Simulation Run dialog, where you can start the planar MoM frequency sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Frequency Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Adaptive Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
Frequency sweeps are often performed to study the frequency response of a planar structure. In particular, the variation of scattering parameters like S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; (return loss) and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; (insertion loss) with frequency are of utmost interest. When analyzing resonant structures like patch antennas or planar filters over large frequency ranges, you may have to sweep a large number of frequency samples to capture their behavior with adequate details. The resonant peaks or notches are often missed due to the lack of enough resolution. EM.Cube's [[Planar Module]] offers a powerful adaptive frequency sweep option for this purpose. It is based on the fact that the frequency response of a physical, causal, multiport network can be represented mathematically using a rational function approximation. In other words, the S parameters of a circuit exhibit a finite number of poles and zeros over a given frequency range. EM.Cube first starts with very few frequency samples and tries to fit rational functions of low orders to the scattering parameters. Then, it increases the number of samples gradually by inserting intermediate frequency samples in a progressive manner. At each iteration cycle, all the possible rational functions of higher orders are tried out. The process continues until adding new intermediate frequency samples does not improve the resolution of the &amp;amp;quot;S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;&amp;amp;quot; curves over the given frequency range. In that case, the curves are considered as having converged.&lt;br /&gt;
&lt;br /&gt;
You must have defined one or more ports for your planar structure run an adaptive frequency sweep. Open the Frequency Settings dialog from the Simulation Run dialog and select the '''Adaptive''' option of '''Frequency Sweep Type'''. You have to set values for '''Minimum Number of Samples''' and '''Maximum Number of Samples'''. Their default values are 3 and 9, respectively. You also set a value for the '''Convergence Criterion''', which has a default value of 0.1. At each iteration cycle, all the S parameters are calculated at the newly inserted frequency samples, and their average deviation from the curves of the last cycle is measured as an error. When this error falls below the specified convergence criterion, the iteration is ended. If EM.Cube reaches the specified maximum number of iterations and the convergence criterion has not yet been met, the program will ask you whether to continue the process or exit it and stop.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large frequency ranges, you may have to increase both the minimum and maximum number of samples. Moreover, remeshing the planar structure at each frequency may prove more practical than fixing the mesh at the highest frequency.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Settings adaptive frequency sweep parameters in [[Planar Module]]'s Frequency Settings Dialog.&lt;br /&gt;
&lt;br /&gt;
=== Examining Port Characteristics ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure is excited by gap sources or probe sources or de-embedded sources, and one or more ports have been defined, the planar MoM engine calculates the scattering, impedance and admittance (S/Z/Y) parameters of the designated ports. The scattering parameters are defined based on the port impedances specified in the project's Port Definition dialog. If more than one port has been defined in the project, the S/Z/Y matrices of the multiport network are calculated. Note that the S/Z/Y matrices of an N-port structure are related to each other through the following equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM121.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively, and &amp;lt;math&amp;gt;\mathbf{[\sqrt{Z_0}]}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM122.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the values of S/Z/Y parameters and VSWR data are calculated and reported in the output message window. The S, Z and Y parameters are written into output ASCII data files of complex type with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Every file begins with a header consisting of a few comment lines that start with the &amp;amp;quot;#&amp;amp;quot; symbol. The complex values are arranged into two columns for the real and imaginary parts. In the case of multiport structures, every single element of the S/Z/Y matrices is written into a separate complex data file. For example, you will have data files like S11.CPX, S21.CPX, ..., Z11.CPX, Z21.CPX, etc. The VSWR data are saved to an ASCII data file of real type with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension called, VSWR.DAT.&lt;br /&gt;
&lt;br /&gt;
If you run an analysis, the port characteristics have single complex values, which you can view using EM.Cube's data manager. However, there are no curves to graph. You can plot the S/Z/Y parameters and VSWR data when you have data sets, which are generated at the end of any type of sweep including a frequency sweep. In that case, the &amp;amp;quot;.CPX&amp;amp;quot; files have multiple rows corresponding to each value of the sweep parameter (e.g. frequency). EM.Cube's 2D graph data are plotted in EM.Grid, a versatile graphing utility. You can plot the port characteristics directly from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting port characteristics data to plot from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
You can also see a list of all the port characteristics data files in EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. By default, the S parameters are plotted as double magnitude-phase graphs, while the Y and Z parameters are plotted as double real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You can change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM129.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Data Manager showing a list of the port characteristics data files.&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it in the Data Manager and click its '''Edit''' button. In the Edit File Dialog, choose one of the options provided in the dropdown list labeled '''Graph Type'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM130.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Changing the graph type by editing a data file's properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM134.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plotted on a Smith Chart graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
=== Rational Interpolation Of Scattering Parameters ===&lt;br /&gt;
&lt;br /&gt;
The adaptive frequency sweep described earlier is an iterative process, whereby the Planar MoM simulation engine is run at a certain number of frequency samples at each iteration cycle. The frequency samples are progressively built up, and rational fits for these data are found at each iteration cycle. A decision is then made whether to continue more iterations. At the end of the whole process, a total number of scattering parameter data samples have been generated, and new smooth data corresponding to the best rational fits are written into new data files for graphing. EM.Cube's [[planar Module]] also allows you to generate a rational fit for all or any existing scattering parameter data as a post-processing operation without a need to run additional simulation engine runs.&lt;br /&gt;
&lt;br /&gt;
You can interpolate all the scattering parameters together or select individual parameters. You do this post-processing operation from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select Smart Fit. At the top of the Smart Fit Dialog, there is a dropdown list labeled '''Interpolate''', which gives a list of all the available S parameter data for rational interpolation. The default option is &amp;amp;quot;All Available Parameters&amp;amp;quot;. Then you see a box labeled '''Number of Available Samples''', whose value is read from the data content of the selected complex .CPX data file. Based on the number of available data samples, the dialog reports the '''Maximum Interpolant Order'''. You can choose any integer number for '''Interpolant Order''', from 1 to the maximum allowed. &lt;br /&gt;
&lt;br /&gt;
{{Note|Interpolant order more than 15 will suffer from numerical instabilities even if you have a very large number of data samples.}}&lt;br /&gt;
&lt;br /&gt;
You can use the '''Update''' button of the dialog to generate the interpolated data for a given order. The new data are written to a complex data file with the same name as the selected S parameter and a &amp;amp;quot;'''_RationalFit'''&amp;amp;quot; suffix. While this dialog is still open, you can plot the new data either directly from the Navigation Tree or from the Data Manager. If you are not satisfied with the results, you can return to the Smart Fit dialog and try a higher or lower interpolant order and compare the new data.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM131.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Smart Fit dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM133(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of a two-port structure in magnitude-phase format.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM132(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The smoothed version of the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of the two-port structure using EM.Cube's Smart Fit.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Output Simulation Data ===&lt;br /&gt;
&lt;br /&gt;
Depending on the source type and the types of observables defined in a project, a number of output data are generated at the end of a planar MoM simulation. Some of these data are 2D by nature and some are 3D. The output simulation data generated by EM.Cube's [[Planar Module]] can be categorized into the following groups:&lt;br /&gt;
&lt;br /&gt;
* '''Port Characteristics''': S, Z and Y Parameters and Voltage Standing Wave Ratio (VSWR)&lt;br /&gt;
* '''Radiation Characteristics''': Radiation Patterns, Directivity, Total Radiated Power, Axial Ratio, Main Beam Theta and Phi, Radiation Efficiency, Half Power Beam Width (HPBW), Maximum Side Lobe Level (SLL), First Null Level (FNL), Front-to-Back Ratio (FBR), etc.&lt;br /&gt;
* '''Scattering Characteristics''': Bi-static and Mono-static Radar Cross Section (RCS)&lt;br /&gt;
* '''Periodic Characteristics''': Reflection and Transmission Coefficients&lt;br /&gt;
* '''Current Distributions''': Electric and magnetic current amplitude and phase on all metal and slot traces and embedded objects&lt;br /&gt;
* '''Near-Field Distributions''': Electric and magnetic field amplitude and phase on specified planes and their central axes&lt;br /&gt;
&lt;br /&gt;
At the end of an analysis, the 2D quantities usually have a single value that is written into an ASCII data file. Complex-valued quantities are written into complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Real-valued quantities are written into real data files with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension. Polar 2D radiation pattern data and some other radiation characteristics are written into angular data files with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; extension. In this latter file type, polar data are stored as functions of an angle expressed in degrees. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). If a sweep simulation involves N sweep [[variables]], then the first N columns of the output data files show the samples of those sweep [[variables]]. All the 2D data files are listed in the '''2D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
3D output data, on the other hand, are defined as functions of the space coordinates and are usually of vectorial nature. Cartesian-type and mesh-type data such as current distributions and near-field field distributions are expressed as functions of the Cartesian (X, Y, Z) coordinates. Spherical-type data like far-field radiation patterns and RCS are expressed as functions of the spherical angles (&amp;amp;theta;, &amp;amp;phi;). The 3D radiation patterns are written into a file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension. This file contains the complex values of the &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field (E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;) as well as the total far field magnitude as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The 3D RCS patterns are written into a file with a &amp;amp;quot;'''.RCS'''&amp;amp;quot; extension. This file contains the real values of the &amp;amp;theta;- and &amp;amp;phi;-polarized RCS values as well as the total RCS as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The current distributions are written into data files with a &amp;amp;quot;'''.CUR'''&amp;amp;quot; extension. They contain the real and imaginary parts of the X, Y and Z components of electric ('''J''') and magnetic ('''M''') current on each cells together with the definition of all the node coordinates and node indices of the cells. The near-field distributions are written into data files with a &amp;amp;quot;'''.SEN'''&amp;amp;quot; extension. They contain the amplitude and phase of the X, Y and Z components of electric ('''E''') and magnetic ('''H''') fields as functions of the coordinates of sampling points. All the 3D data files are listed in the '''3D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The 3D Data Files tab of EM.Cube's Data Manager.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM139.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Viewing the contents of a mesh-type 3D data file in Data Manager.&lt;br /&gt;
&lt;br /&gt;
=== Standard vs. Custom Output ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a number of computed quantities are designated as &amp;amp;quot;Standard Output&amp;amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[File:functions_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Functions...'''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[File:custom_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Custom Output...'''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add''' button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit''' button, or you can delete any parameter from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
=== Viewing &amp;amp;amp; Visualizing Various Output Data Types ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a variety of 2D and 3D output data are generated. Some of these can be visualized or graphed directly from the Navigation Tree, while the others can only be accessed from the Data Manager. All of EM.Cube's simulation data are always written into ASCII data files that you can open and inspect or edit. Lists of these 2D and 3D data files appear under Data Manager's various tabs. The generated data also include all of [[Planar Module]]'s legitimate standard outputs that the simulation engine can compute given the specified source and observable types as well as all of your own previously defined custom output parameters. Note that in this release of EM.Cube, all the custom outputs are real-type data. Each custom output is written into a separate real data file with the same name as the parameter's given label and a &amp;amp;quot;'''.DAT'''&amp;amp;quot; file extension. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot its graph in '''EM.Grid'''. You can also view the contents of a data file by selecting its row in th file list and clicking the '''View''' button of the dialog or by simply double-clicking the highlighted row. This opens up a new window containing a convenient spreadsheet that gives a tabular view of the contents of the selected data file. There are a large number of data operations and manipulations that you can perform on the data content including matrix, calculus and statistical calculations as well as computing and plotting new datasets using the &amp;amp;quot;Compute&amp;amp;quot; feature of the spreadsheet. You can make multiple file selection using the keyboard's '''Ctrl''' and '''Shift''' keys.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing an angular file selected and highlighted for further action.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Data Manager's spreadsheet showing the contents of an angular data file.&lt;br /&gt;
&lt;br /&gt;
The 2D output data include real or complex quantities like various port, radiation, scattering and periodic characteristics. At the end of an analysis, most .CPX and .DAT data files have a single complex or real value, respectively. in other words, there are no curves to plot. Exceptions are Cartesian 2D radiation pattern or RCS data files along the principal and user define phi-cut planes, as well as polar 2D radiation pattern or RCS data files of angular type with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; file extension. These files contain the radiation pattern or RCS data as a function of some relevant angle in the specified plane. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). You can plot graphs of the 2D output data files that contain more than one row in '''EM.Grid'''. Each data file has a default graph type. Real data are plotted on EM.Grid's Cartesian graphs. Complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension are plotted on double Cartesian graphs of &amp;amp;quot;'''Magnitude-Phase'''&amp;amp;quot; type, showing the magnitude in dB and phase in radians. You can change the complex data's graph type to the &amp;amp;quot;'''Real-Imaginary'''&amp;amp;quot; or &amp;amp;quot;'''Smith Chart'''&amp;amp;quot; by selecting its entry in the Data Manager and clicking the '''Edit'''button to open the &amp;amp;quot;Edit File Properties Dialog&amp;amp;quot;. Angular data files like polar 2D radiation patterns or RCS, by default, are plotted on EM.Grid's &amp;amp;quot;'''Polar'''&amp;amp;quot; graphs. Note that real data can be graphed on bar charts, too, just as angular can alternatively be graphed on polar stem charts.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM142.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A 2D radiation pattern polar graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's 3D output simulation data usually have a vectorial nature and are defined as functions of the Cartesian or spherical space coordinates. At the end of a planar MoM simulation, you can view 3D visualizations of the vectorial output data such as current distributions, near-field field distributions, far-field radiation patterns and RCS in EM.Cube's project workspace by clicking on the corresponding observable entries in the Navigation Tree. When you run a sweep simulation of some sort, multiple 3D plots appear on the Navigation Tree representing all the sweep variable samples. You can animate these 3D visualization plots very conveniently from the Navigation Tree. To do so, right click on an observable's name in the Navigation Tree and select the '''Animation''' item from the contextual menu. Make sure that you right click on the observable's parent node, not on one of its child components corresponding to the sweep variable samples. The 3D plot in the project workspace starts to animate and continues forever until to stop it. A new window called &amp;amp;quot;''' Animation Controls Dialog'''&amp;amp;quot; opens up at the lower right corner of the EM.Cube desktop. This dialog allows you to control the animation speed using a box labeled '''Rate''', whose value multiplied by 100 milliseconds indeed gives the frame duration. You can speed up the animation or slow it down from the default rate of one frame per 300ms. The box labeled '''Sample''' show the current frame's plot label at any time. You can pause the animation, rewind it to the first frame, fast-forward it to the last frame or manually step it through back and forth using the movement buttons marked with the symbols |&amp;amp;lt;, &amp;amp;lt;&amp;amp;lt;, ||, &amp;amp;gt;&amp;amp;gt;,&amp;amp;gt;|.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM135.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Animating 3D radiation patterns as the send of a frequency sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM136.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep ===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the planar MoM simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweep, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed later, parametric sweeps are simple and straightforward and do not required careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;amp;quot;expression&amp;amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;amp;quot;formal&amp;amp;quot; option, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[File:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; [[Variables]]...'''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;amp;quot;Add Variable Dialog&amp;amp;quot;. Choose a '''Name''' for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;amp;quot;Variable List&amp;amp;quot;. You can also see the '''Current Value''' of every variable at any time in the Variable as dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit''' button or indirectly during a parametric sweep. In the former case, you have to click the '''Update''' button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, trace and object set dialogs, stack-up dialog or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;amp;quot;Variable List&amp;amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;amp;quot;current Value&amp;amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;amp;quot;Independent&amp;amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete''' and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;amp;quot;Start&amp;amp;quot; and &amp;amp;quot;End&amp;amp;quot; value and is incremented by a predetermined &amp;amp;quot;Step&amp;amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution''' is defined by &amp;amp;quot;Minimum&amp;amp;quot; and &amp;amp;quot;Maximum&amp;amp;quot; values, while '''Normal (Gaussian) Distribution''' is defined by a &amp;amp;quot;Mean&amp;amp;quot; and &amp;amp;quot;Standard Deviation&amp;amp;quot;. You need to specify the &amp;amp;quot;Number of Samples&amp;amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;amp;quot;Define Sweep Variable Dialog&amp;amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete''' and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up''' and '''Move Down''' buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;amp;quot;fake&amp;amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. If you run a dry run while EM.Cube is in the mesh view mode, then the planar mesh of your structure is updated for each combination of the sweep variable samples during the dry run process. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Optimizing Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (Optional but Highly Recommended) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;amp;lt;, &amp;amp;lt;=, &amp;amp;gt; or &amp;amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;amp;quot;'''=='''&amp;amp;quot; are regarded a &amp;amp;quot;'''Goals'''&amp;amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;amp;quot;'''Target Value'''&amp;amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;amp;quot;(LHS - RHS) == 0&amp;amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;amp;quot;non-Equal&amp;amp;quot; logical operators are regarded a &amp;amp;quot;'''Constraints'''&amp;amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[File:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;amp;quot;=== (Equal To)&amp;amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit''' button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation Run Dialog''', and select the '''[[Optimization]]''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;amp;quot;'''[[Optimization]] Algorithm'''&amp;amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm''' and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size''' as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;amp;quot;Define [[Optimization]] Variable Dialog&amp;amp;quot; opens up, where you have to set the '''Minimum'''and '''Maximum'''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog to change those value. If you check the box labeled &amp;amp;quot;''' Update [[Variables]] with Optimal Values'''&amp;amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;amp;quot;saturated&amp;amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;amp;quot;'''Exit Local Min Trap'''&amp;amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;amp;quot;'''Error Function'''&amp;amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;amp;quot;'''Maximum Error'''&amp;amp;quot; value for the objective function, which terminates the process as &amp;amp;quot;converged&amp;amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals''' and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those cases, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute''' button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals''' or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
== Periodic Planar Structures &amp;amp;amp; Antenna Arrays ==&lt;br /&gt;
&lt;br /&gt;
=== Finite Arrays vs. Infinite Periodic Structures ===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that exhibits a repeated geometric pattern. It is made up of identical elements that are arranged in the form of a periodic lattice. The spacing between the elements is denoted by Sx along the X direction and Sy along the Y direction. The number of elements is denoted by Nx along the X direction and Ny along the Y direction (i.e. a total of Nx.Ny elements). If Nx and Ny are finite numbers, you have a finite-sized periodic structure, which is constructed using an &amp;amp;quot;'''Array Object'''&amp;amp;quot; in EM.Cube. If Nx and Ny are infinite, you have an infinite periodic structure with periods Sx and Sy along the X and Y directions, respectively. An infinite periodic structure in EM.Cube is represented by a &amp;amp;quot;'''Periodic Unit Cell'''&amp;amp;quot;. Periodic structures have many applications including phased array antennas, frequency selective surfaces (FSS), electromagnetic bandgap structures (EBG), metamaterial structures, etc. EM.Cube allows you to model both finite and infinite periodic structures.&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; Real practical periodic structures obviously have finite extents. You can easily and quickly construct finite-sized arrays of arbitrary complexity using EM.Cube's &amp;amp;quot;Array Tool&amp;amp;quot;. However, for large values of Nx and Ny, the size of the computational problem may rapidly get out of hand and become impractical. For very large periodic arrays, you can alternatively analyze a unit cell subject to the periodic boundary conditions and calculate the current distribtutions and far fields of the periodic unit cell. For their radiation patterns, you can multiply the &amp;amp;quot;Element Pattern&amp;amp;quot; by an &amp;amp;quot;Array Factor&amp;amp;quot; that captures the finite extents of the structure. In many cases, an approximation of this type works quite well. But in some other cases, the edge effects and particularly the field behavior at the corners of the finite-sized array cannot be modeled accurately. Periodic surfaces like FSS, EBG and metamaterials are also modeled as infinite periodic structures, for which one can define reflection and transmission coefficients. For this purpose, the periodic structure is excited using a plane wave source. Reflection and transmission coefficients are typically functions of the angles of incidence.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
The straightforward approach to the modeling of finite-sized antenna arrays is to use the full-wave method of moments (MoM). This requires building an array of radiating elements using EM.Cube's '''Array Tool''' and feeding the individual array elements using some type of excitation. For example, if the antenna elements are excited using a gap source or a probe source, you can assign a certain array weight distribution among the elements as well as phase progression among the elements along the X and Y directions. EM.Cube currently offers uniform, binomial, Chebyshev and (arbitrary) data file-based weight distribution types. The full-wave MoM approach is very accurate and takes into account all the inter-element coupling effects. At the end of a planar MoM simulation of the array structure, you can plot the radiation patterns and other far field characteristics of the antenna array just like any other planar structure.&lt;br /&gt;
&lt;br /&gt;
The radiation pattern of antenna arrays usually has a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' such as first null level and first null beam width. To have EM.Cube calculate all such parameters, you must check the relevant boxes in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. In particular, you can plot such data files at the end of a sweep simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM91.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
Another approach to modeling a finite-sized antenna array is to analyze one of its elements and use the &amp;amp;quot;Array Factor&amp;amp;quot; concept to calculate its radiation patterns. This method ignores any inter-element coupling effects. In other words, you can regard the structure in the project workspace as a single isolated radiating element. To define an array factor, open the '''Radiation Pattern Dialog''' of the project. In the section titled &amp;amp;quot;'''Impose Array Factor'''&amp;amp;quot;, you will see a default value of 1 for the '''Number of Elements''' along the X and Y directions. This implies a single radiator, representing the structure in the project workspace. There are also default zero values for the '''Element Spacing''' along the X and Y directions. You should change both the number of elements and element spacing in the X and Y directions to define a finite array lattice. For example, you can define a linear array by setting the number of elements to 1 in one direction and entering a larger value for the number of elements along the other direction. Keep in mind that when using an array factor for far field calculation, you cannot assign non-uniform amplitude or phase distributions to the array elements. For that purpose, you have to define an array object with a source array.&lt;br /&gt;
&lt;br /&gt;
=== Defining A Periodic Domain ===&lt;br /&gt;
&lt;br /&gt;
In general, a planar structure in EM.Cube's [[Planar Module]] is assumed to have open boundaries. This means that the structure has infinite dimensions along the X and Y directions. In other words, the layers of the background structure extend to infinity, while the traces and embedded object sets have finite sizes. Along the Z direction, a planar structure can be open-boundary, or it may be truncated by PEC ground planes from the top or bottom or both. You can define a planar structure to be infinitely periodic along the X and Y directions. In this case, you only need to define the periodic unit cell. EM.Cube automatically reproduces the unit cell infinitely and simulates it using a spectral domain periodic version of the Green's functions of your project's background structure.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, you must open [[Planar Module]]'s Periodicity Settings Dialog by right clicking the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Periodicity Settings...''' from the contextual menu or by selecting '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt; 'Computational Domain &amp;amp;gt; Periodicity Settings...''' from the Menu Bar. In the Periodicity Settings Dialog, check the box labeled '''Periodic Structure'''. This will enable the section titled''&amp;amp;quot;''Lattice Properties&amp;amp;quot;. You can define the periods along the X and Y axes using the boxes labeled '''Spacing'''. You can also define values for periodic '''Offset''' along the X and Y directions, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
In a periodic structure, the virtual domain is replaced by a default blue periodic domain that is always centered around the origin of coordinates. Keep in mind that the periodic unit cell must always be centered at the origin of coordinates. The relative position of the structure within this centered unit cell will change the phase of the results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM99.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Regular vs. Generalized Periodic Lattices ===&lt;br /&gt;
&lt;br /&gt;
Besides conventional rectangular lattices, EM.Cube's [[Planar Module]] can also handle complex non-rectangular periodic lattices. For example, many frequency selective surfaces have skewed grids. In order to simulate skewed-grid periodic structures, the definition of the grid has to be generalized. A periodic structure is a repetition of a basic structure (unit cell) at pre-determined locations. Let these locations be described by (x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;, y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;), where m and n are integers ranging from -8 to 8. For a general skewed grid, x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; and y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; can be described by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; x_{mn} = m\Delta x + n \Delta x' \\&lt;br /&gt;
&amp;amp; y_{mn} = m\Delta y + n \Delta y'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; is the primary offset in the X direction (X Spacing) controlled by index m and &amp;lt;math&amp;gt;\Delta x'&amp;lt;/math&amp;gt; is the secondary offset in the X direction (X Offset) controlled by index n. The meanings of &amp;lt;math&amp;gt;\Delta y&amp;lt;/math&amp;gt; (Y Spacing) and &amp;lt;math&amp;gt;\Delta y'&amp;lt;/math&amp;gt; (Y Offset) are similar with the roles of indices m and n interchanged. To illustrate how to use this definition, consider an example of an equilateral triangular grid with side length L as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:image121.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of an equilateral triangular periodic lattice.&lt;br /&gt;
&lt;br /&gt;
From the figure, it is obvious that the y coordinate of each row is fixed and identical, thus &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. While in each row the spacing between adjacent elements is L, there is an offset of L/2 between the consecutive rows. This results in &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;. To sum up, an equilateral triangular grid can be described by &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. In an EM.Cube [[Planar Module]] project, the secondary offsets are equal to zero by default, implying a rectangular lattice. You can change the values of the secondary offsets using the boxes labeled '''X Offset''' and '''Y Offset''' in the '''Periodicity Settings Dialog''', respectively. Triangular and Hexagonal lattices are popular special cases of the generalized lattice type. In a triangular lattice with alternating Rows, &amp;lt;math&amp;gt;\Delta x' = \Delta x/2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. A Hexagonal lattice (with alternating rows) is a special case of triangular lattice in which &amp;lt;math&amp;gt;\Delta y = \sqrt{3\Delta x / 2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Interconnectivity Among Unit Cells ===&lt;br /&gt;
&lt;br /&gt;
In many cases, your planar structure's traces or embedded objects are entirely enclosed inside the periodic unit cell and do not touch the boundary of the unit cell. In EM.Cube's [[Planar Module]], you can define periodic structures whose unit cells are interconnected. Interconnectivity applies only to PEC, PMC and conductive sheet traces, and embedded object sets are excluded. Note that in a periodic planar structure, your objects cannot cross the periodic domain. However, you can arrange objects with linear edges such as one or more flat edges line up with the domain's bounding box. In such cases, EM.Cube's planar MoM mesh generator will take into account the continuity of the currents across the adjacent connected unit cells and will create the connection basis functions at the right and top boundaries of the unit cell. It is clear that due to periodicity, the basis functions do not need to be extended at the left or bottom boundaries of the unit cell.&lt;br /&gt;
&lt;br /&gt;
As an example, consider the periodic structure in the figure below that shows a metallic screen or wire grid. The unit cell of this structure can be defined as a rectangular aperture in a PEC ground plane (marked as Unit Cell 1). In this case, the rectangle object is defined as a slot trace. Alternatively, you can define a unit cell in the form of a microstrip cross on a metal trace. In the latter case, however, the microstrip cross should extend across the unit cell and connect to the crosses in the neighboring cells in order to provide current continuity.&lt;br /&gt;
&lt;br /&gt;
[[File:image122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Modeling a periodic screen using two different types of unit cell.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per3_tn.png|400px]] [[File:pmom_per4_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The PMC aperture unit cell and its planar mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per5_tn.png|400px]] [[File:pmom_per6_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The PEC cross unit cell and its planar mesh. Notice the cell extensions at the unit cell's boundaries.&lt;br /&gt;
&lt;br /&gt;
=== Periodic MoM Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the case of an infinite periodic planar structure, the field equations can be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E(r) = E^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{H(r) = H^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM94.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J_{mn}(r) = J_{mn}}(x,y,z) = \mathbf{J_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{M_{mn}(r) = M_{mn}}(x,y,z) = \mathbf{M_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; -\infty &amp;lt; m, n &amp;lt; \infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM95(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, &amp;lt;math&amp;gt;\mathbf{J_{00}(r)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{M_{00}(r)}&amp;lt;/math&amp;gt; are the periodic unit cell's electric and magnetic currents that are repeated everywhere in space on a rectangular lattice with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. &amp;lt;math&amp;gt;k_{x00}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;k_{y00}&amp;lt;/math&amp;gt; are the periodic propagation constants along the X and Y directions, respectively, and they are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{x00} = k_0 \sin\theta \cos\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{y00} = k_0 \sin\theta \sin\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM96(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;theta; and &amp;amp;phi; are the beam scan angles in the case of periodic excitation of lumped sources, or they are the spherical angles of incidence in the case of a plane wave source illuminating the periodic structure. Using the infinite summations, one can define periodic dyadic Green's functions in the spectral domain in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ \overline{\overline{G}}_{\mu \nu}^{PER} (r|r') } =&lt;br /&gt;
\frac{1}{S_x S_y} \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\mathbf{ \tilde{\overline{\overline{G}}}_{\mu \nu} } (k_x, k_y, z|z')&lt;br /&gt;
e^{-j[k_{xm}(x-x') + k_{yn}(y-y')]}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
k_{xm} = k_{x00} + \frac{2\pi m}{S_x} \quad \text{and} \quad&lt;br /&gt;
k_{ym} = k_{y00} + \frac{2\pi m}{S_y}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM97.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above doubly infinite periodic Green's functions are said to be expressed in terms of &amp;amp;quot;Floquet Modes&amp;amp;quot;. The exact formulation involves an infinite set of these periodic Floquet modes. During the MoM matrix fill process for a periodic structure, a finite number of Floquet modes are calculated. By default, EM.Cube's planar MoM engine considers M&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; = M&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; = 25. This implies a total of 51 modes along the X direction and a total of 51 modes along the Y direction, or a grand total of 51&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 2,601 Floquet modes. You can increase the number of Floquet modes for your project from the Planar MoM Engine Settings Dialog. In the section titled &amp;amp;quot;Periodic Simulation&amp;amp;quot;, you can change the values of '''Number of Floquet Modes''' in the two boxes designated X and Y.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM98.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Changing the number of Floquet modes from the Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Phased Arrays ===&lt;br /&gt;
&lt;br /&gt;
Earlier, it was argued that you can calculate the radiation pattern of a finite antenna array by modeling a single isolated element and multiplying its &amp;amp;quot;Element Pattern&amp;amp;quot; by the &amp;amp;quot;Array Factor&amp;amp;quot;. This method gives acceptable results only when the inter-element coupling effects are negligible, as it does not take into account such effects. Planar antennas printed on dielectric substrates usually exhibit inter-element coupling effects due to the propagation of the substrate surface wave modes. If your finite-sized array is very large and you cannot afford a straightforward full-wave MoM simulation of it, you can alternatively model it as an infinite array represented by a periodic unit cell. In this case, you calculate the radiation pattern of the unit cell structure and use it as the &amp;amp;quot;Element Pattern&amp;amp;quot; in conjunction with the &amp;amp;quot;Array Factor&amp;amp;quot;. The periodic Green's functions, in this case, capture the inter-element coupling effects. What is missing from this picture is the finite edge effects and/or corner effects, if any.&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a gap or probe source, it acts like an infinite periodic phased array. All the periodic replicas of the unit cell structure are excited. You can even impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the gap or probe source. At the bottom of the '''Gap Source Dialog''' or '''Probe Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. You can enter desired values for '''Theta''' and '''Phi''' beam scan angles in degrees. The corresponding phase progressions are calculated and applied to the periodic Green's functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\Psi_x = -\frac{2\pi S_x}{\lambda_0} \sin\theta \cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\Psi_y = -\frac{2\pi S_y}{\lambda_0} \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you have to define a finite-sized array factor in the Radiation Pattern dialog. You do this in the '''Impose Array Factor''' section of this dialog. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of '''Element Spacing''' along the X and Y directions are automatically set equal to the value of '''Periodic Lattice Spacing''' along those directions. You have to set the '''Number of Elements''' along the X and Y directions, which are both equal to one initially, representing a single radiator. If you forget to define an array factor, the radiation pattern of the unit cell structure will be displayed, which does not show beam scanning.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM100.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the periodic scan angles in [[Planar Module]]'s Gap Source dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per9_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The 3D radiation pattern of a beam-steered periodic printed dipole array.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Periodic Structures Using Plane Waves ===&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a plane wave source, it acts as a periodic surface that reflects or transmits the incident wave. You can model frequency selective surfaces, electromagnetic band-gap structures and metamaterials in this way. EM.Cube calculates the reflection and transmission coefficients of periodic surfaces or planar structures. If you run a single plane wave simulation, the reflection and transmission coefficients are reported in the Output Window at the end of the simulation. Note that these periodic characteristics depend on the polarization of the incident plane wave. You set the polarization (TMz or TEz) in the '''Plane Wave Dialog''' when defining your excitation source. In this dialog you also set the values of the incident '''Theta''' and '''Phi''' angles.&lt;br /&gt;
&lt;br /&gt;
At the end of the planar MoM simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. As a result, you can run an adaptive sweep of periodic structures with a plane wave source just like projects with gap or probe sources. The reflection and transmission (R/T) coefficients can be plotted in EM.Grid on 2D graphs similar to the S parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
{{Note|In the absence of any finite traces or embedded objects in the project workspace, EM.Cube computes the reflection and transmission coefficients of the layered background structure of your project.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM102.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A periodic planar layered structure with slot traces excited by a normally incident plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Characterizing Periodic Surfaces Using Angular Sweeps ===&lt;br /&gt;
&lt;br /&gt;
The reflection and transmission characteristics of a period surface as functions of the incidence angle are often of great interest. For that purpose, you can run an angular sweep of your periodic structure, where you normally fix the &amp;amp;phi; angle and sweep the &amp;amp;theta; angle from 180 to 90 degrees for one-sided surfaces and from 180 to 0 degrees for two-sided surface. To run an angular sweep, open the [[Planar Module]]'s '''Simulation Run Dialog''' and select the '''Angular Sweep''' option from its '''Simulation Mode''' dropdown list. This enables the '''Settings''' button, which opens up the '''Angle Settings Dialog'''. First, you must choose either Theta or Phi as the '''Sweep Angle'''. Then you can set the '''Start''' and '''End''' values of the selected incidence angle as well as the '''Number of Samples'''. At the end of an angular sweep simulation, you can plot the reflection and transmission coefficients from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The reflection and transmission coefficients of the structure are saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM103.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Structures Using Adaptive Frequency Sweeps ===&lt;br /&gt;
&lt;br /&gt;
You learned earlier how to use EM.Cube's powerful, adaptive frequency sweep utility to study the frequency response of a planar structure. Adaptive frequency sweep uses rational function interpolation to generate smooth curves of the scattering parameters with a relatively small number of full-wave simulation runs in a progressive manner. Therefore, you need a port definition in your planar structure to be able to run an adaptive frequency sweep. This is clear in the case of an infinite periodic phased array, where your periodic unit cell structure must be excited using either a gap source or a probe source. You run an adaptive frequency sweep of an infinite periodic phased array in exactly the same way to do for regular, aperiodic, planar structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar Modules also allows you to run an adaptive frequency sweep of periodic surfaces excited by a plane wave source. In this case, the planar MoM engine calculates the reflection and transmission coefficients of the periodic surface. Note that you can conceptually consider a periodic surface as a two-port network, where Port 1 is the top half-space and Port 2 is the bottom half-space. In that case, the reflection coefficient R is equivalent to S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter, while the transmission coefficient T is equivalent to S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameter. This is, of course, the case when the periodic surface is illuminated by the plane wave source from the top half-space, corresponding to 90°&amp;amp;lt; &amp;amp;theta; = 180°. You can also illuminate the periodic surface by the plane wave source from the bottom half-space, corresponding to 0° = &amp;amp;theta; &amp;amp;lt; 90°. In this case, the reflection coefficient R and transmission coefficient T are equivalent to S&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;12&amp;lt;/sub&amp;gt; parameters, respectively. Having these interpretations in mind, EM.Cube enables the &amp;amp;quot;'''Adaptive Frequency Sweep'''&amp;amp;quot; option of the '''Frequency Settings Dialog''' when your planar structure has a periodic domain together with a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite-Sized Periodic Arrays Using NCCBF Technique ===&lt;br /&gt;
&lt;br /&gt;
Previously, you saw how the concept of &amp;amp;quot;Array Factor&amp;amp;quot; is used to approximate the far field radiation pattern of a finite-sized array of radiators. The total radiation pattern can be expressed as the product of the array factor and the &amp;amp;quot;Element Pattern&amp;amp;quot;. The array factor captures the topology of the array lattice and depends on the number of elements along the X and Y directions as well as the element spacing along those directions. As for the choice of element pattern, you saw two extreme cases. In the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; option, you compute the radiation pattern of a single stand-alone radiator and completely ignore any coupling effects from the neighboring elements. This option is readily available in the Radiation Pattern Dialog of the Far Field observable. In the &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; option, you analyze a periodic version of the radiating element with periods equal to the element spacing. The computed radiation pattern of the periodic unit cell in this case captures the coupling effects from an infinite number of elements.&lt;br /&gt;
&lt;br /&gt;
The array factor approach works well when the inter-element coupling is negligible or when the array contains a very large number of elements. However, finite edge and corner effects cannot be modeled accurately using a simple array factor. A full-wave approach is needed where all the elements are discretized properly, and their interactions are incorporated into the final solution. EM.Cube's Planar MoM simulation engine lets you analyze finite-sized antenna arrays in a rigorous, full-wave manner. As you saw earlier, you can even introduce a source array with arbitrary (amplitude and phase) weights and realize a complex, non-uniformly excited, finite-sized antenna array. Note that if the array contains a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; . N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; elements, and each radiating element involves a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; vectorial basis functions, the numerical solution of the problem will produce a system of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;linear equations. As an example, consider a rectangular patch antenna element that involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. Now consider a not-so-large, 8 × 8 array of these patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. The resulting linear system will have an enormous size of N = 30,720. Keep in mind that, unlike the sparse matrices of the Finite Element Method (FEM), MoM linear systems are dense by nature and typically ill-conditioned. The inversion of dense matrices of such sizes or larger takes a significant amount of computation time even if you use fast iterative solvers.&lt;br /&gt;
&lt;br /&gt;
EMAG Technologies Inc. has recently developed a novel technique, called '''Numerically Constructed Characteristic Basis Functions (NCCBF)''', which generates physics-based entire-domain basis functions for the elements of a finite-sized array. These &amp;amp;quot;sophisticated&amp;amp;quot; basis functions are linear combinations of the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; solutions and &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; solutions. Unlike the array factor method, which is a post-processing calculation of far-field data, the NCCBF method generate a full-wave MoM solution with entire-domain basis functions. Considering the same example of the patch antenna array discussed earlier, the NCCBF method generates a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 4 entire-domain basis functions on each patch element: an isolated X-directed solution, a periodic X-directed solution, an isolated Y-directed solution, and a periodic Y-directed solution. The same approach applies equally well to triangular RWG basis functions and is not limited to rectangular cells. As a result, the new MoM linear system has a dimension of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = (4)(64) = 256. In other words, the NCCBF method compresses the original MoM matrix of size N = 30,720 to one of significantly reduced size N = 256 (i.e. a compression factor of 120x).&lt;br /&gt;
&lt;br /&gt;
=== Running a NCCBF Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the current release of EM.Cube's [[Planar Module]], the NCCBF MoM solver works with any number of distinct, finite-sized arrays if they are excited with one of the following three source types:&lt;br /&gt;
&lt;br /&gt;
# Gap Sources&lt;br /&gt;
# Probe Sources&lt;br /&gt;
# Plane Wave Sources&lt;br /&gt;
&lt;br /&gt;
Note that you can have several coexisting finite arrays with different element spacings (or different periodicities). You can also have regular (aperiodic) objects coexisting with your collection of finite arrays. In that case, the NCCBF process will create entire-domain basis functions for the elements of the finite arrays, while the regular method of moments will apply to the aperiodic portions of your planar structure. This flexibility makes NCCBF a very versatile and powerful technique.&lt;br /&gt;
&lt;br /&gt;
There are a few rules that must be followed and observed when planning a NCCBF simulation. '''Each finite-sized array must be constructed using an EM.Cube &amp;amp;quot;Array Object&amp;amp;quot;. Additionally, each array object must stand alone in a dedicated trace or embedded object set of its own.''' In other words, if an array object belongs to a trace or embedded object set that contains other objects, it will be excluded from the NCCBF process and will get a regular MoM treatment. Keep in mind that [[Planar Module]] allows you to define different traces located at the same Z-plane, although the objects belonging to these separate traces cannot be connected to one another according to the planar meshing rules. Similarly, you can define two or more PEC via sets hosted by the same substrate layer. Therefore, if your planar structure contains finite arrays and aperiodic objects, you have to group them into separate traces or embedded object sets.&lt;br /&gt;
&lt;br /&gt;
To run an NCCBF simulation, open the '''Simulation Run Dialog''', and then open the'''Planar MoM Engine Settings Dialog'''. In the &amp;amp;quot;'''Finite Array Simulation'''&amp;amp;quot; section of the latter dialog, check the box labeled &amp;amp;quot;'''NCCBF Matrix Compression'''&amp;amp;quot;. This box is unchecked by default. Checking it enables the NCCBF Settings button. Click this button to open the NCCBF Settings Dialog. The dialog features a &amp;amp;quot;List of Unit Cells Used for NCCBF Matrix Compression&amp;amp;quot;. This list initially empty. To add unit cells to it, click the '''Add''' button of the dialog to open the &amp;amp;quot;'''Add Unit Cell Dialog'''&amp;amp;quot;. This dialog has two tables: Available Unit Cells on the left side and Associated Unit Cells on the right side. The left table shows a list of all the available, legitimate array objects in your project workspace. Remember that for an array object to be eligible for NCCBF compression, it has to stand alone on a dedicated trace or embedded object set, whichever applies. Select an array object from the left table and use the right arrow button (--&amp;amp;gt;) to move it to the right table to associate it with the new NCCBF unit cell. You can associate more than one array object with the same NCCBF unit cell. In this case, the parent elements of all the associated array objects collectively constitute the NCCBF unit cell. The NCCBF unit cell is the planar structure that is analyzed separately, first, as a stand-alone isolated element, and next, as a periodic unit cell, to generate the NCCBF entire-domain basis function solutions. It is therefore very important that the array objects be positioned carefully with respect to the origin of coordinated and relative to one another to form the correct NCCBF unit cell. Once you move one or more array object names to the &amp;amp;quot;Associated&amp;amp;quot; table on the right, you can move them back to the &amp;amp;quot;Available&amp;amp;quot; table on the left using the left arrow (&amp;amp;lt;--) button. You can also instruct EM.Cube to use only the isolated element solution by unchecking the box labeled &amp;amp;quot;'''Include Periodic Solution of Unit Cell'''&amp;amp;quot;. Once you are satisfied with the definition of your NCCBF unit cell, close the dialog to return to the NCCBF Settings dialog. Here you see the name of the newly added NCCBF unit cell in the list along with the Number of Solutions and the names of all the associated array objects for each NCCBF unit cell. You can modify each row using the '''Edit''' button or remove it from the list using the '''Delete''' button. Close the NCCBF Settings dialog to return to the Planar MoM Engine Settings dialog, and close the latter to return to the Simulation Run dialog, where you can now start the NCCBF simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM163.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar MoM's NCCBF Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM162.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Planar MoM's &amp;amp;quot;Add Unit Cell&amp;amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
=== Symmetries, Array Objects &amp;amp;amp; Composite Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] treats array objects in a special way. That is why you need to use array objects with certain rules for NCCBF simulations. In general, if the mesh of your planar structure involves a total of N vectorial basis functions, the MoM matrix will contain a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; elements. Instead of computing the entire N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; basis interactions, the Planar MoM simulation engine takes advantage of the inherent symmetry properties of the dyadic Green's functions and camputes the diagonal elements of the matrix and all the elements below the diagonal. This amounts to N.(N+1)/2 basis interactions. In many cases, the MoM matrix is symmetric, and the elements above the diagonal are simply mirror-image of the below-diagonal elements. In planar structures that involve both metal and slot traces, there will be sign reversals for some interactions.&lt;br /&gt;
&lt;br /&gt;
In many cases, especially in the areas that contain sizable numbers of rectangular mesh cells, the basis functions are naturally grouped into distinct sets that are called domains. As you saw earlier in the discussion of planar mesh generation, uniform domains with identical rectangular cells bring significant savings during the matrix fill process. Using the concept of domains renders the MoM matrix as a block matrix, whose blocks represent the interactions among the domains. The diagonal blocks therefore correspond to self-domain interactions. By a similar argument, if your planar structure is made up of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; domains, then a total of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) are computed. An EM.Cube array object consists of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical geometrical elements. If the array object belongs to a trace that has other objects in it, then by the planar mesh generator's rules, the elements of the array object are merged with the other objects on the same trace using the &amp;amp;quot;Union&amp;amp;quot; Boolean operation. If some array elements possibly have connections with other objects, such connections are taken care of in the meshing process. '''However, if an array object stands alone in a dedicated trace, then only the parent (first) element is meshed, and it mesh is copied and cloned for all the other elements of the array.''' This produces a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical domains of vectorial basis functions. A direct consequence of this is identification of only N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; unique domain-pair interactions or matrix blocks. In the absence of these symmetries, a total of at least N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) must be computed. To better illustrate such matrix fill savings, let us consider the previous, not-so-large, 8 × 8 array of patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. It was previously assumed that each rectangular patch antenna element involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. The numerical solution of this structure produces a linear system of total size N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 30,720. The total number of complex-valued elements of this matrix is 9.44E+08. This is the total number of highly sophisticated multi-dimensional integrals that you need to compute during a brute-force matrix fill process. For the sake of generality of the argument, here we ignore the huge additional savings that rectangular cells offer, and we assume that each unique domain-pair interaction involves N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 230,400 elements, except for the self-domain interaction which requires N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 115,440 integral computations. This amounts to a total of (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; -1) . N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 1.46E+07 integral computations, which is roughly N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;(64) times fewer and faster than a brute-force matrix fill process.&lt;br /&gt;
&lt;br /&gt;
To remedy the limitation that stand-alone array objects on dedicated traces cannot be connected to anything and therefore would severely limit the geometrical complexity of individual elements, EM.Cube allows you to build arrays of composite objects. A &amp;amp;quot;'''Composite Object'''&amp;amp;quot; in EM.Cube is a group of objects that are tied together only for the purpose of organization. As a result, the mesh of a composite object is the same as that of its constituent member objects (including any possible connections), had they not been grouped together. In a similar manner to simpler array objects, if a composite array stands alone in a dedicated trace or embedded object set, then only the parent composite object is meshed, and its mesh is copied and cloned for all the other composite elements of the array object. Furthermore, all the unique domain-pair interactions are identified during the matrix fill process, and lead to a major saving in computation time. '''Note that you can assign gap or probe sources to composite arrays in a similar way as you excite simpler array objects.''' If your planar structure involves a composite array, whose composite parent element has constituent members: Object1, Object2, ..., then the Gap Source dialog or Probe Source dialog will include the names of all the eligible constituent members (rectangle strips or PEC via objects) that can host the respective source types. '''Complex composite arrays hosting gap or probe source arrays or illuminated by plane wave sources are great candidates for NCCBF simulation.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM165.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Assigning gap sources to the elements of a composite array object.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Picasso</id>
		<title>EM.Picasso</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Picasso"/>
				<updated>2013-06-14T15:42:12Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Modeling Periodic Phased Arrays */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Picasso® is a versatile planar structure simulator for modeling and design of printed antennas, planar microwave circuits, and layered periodic structures. EM.Picasso's simulation engine is based on a 2.5-D full-wave Method of Moments (MoM) formulation that provides the ultimate modeling accuracy and computational speed for open-boundary multilayer structures. It can handle planar structures with arbitrary numbers of metal layouts, slot traces, vertical interconnects and lumped elements interspersed among different substrate layers. You can use EM.Picasso to model large finite-sized antenna arrays as well as infinite periodic structures such as frequency selective surfaces.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Picasso has been successfully used by numerous users around the globe in industry, academia and government. The new EM.Picasso 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has introduced far more powerful CAD utilities, greater geometrical variety, and a vast array of capabilities like parametric sweep, [[optimization]], data visualization and post-processing computations. The new foundation also facilitates import and export of many popular CAD formats and provides a seamless interface with our other simulation tools.&lt;br /&gt;
&lt;br /&gt;
== A Planar Method Of Moments Primer ==&lt;br /&gt;
&lt;br /&gt;
The Method of Moments (MoM) is a rigorous, full-wave numerical technique for solving open boundary electromagnetic problems. Using this technique, you can analyze electromagnetic radiation, scattering and wave propagation problems with relatively short computation times and modest computing resources. The method of moments is an integral equation technique; it solves the integral form of Maxwell’s equations as opposed to their differential forms that are used in the finite element or finite difference time domain methods.&lt;br /&gt;
&lt;br /&gt;
In a planar MoM simulation, the background structure is usually a layered planar structure that consists of one or more laterally infinite material layers. In EM.Cube’s [[Planar Module]], the layered structure is stacked along the Z axis. In other words, the dimensions of the layers are infinite along the X and Y axes. Metallic traces are placed at the boundaries between the substrate or superstrate layers. These are modeled by perfect electric conductor (PEC) traces or conductive sheet traces of finite thickness and finite conductivity. Some layers might be separated by infinite perfectly conducting ground planes. The two sides of a ground plane can be electromagnetically coupled through one or several slots or apertures. Such slots or apertures are modeled by magnetic currents and are realized and represented by perfectly magnetic conductor (PMC) traces. Furthermore, the metallic traces can be interconnected or connected to ground planes using embedded objects. Such objects can be used to model circuit vias, plated-through holes or dielectric inserts. These are modeled as volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
The currents in a planar MoM simulation are discretized as a collection of elementary currents with small finite spatial extents. These elementary currents are called basis functions and obviously have a vectorial nature. The total currents (solution of the problem) are summations of these elementary currents. The basis functions are well defined and easy to calculate; however, their amplitudes are initially unknown in a MoM problem. Through the planar MoM solution, you find these unknown amplitudes. Once the total currents are known, you can calculate the fields everywhere in the structure.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Green’s Functions ===&lt;br /&gt;
&lt;br /&gt;
The Green’s functions are the solutions of boundary value problems when they are excited by an elementary source. This is usually assumed to be an infinitesimally small vectorial point source. In order for Green’s functions to be computationally useful, they must have analytical closed forms like a mathematical expression, or one should be able to compute them using a recursive process. It turns out that only very few boundary value problems have closed-form Green’s functions. Planar layered structures with laterally infinite extents are one of those few cases, which can be represented by recursive dyadic Green's functions.&lt;br /&gt;
&lt;br /&gt;
In general, a structure may support both electric ('''J''') and magnetic ('''M''') currents. The total electric ('''E''') and magnetic ('''H''') fields can be expressed in terms of the electric and magnetic currents in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;E = E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;H = H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''GH&amp;lt;sub&amp;gt;M&amp;lt;/sub&amp;gt;''' are the dyadic Green’s functions for the electric and magnetic currents due to electric and magnetic current source, respectively, and '''E&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' and '''H&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' are the incident or impressed electric and magnetic fields, respectively. In these equations, '''r''' is the position vector of the observation point and '''r'''' is the position vector of the source point. V is the volume that contains all the sources and the volume integration is performed with respect to the primed coordinates. The incident or impressed fields provide the excitation of the structure. They may come from an incident plane wave or a gap source on a microstrip line, a short dipole, etc. The complexity of the Green’s functions depends on what is considered as the background structure. If you remove all the unknown currents from the structure, you are left with the background structure.&lt;br /&gt;
&lt;br /&gt;
=== Planar Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
To derive a system of integral equations, we enforce the boundary conditions on the integral definitions of the '''E''' and '''H''' fields as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_E(E) = L_E \bigg\{ E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_H(H) = L_H \bigg\{ H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM4(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' is the boundary value operator for the electric field and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' is the boundary value operator for the magnetic field. For example, '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E'''field vanish on perfect conductors:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = 0, \quad \mathbf{r} \in PEC &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM65.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E''' and '''H''' fields be continuous across an aperture in a perfect ground plane:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{E}^+ - \mathbf{E}^-) = 0 \\&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{H}^+ - \mathbf{H}^-) = 0&lt;br /&gt;
\end{cases} &lt;br /&gt;
\quad \Rightarrow \quad&lt;br /&gt;
\mathbf{M}^+(r) = \mathbf{M}^-(r), \quad r \in PMC&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM66(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the fact that the dyadic Green’s functions and the incident or impressed fields are all known, one can solve the above system of integral equations to find the unknown currents '''J''' and '''M'''.&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE's [[Planar Module|Planar module]], magnetic currents are always surface current with units of V/m. Electric currents, however, can be surface currents with units of A/m as in the case of metallic traces like microstrip lines, or they can be volume currents with units of A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; as in the case of perfectly conducting vias. Dielectric inserts are modeled as volume polarization currents that are related to the electric field '''E''' in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J}_p(r) = jk_0 Y_0(\varepsilon_r - \varepsilon_b)\mathbf{E}(r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant, &amp;lt;math&amp;gt;Y_0 = \tfrac{1}{Z_0} = \tfrac{1}{120\pi}&amp;lt;/math&amp;gt; is the free space intrinsic admittance, &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is the permittivity of the dielectric insert, and &amp;amp;epsilon;&amp;lt;sub&amp;gt;b&amp;lt;/sub&amp;gt; is the permittivity of its background layer. In a 2.5-D formulation, it is assumed that the volume currents have only a vertical component along the Z direction, and their circumferential components are negligible.&lt;br /&gt;
&lt;br /&gt;
=== Numerical Solution Of Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
The planar integral equations derived earlier can be solved numerically by discretizing the unknown currents using a proper meshing scheme. The original functional equations are reduced to discretized linear algebraic equations over elementary cells. The unknown quantities are found by solving this system of linear equations, and many other parameters can be computed thereafter. This method of numerical solution of integral equations is known as the Method of Moments (MoM). In this method, the unknown electric and magnetic currents are represented by expansions of basis functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;J(r) = \sum_{n=1}^N I_n^{(J)} f_n^{(J)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;M(r) = \sum_{k=1}^K V_k^{(M)} f_k^{(M)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_k^{(M)}&amp;lt;/math&amp;gt; are the generalized vector basis functions for the expansion of electric and magnetic currents, respectively, and &amp;lt;math&amp;gt;I_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;V_k^{(M)}&amp;lt;/math&amp;gt; are the unknown amplitudes of these basis functions, which have to be determined. Substituting these expansions into the integral equations generates a set of discretized integral equations, which can further be converted to a system of linear algebraic equations. This is accomplished by testing the discretized integral equations using the a set of test functions. In the method of moments, the Galerkin technique is typically used, which chooses the expansion basis functions as test functions. This leads to the following linear system:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
Z^{(EJ)} &amp;amp; T^{(EM)} \\&lt;br /&gt;
U^{(HJ)} &amp;amp; Y^{(HM)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
\cdot&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
I^{(J)} \\&lt;br /&gt;
V^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
=&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
V^{(E)} \\&lt;br /&gt;
I^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(EJ)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot &lt;br /&gt;
\iiint\limits_{V_j} dv' \overline{\overline{G}}_{EJ}(r|r') \cdot f_i^{(J)}(r')&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_i^{(E)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot E^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_i^{(H)} = \iiint\limits_{V_i} dv f_i^{(M)}(r) \cdot H^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similar expressions can be derived for the T&amp;lt;sup&amp;gt;(EM)&amp;lt;/sup&amp;gt;, U&amp;lt;sup&amp;gt;(HJ)&amp;lt;/sup&amp;gt; and Y&amp;lt;sup&amp;gt;(HM)&amp;lt;/sup&amp;gt;elements of the MoM matrix.&lt;br /&gt;
&lt;br /&gt;
=== Discretization Of Electric &amp;amp;amp; Magnetic Currents ===&lt;br /&gt;
&lt;br /&gt;
The right choice of the basis functions to represent the elementary currents is very important. It will determine the accuracy and computational efficiency of the resulting numerical solution. Rooftop basis functions are one of the most popular types of basis functions used in a variety of MoM formulations. The surface currents (whether electric or magnetic) are discretized using 2D rooftop basis functions shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image055_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Rooftop or RWG basis functions built over two rectangular, triangular or mixed cells.&lt;br /&gt;
&lt;br /&gt;
The rooftop basis functions are defined over two adjacent cells with a common edge of length. If the two cells are triangular, then the so-called RWG functions are obtained. It is also possible to define rooftop functions over two adjacent rectangular cells or two adjacent rectangular and triangular cells with a common edge. On a rectangular cell, the function is defined as having a (descending or ascending) linear profile in one direction and a constant profile in the other perpendicular direction.&lt;br /&gt;
&lt;br /&gt;
The volume polarization currents in 2.5-D MoM have a vertical direction along the Z-axis. These are discretized using prismatic basis functions that have either a rectangular or triangular base with a constant profile along the Z-axis.&lt;br /&gt;
&lt;br /&gt;
[[File:image065_tn.png]][[File:image066_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Prismatic basis functions built over single triangular and rectangular cells.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Planar Structure ==&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM14.png|thumb|350px|A typical planar layered structure]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] is intended for constructing and modeling planar layered structures. By a planar structure we mean one that contains a background substrate of laterally infinite extents, made up of one or more material layers all stacked up vertically along the Z axis. Objects of finite size are then interspersed among these substrate layers. This is somehow different than EM.Cube's other computational modules, which are geared for handling arbitrary 3D structures.&lt;br /&gt;
&lt;br /&gt;
In [[Planar Module]], the background structure, called &amp;amp;quot;'''Layer Stack-up'''&amp;amp;quot;, may involve one or more material layers of infinite extents along the X and Y axes but of finite thickness along the Z axis. When you start a new project, the background structure has a single vacuum layer. The layer stack-up is always terminated from the top and bottom by two infinite half-spaces. The terminating half-spaces might be the free space, or a perfect conductor (PEC ground), or any material medium. Most planar structures used in RF and microwave applications such as microstrip-based components have a PEC ground at their bottom. EM.Cube's default stack-up has a vacuum top half-space and a PEC bottom half-space. Some structures like stripline components require two bounding PEC grounds at both top and bottom.&lt;br /&gt;
&lt;br /&gt;
The finite-sized objects of a planar structure may include metal traces, slots and apertures, vertical vias and interconnects, or dielectric inserts including air voids inside the substrate layers. Metal traces are modeled as electric surface currents. These are planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on metal (PEC) traces and placed at the boundary (interface) plane between two substrate layers. Slots and apertures are modeled as magnetic surface currents on the surface of an infinite PEC plane and provide electromagnetic coupling between its top and bottom sides. These, too, are constructed using planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on slot (PMC) traces and placed at the boundary (interface) plane between two substrate layers. EM.Cube's [[Planar Module]] also allows prismatic objects that can be modeled by electric volume currents. These include vertical vias and dielectric inserts, and are called embedded object sets. [[Planar Module|Planar module]] does not allow construction of 3D CAD objects. Instead, you draw the cross section of prismatic objects as planar [[Surface Objects|surface objects]] parallel to the XY plane. EM.Cube then automatically extrudes these cross sections and constructs and displays 3D prisms over them. The prisms extend all the way across the thickness of the host substrate layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:PMOM14.png]]&lt;br /&gt;
Figure 1: A typical planar layered structure.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Defining Layer Stack-Up ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube’s [[Planar Module]], there is always a default background structure that consists of a finite vacuum layer sandwiched between a vacuum top half-space and a PEC bottom half-space. Every time you enter the [[Planar Module|Planar module]], the '''Stack-up Settings Dialog''' opens up. This is where you define the entire background structure. Once you close this dialog, you can open it again by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Layer Stack-up Settings...''' from the contextual menu. Or alternatively, you can select the menu item '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Layer Stack-up Settings...'''&lt;br /&gt;
&lt;br /&gt;
The Stack-up Settings dialog has two tabs: '''Layer Hierarchy''' and '''Embedded Sets'''. The Layer Hierarchy tab has a table that shows all the background layers in hierarchical order from the top half-space to the bottom half-space. It also lists the material label of each layer, Z-coordinate of the bottom of each layer, its thickness (in project units) and material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). There is also a column that lists the names of embedded object sets inside each substrate layer, if any.&lt;br /&gt;
&lt;br /&gt;
You can add new layers to your project's stack-up or delete its layers, or move layers up or down and thus change the layer hierarchy. To add a new background layer, click the arrow symbol on the '''Insert...'''button at the bottom of the dialog and select '''Substrate Layer''' from the button's dropdown list. A new dialog opens up where you can enter a label for the new layer and values for its material properties and thickness in project units.&lt;br /&gt;
&lt;br /&gt;
You can delete a layer by selecting its row in the table and clicking the '''Delete''' button. To move a layer up and down, click on its row to select and highlight it. Then click either the '''Move Up''' or '''Move Down''' buttons consecutively to move the selected layer to the desired location in the stack-up. Note that you cannot delete or move the top or bottom half-spaces.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM8(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Editing Substrate Layers ===&lt;br /&gt;
After creating a substrate layer, you can always edit its properties in the Layer Stack-up Settings dialog. Click on any layer's row in the table to select and highlight it and then click the '''Edit''' button. The substrate layer dialog opens up, where you can change the layer's label and assigned color. In the material properties section of the dialog, you can change the name of the material and its properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). To define electrical losses, you can either assign a value for electric conductivity (s), or alternatively, define a loss tangent for the material. In the latter case, check the box labeled &amp;amp;quot;'''Specify Loss Tangent'''&amp;amp;quot; and enter a value for it. In this case, the electric conductivity field becomes greyed out and reflects the corresponding s value at the center frequency of the project.&lt;br /&gt;
&lt;br /&gt;
You can also set the thickness of the substrate layer in the project units. Note that you cannot change the thickness of the top and bottom half-spaces. You can only change their material properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM9.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Substrate Layer dialog.&lt;br /&gt;
&lt;br /&gt;
You can also use EM.Cube's Material List to define the material properties of a substrate layer. In the Substrate Layer Dialog, click the '''Material''' button to open the '''Material List'''. In the Material List Dialog, pick any material or type the first letter of a material to highlight it. Then click the '''OK''' button or simply hit the '''Enter''' key of your keyboard to close the list and return to the substrate layer dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM10.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Materials dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Object Types ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] groups objects by their material and electromagnetic properties. Each object group shares the same color and same position in the layer stack-up. All the planar objects belonging to the same trace are located on the same substrate layer boundary. All the prismatic objects belonging to the same embedded set lie inside the same substrate layer and have the same material composition. Theoretically speaking, all the objects belonging to a group are governed by the same boundary conditions. EM.Cube’s [[Planar Module]] currently provides the following types of objects for building a planar layered structure:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC) Traces:''' These represent infinitesimally thin metallic objects that are deposited or metallized on or between substrate layers. PEC objects are modeled by surface electric currents that satisfy the PEC boundary condition.&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC) Traces:''' These are used to model slots and apertures in infinite PEC ground planes. PMC objects are always assumed to lie on an infinite horizontal PEC ground plane with zero thickness. They are modeled by surface magnetic currents, enforcing the continuity of tangential fields across the slots or apertures.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metals. They have a finite conductivity and a very small thickness. A surface impedance boundary condition is enforced on the surface of such traces.&lt;br /&gt;
# '''PEC Via Sets:''' These are metallic objects such as shorting pins, interconnect vias, plated-through holes, etc. that are grouped together as prismatic object sets. The embedded objects are modeled as vertical volume conduction currents.&lt;br /&gt;
# '''Embedded Dielectric Sets:''' These are prismatic dielectric objects inserted inside a substrate layer. You can define a finite permittivity and conductivity for such objects, but their height is always the same as the height of their host layer. The embedded dielectric objects are modeled as vertical volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
=== Defining Traces &amp;amp;amp; Object Sets ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]], the project workspace looks empty, and there are no finite objects in it. However, a default background structure is always assumed to exist by default. Objects are defined as part of traces or embedded sets. Once defined, you can see a list of project objects in the '''Physical Structure''' section of the Navigation Tree. Traces and object sets can be defined either from Layer Stack-up Settings dialog or from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
In the '''Layer Stack-up Settings''' dialog, you can add a new trace to the stack-up by clicking the arrow symbol on the '''Insert''' button of the dialog. You have to choose from '''Metal (PEC)''', '''Slot (PMC)''' or '''Conductive Sheet''' options. A respective dialog opens up, where you can enter a label and assign a color other than default ones. Once a new trace is defined, it is added, by default, to the top of the stack-up table underneath the top half-space. From here, you can move the trace down to the desired location on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Every time you define a new trace, it is also added under the respective category in the Navigation Tree. Alternatively, you can define a new trace from the Navigation Tree by right clicking on one of the trace type names and selecting '''Insert New PEC Trace...'''or '''Insert New PMC Trace...'''or '''Insert New Conductive Sheet Trace...'''A respective dialog opens up for setting the trace properties. Once you close this dialog, it takes you directly to the Layer Stack-up Settings dialog so that you can set the right position of the trace on the stack-up.&lt;br /&gt;
&lt;br /&gt;
=== Drawing Planar Objects ===&lt;br /&gt;
&lt;br /&gt;
As soon as you start drawing geometrical objects in the project workspace, the Physical Structure section of the Navigation Tree gets populated. The names of traces are added under their respective trace type category, and the names of objects appear under their respective trace group. At any time, one and only one trace is active in the project workspace. An active trace is where all the new objects you draw belong to. When you define a new trace, it is set as active and you can immediately start drawing new objects on that trace. You can also set any trace active at any time by right clicking its name on the Navigation Tree and selecting '''Activate''' from the contextual menu. The name of the active trace is always displayed in bold letter in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM13.png]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] has a special feature that makes construction of planar structures quite easy and straightforward. '''The active work plane of the project workspace is always set at the plane of the active trace.''' In EM.Cube's other modules, all objects are drawn in the XY plane (z = 0) by default. In [[Planar Module]], all new objects are drawn on a horizontal plane that is located at the Z-coordinate of the currently active trace. As you change the active trace or add a new trace, you will also change the active work plane.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Metallic Traces ===&lt;br /&gt;
&lt;br /&gt;
A trace is a group of finite-sized planar objects that have the same conductive properties and same Z-coordinate. In other words, they are located on the same horizontal plane, or at the same vertical level on the layer stack-up. You can define two types of metallic traces in the [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
# '''PEC Traces:''' These represent perfect conductor objects that have zero thickness and no editable material properties.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metal objects. They have a very small finite thickness t and a finite conductivity s.&lt;br /&gt;
&lt;br /&gt;
The conductive sheet traces are modeled using the surface impedance boundary condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = -Z_s\mathbf{J_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM17(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;Z_s&amp;lt;/math&amp;gt; is the surface impedance of the conductive sheet. If the thickness of the sheet is greater than the skin depth of the metal at the project frequency, then the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1+j}{\sigma \delta}, \quad \delta = \sqrt{\dfrac{2}{k_0 Z_0 \sigma}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM18.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the thickness t of the sheet is less than the skin depth, then the conductive sheet transition boundary condition is used instead, and the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1}{[j k_0 Y_0 (\varepsilon_r - 1) + \sigma] \tau} = \dfrac{1}{\sigma_{tot} \tau} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM19(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]] with no traces defined, if you simply draw a new object, a default PEC trace is created and added to the Navigation Tree to hold that object. Alternatively, you can define your own new traces from the Layer Stack-up Settings dialog or directly from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
NOTE: Two or more PEC and conductive sheet traces can coexist at the same Z-coordinate. In this case, the Layer Stack-up Settings dialog shows these trace rows stacked up on top of each other between their common top and bottom substrate layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM15.png]] [[File:PMOM16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PEC and Conductive Sheet Trace dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Slot Traces ===&lt;br /&gt;
&lt;br /&gt;
Slots and apertures are cut-out and removed metal in an infinite perfectly conducting (PEC) ground plane. When a slot is excited, tangential electric fields are formed on the aperture, which can be modeled as finite magnetic surface currents confined to the area of the slot. Therefore, instead of modeling the electric surface currents on the PEC ground around the slot, one can alternatively model the finite-extent magnetic surface currents on PMC traces. In EM.Cube's [[Planar Module]], you define slot objects under PMC traces. A PMC trace at a certain Z-plane implies the presence of an infinite PEC plane at that Z-coordinate. Therefore, you do not need to define an additional PEC plane at that location on the layer stack-up. The slot (PMC) objects provide the electromagnetic coupling between the two sides of this infinite ground plane. By the same token, you cannot place a PEC trace and a PMC trace at the same Z-level, as the latter's ground will short the former. However, you can define two or more PMC traces at the same Z-plane. In this case, all the slot objects lie on the same infinite PEC ground plane. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM20.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PMC Trace dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Embedded Object Sets ===&lt;br /&gt;
&lt;br /&gt;
Embedded object sets represent short material insertions inside substrate layers. They can be metal or dielectric. Metallic embedded objects can be used to model vias, plated-through holes, shorting pins and interconnects. These are called PEC via sets. Embedded dielectric objects can be used to model air voids, thin films and material inserts in metamaterial structures. Embedded magnetic object are not currently supported by EM.Cube’s [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Embedded objects can be defined either from the Layer Stack-up Settings dialog or directly from the Navigation Tree. In the former case, open the &amp;amp;quot;Embedded Sets&amp;amp;quot; tab of the stack-up dialog. This tab has a table that lists all the embedded object sets along with their material type, the host substrate layer, the host material and their height. &lt;br /&gt;
&lt;br /&gt;
{{Note|The height of an embedded object is always identical to the thickness of its host substrate layer.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up dialog showing the Embedded Sets tab.&lt;br /&gt;
&lt;br /&gt;
To add a new object set, click the arrow symbol on the '''Insert''' button of the dialog and select one of the two options, '''PEC Via Set''' or '''Embedded Dielectric Set''', from the dropdown list. This opens up a new dialog where first you have to set the host layer of the new object set. A dropdown list labeled &amp;amp;quot;'''Host Layer'''&amp;amp;quot; gives a list of all the available finite substrate layers. You can also set the properties of the embedded object set, including its label, color and material properties. Keep in mind that you cannot control the height of embedded objects. Moreover, you cannot assign material properties to PEC via sets, while you can set values for the '''Permittivity'''(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity'''(&amp;amp;sigma;) of embedded dielectric sets. Vacuum is the default material choice. You may use EM.Cube's Material List for this purpose, which can be opened up by clicking the '''Material''' button. Once embedded object sets are added to the Embedded Sets table, you can edit their properties at any time by selecting their row and clicking the '''Edit''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM21.png]] [[File:PMOM22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The [[Planar Module]]'s PEC Via Set and Embedded Dielectric Set dialogs.&lt;br /&gt;
&lt;br /&gt;
To define an embedded set from the Navigation Tree, right click on the '''Embedded Object Sets''' item in the '''Physical Structure''' section of the Navigation Tree and select either '''Insert New PEC Via Set...''' or '''Insert New Embedded Dielectric Set...''' The respective New Embedded Object Set dialog opens up, where you set the properties of the new object set. As soon as you close this dialog, it takes you to the Layer Stack-up Settings dialog, where you can examine the location of the new object set on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
After a new embedded object set has been defined and added to the Navigation Tree, it becomes the active trace. You are now ready to create geometrical objects in the new active trace. Remember that [[Planar Module]] does not allow you to draw 3D objects. The solid object buttons in the '''Object Toolbar''' are disabled to prevent you from doing so. Instead, you draw planar [[Surface Objects|surface objects]] as the cross section of embedded sets. EM.Cube extends these planar objects across their host layer automatically and displays them as wire-frame, 3D extruded objects. Extrusion of embedded object sets happen after meshing and before every simulation. You can enforce this extrusion manually by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Update Planar Structure...''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Rules &amp;amp;amp; Limitations ===&lt;br /&gt;
&lt;br /&gt;
# Terminating PEC ground planes at the top or bottom of a planar structure are defined as PEC top or bottom half-spaces, respectively.&lt;br /&gt;
# A PEC ground plane placed in the middle of a substrate stack-up requires at least one slot object to provide electromagnetic coupling between its top and bottom sides. In this case, a PMC trace is rather introduced at the given Z-plane, which implies the presence of an infinite PEC ground although it is not explicitly indicated in the Navigation Tree.&lt;br /&gt;
# Metallic and slot traces cannot coexist on the same Z-plane. However, you can stack up multiple PEC and conductive sheet traces at the same Z-coordinate. Similarly, multiple PMC traces can be placed at the same Z-coordinate.&lt;br /&gt;
# Metallic and slot traces are strictly defined at the interface planes between substrate layers. To define a suspended metallic trace in a substrate layer (as in the case of the center conductor of a stripline), you must split the dielectric layer into two thinner layers and place your PEC trace at the interface between them.&lt;br /&gt;
# The current version of the Planar MoM simulation engine is based on a 2.5-D MoM formulation. Only vertical volume currents and no circumferential components are allowed on embedded objects. The 2.5-D assumption holds very well in two cases: (a) when embedded objects are very thin with a very small cross section (with lateral dimensions less than 2-5% of the material wavelength) or (b) when embedded objects are very short and sandwiched between two closely spaced PEC traces or grounds from the top and bottom.&lt;br /&gt;
# The current release of EM.Cube allows any number of PEC via sets collocated in the same substrate layer. However, you can define only one embedded dielectric object set per substrate layer, and no vias sets collocated in the same layer. Note that the single set can host an arbitrary number of embedded dielectric objects of the same material properties.&lt;br /&gt;
&lt;br /&gt;
=== Managing Objects, Traces &amp;amp;amp; Sets ===&lt;br /&gt;
&lt;br /&gt;
You can manage your project's layer hierarchy from the Layer Stack-up Settings dialog. You can add, delete and move around substrate layers, metallic and slot traces and embedded object sets. Metallic and slot traces can move among the interface planes between neighboring substrate layers. Embedded object sets including PEC vias and finite dielectric objects can move from substrate layer into another. When you delete a trace from the Layer Stack-up Settings dialog, all of its objects are deleted from the project workspace, too. You can also delete metallic and slot traces or embedded object sets from the Navigation Tree. To do so, right click on the name of the trace or object set in the Navigation Tree and select '''Delete''' from the contextual menu. You can also delete all the traces or object sets of the same type from the contextual menu of the respective type category in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
For better visualization of your planar structure, EM.Cube displays a virtual domain in a default orange color to represent part of the infinite background structure. The size of this virtual domain is a quarter wavelength offset from the largest bounding box that encompasses all the finite objects in the project workspace. You can change the size of the virtual domain or its display color from the Domain Settings dialog, which you can access either by clicking the '''Computational Domain''' [[File:domain_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Domain Settings...''' from the Simulate Menu or by right clicking the '''Virtual Domain''' item of the Navigation Tree and selecting '''Domain Settings...''' from the contextual menu, or using the keyboard shortcut '''Ctrl+A'''. But keep in mind that the virtual domain is only for visualization purpose and does not affect the MoM simulation. The virtual domain also shows the substrate layers in translucent colors. As you change the colors assigned to the substrate layers, you will see a multilayer virtual domain box surrounding your project structure.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_phys5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Virtual Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the last defined trace or embedded object set is active. You can activate any trace or embedded object set at any time for drawing new objects. You can move one or more selected objects from any trace or embedded object set to another group of the same type or of different type. First select an object in the project workspace or in the Navigation Tree. Then, right click on the highlighted selection and select '''Move To &amp;amp;gt;''' from the contextual menu. This opens another sub-menu containing '''Planar''' and a list of all the other EM.Cube modules that have already defined object groups. Select '''Planar''' or any other available module, and yet another sub-menu opens up with a list of all the available traces and embedded object sets already defined in your project. Select the desired group, and all the selected objects will move to that group. When selecting multiple objects from the Navigation Tree, make sure that you hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting a group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Discretizing Planar Structures ==&lt;br /&gt;
&lt;br /&gt;
=== The Planar MoM Mesh ===&lt;br /&gt;
&lt;br /&gt;
The method of moments (MoM) discretizes all the finite-sized objects of a planar structure (excluding the background structure) into a set of elementary cells. The planar integral equations are then solved approximately on these elementary cells. As this method does not require a discretization of the entire computational domain, it is often computationally much more efficient than differential-based techniques like FEM or FDTD, which mesh the whole domain. The accuracy of the MoM numerical solution depends greatly on the quality of the generated mesh. The mesh density gives a measure of how electrically small these elementary cells are. Low mesh resolutions compromise the accuracy of the numerical solution. On the other hand, very high mesh densities may lead to numerical instability of the method of moments. As a rule of thumb, a mesh density of about 20-30 cells per effective wavelength usually yields acceptable results. Yet, for structures with lots of fine geometrical details or for highly resonant structures, higher mesh densities may be required. Also, the particular simulation data that you seek in a project will also influence your choice of mesh resolution. For example, far field characteristics like radiation patterns are less sensitive to the mesh density than field distributions on a structure with a highly irregular shape and a rugged boundary.&lt;br /&gt;
&lt;br /&gt;
It is well known that any planar geometry with any degree of complexity can be reasonably discretized using a surface triangular mesh. EM.Cube's [[Planar Module]] provides a versatile triangular mesh generator for this purpose. This generates a regular mesh, in which most of the triangular cells have almost equal areas. The uniformity or regularity of mesh is an important factor in warranting a stable numerical solution. A highly incongruous mesh may even produce completely erroneous results. EM.Cube's [[Planar Module]] also offers another mesh generator that creates a &amp;amp;quot;Hubrid&amp;amp;quot; planar mesh combining triangular and rectangular cells. Although triangular cells are more versatile than rectangular cells in adapting to arbitrary geometries, many practical planar structures contain a large number of rectangular parts like patch antennas, microstrip lines and components, etc.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM32.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar hybrid and triangular meshes for rectangular patches.&lt;br /&gt;
&lt;br /&gt;
=== The Rectangular Mesh Advantage ===&lt;br /&gt;
&lt;br /&gt;
Rectangular cells offer a major advantage over triangular cells for numerical MoM simulation of planar structures. This is due to the fact that the dyadic Green's functions of planar layered background structures are space-invariant on the transverse plane. Recall that the elements of the moment matrix are given by the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(\mu \nu)} = \iiint_{V_i} d\nu f_i^{(\mu)}(r) \cdot \iiint_{V_j}d\nu ' \overline{\overline{G}}_{\mu \nu}(r|r') \cdot f_j^{(v)}(r') &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM24(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the spatial-domain dyadic Green's functions are a function of the observation and source coordinates, '''r'''and '''r' '''. The MoM matrix elements can indeed be interpreted as interactions between two elementary basis functions '''f&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;(r)''' and '''f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;(r')''' on that particular background structure. The spatial-domain dyadic Green's functions can themselves be expressed in terms of the spectral-domain dyadic Green's functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\overline{\overline{G}}_{\mu \nu}(r|r') = \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{\overline{\overline{G}}}_{\mu \nu} (k_p, z|z') e^{-j[k_x(x-x')+k_y(y-y')]} \, dk_x \, dk_y ,&lt;br /&gt;
\quad {k_p}^2 = {k_x}^2 + {k_y}^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM26.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the doubly infinite integration is performed with respect to the spectral [[variables]] k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;. As can be seen from the above expression, the spatial-domain dyadic Green's functions are functions of z, z', as well as (x-x') and (y-y'). The MoM matrix elements can now be transformed into the spectral domain as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
Z_{ij}^{(\mu \nu)} = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{f}_i^{(\mu)} (k_x, k_y) \cdot \tilde{\overline{\overline{G}}}_{\mu \nu} (k_{\rho}, z|z') \cdot&lt;br /&gt;
\tilde{f}_j^{(\nu)} (k_x, k_y) \, dk_x \, dk_y&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM27.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the tilde symbol signifies the Fourier transform of a function defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\tilde{f}(k_x, k_y) = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
f(x,y) e^{j(k_x x + k_y y)} \, dx \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM28(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rectangular cells have simple Fourier transforms. The rooftop basis functions are triangular functions in the direction of current flow and constant in the perpendicular direction. This means that their Fourier transform is a product of a sinc-squared function along one spectral direction and a sinc function along the other. You can see from the figure below that if one deals with a rectangular mesh of identical cells (all equal and parallel), then the interactions among the rooftop basis functions become a functions of the index differences and not the absolute indices:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{(i,k)|(j,l)} = Z \Big\langle f_{i,k}(x,y)| f_{j,l}(x', y') \Big\rangle = Z_{(i-j)|(k-l)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM29.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equation, the vectorial rooftop basis functions have explicit, double indices: i and k along the local X and Y directions, respectively, for the test (observation) basis function, and j and l along the local X and Y directions, respectively, for the expansion (source) basis function. Thus, uniform rectangular cells, i.e. structured rectangular cells of identical size aligned in the same direction, can speed up the planar MoM simulation significantly due to these symmetry and the invariance properties. For example, all the self-interactions are identical regardless of the location of a rooftop basis function. This reduces the matrix fill process for a total of N rooftop basis functions from an N2 process to one of order N.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Pairs of rooftop basis functions that have identical MoM interactions.&lt;br /&gt;
&lt;br /&gt;
=== Generating A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
The planar MoM mesh generation process involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties&lt;br /&gt;
# Creating and viewing the mesh&lt;br /&gt;
# Verifying the mesh for integrity&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] offers two mesh generation algorithms for discretizing planar structures: Hybrid and Triangular. The hybrid mesh consists of both rectangular and triangular cells. The hybrid mesh generator creates a kind of “object-centric” mesh that depends on the geometry of each object. It tries to discretize rectangular objects with rectangular cells as much as possible. In certain connection areas, a few triangular cells might be inserted to provide the mesh transition for current continuity. All the non-rectangular objects (circular, polygonal, etc.) are discretized using triangular cells. The triangular mesh generator, on the other hand, discretizes the planar objects with all triangular cells regardless of their shape. The only exceptions are feed lines that contain gap sources or lumped elements, which are always meshed with rectangular cells.&lt;br /&gt;
&lt;br /&gt;
You can generate and view a planar mesh by clicking the '''Show Mesh''' [[File:mesh_tool.png]] button of the '''Simulate Toolbar''' or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' or using the keyboard shortcut '''Ctrl+M'''. When the mesh of the planar structure is displayed in EM.Cube’s project workspace, its &amp;amp;quot;Mesh View&amp;amp;quot; mode is enabled. In this mode you can perform view operations like rotate view, pan or zoom, but you cannot create new objects or edit existing ones. To exit the mesh view mode, press the keyboard's '''Esc Key''' or click the '''Show Mesh''' [[File:mesh_tool.png]] button once again.&lt;br /&gt;
&lt;br /&gt;
Once a mesh is generated, it stays in the memory until the structure is changed or the mesh density or other settings are modified. Every time you view mesh, the one in the memory is displayed. You can force EM.Cube to create a new mesh from the ground up by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''Planar Mesh''' item in the '''Discretization''' section of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Mesh Density ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, generates a hybrid mesh of your planar structure with a mesh density of 20 cells per effective wavelength. It is important to understand the concept of mesh density (either hybrid or triangular) as used by [[Planar Module]]. It gives a measure of the number of cells per effective wavelength that are placed in various regions of your planar structure. The higher the mesh density, the more cells are created on the geometrical objects. Keep in mind that only the finite-sized objects of your structure are discretized. No mesh is generated for the substrate layers of your background structure. The free-space wavelength is defined as &amp;lt;math&amp;gt;\lambda_0 = \tfrac{2\pi f}{c}&amp;lt;/math&amp;gt;, where f is the center frequency of your project and c is the speed of light in the free space. The effective wavelength is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where e&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity.&lt;br /&gt;
&lt;br /&gt;
The effective permittivity is defined differently for different types of traces and embedded object sets. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivity of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivity of the two substrate layers just above and below the metallic trace. These definitions of effective permittivity are consistent with the effective propagation constant of transmission lines realized on such trace types. For embedded object sets, the effective permittivity is defined as the largest of the permittivities of all the substrate layers and embedded dielectric sets. In all cases, for the purpose of calculating the effective wavelength, only the real part of the permittivities are considered. The reason for using an effective wavelength so defined for determination of mesh resolution is to make sure that enough cells are placed in areas that might feature higher field concentration.&lt;br /&gt;
&lt;br /&gt;
Due to the different definitions of effective wavelength in different parts of your planar structure, you will see different mesh resolutions. For example, if you structure has several substrate layers with different permittivities, the mesh of metal traces on layers with a higher permittivity value will feature more cells than the mesh of metal traces on layers with a lower permittivity value even though the mesh density value is the same for the whole structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM30.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of two rectangular patches at two different planes. The lower substrate layer has a higher permittivity.&lt;br /&gt;
&lt;br /&gt;
=== Customizing A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the planar mesh including the mesh type and density from the planar Mesh Settings Dialog. You can also change these settings while in the mesh view mode, and you can update the changes to view the new mesh. To open the mesh settings dialog, either click the '''Mesh Settings''' [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Mesh Settings...''', or by right click on the '''Planar 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 mesh algorithm from the dropdown list labeled '''Mesh Type''', which offers two options: '''Hybrid''' and '''Triangular'''. You can also enter a different value for '''Mesh Density''' in cells per effective wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;). For each value of mesh density, the dialog also shows the average &amp;amp;quot;Cell Edge Length&amp;amp;quot; in the free space. To get an idea of the size of mesh cells on the traces and embedded object sets, divide this edge length by the square root of the effective permittivity a particular trace or set. Click the '''Apply''' button to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM31.png]]&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Of Connected Trace Objects ===&lt;br /&gt;
&lt;br /&gt;
Using the generated mesh of a planar structure, EM.Cube creates a set of vectorial basis functions that are passed to the input file of the Planar MoM simulation engine. This engine requires edge-based basis functions. The common edges between adjacent cells are used to define edge-based rooftop or RWG basis functions. These elementary basis functions indeed provide the current flow and warrant the continuity among the mesh cells. Therefore, when two objects overlap or share a common edge, the connection between them must be translated into &amp;amp;quot;bridge&amp;amp;quot; basis functions, which carry the information about current flow to the simulation engine.&lt;br /&gt;
&lt;br /&gt;
'''The most important rule of object connections in EM.Cube's [[Planar Module]] is that only objects belonging to the same trace can be connected to one another.''' For example, if two objects reside on the same Z-plane and geometrically have a common edge which you can clearly see in the project workspace, but organizationally they belong to two different metal traces, then the bridge basis functions will not be generated between them, and the simulation engine will see them disconnected. If two objects belong to the same trace and have a common overlap area, EM.Cube first merges the two objects using the &amp;amp;quot;Boolean Union&amp;amp;quot; operation and converts them into a single object for the purpose of meshing. The mesh of &amp;amp;quot;unioned&amp;amp;quot; areas is usually made up of triangular cells. If two objects reside on the same Z-plane and geometrically overlap with each other but organizationally belong to two different trace groups, incongruous, overlapped cells will be generated that will either blow up the linear system or produce completely wrong simulation results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM36.png|250px]] [[File:PMOM38.png|250px]] [[File:PMOM37.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Two overlapping planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
When two planar objects belonging to the same trace are connected via a common edge, it is critical to generate a consistent mesh at the connection area and properly transition and merge the meshes of the individual objects. EM.Cube's triangular planar mesh generator simply &amp;amp;quot;unions&amp;amp;quot; the two objects and generates a connected mesh. EM.Cube's hybrid planar mesh generator, however, behave differently when it comes to the connection between rectangular objects. The rule in this case is the following:&lt;br /&gt;
&lt;br /&gt;
* If the two connected rectangular objects have the same side dimensions along the common linear edge with perfect alignment, a rectangular bridge mesh is produced.&lt;br /&gt;
* If the two connected rectangular objects have different side dimensions along the common linear edge or have edge offset, a set of triangular cells is generated along the edge of the object with the large side.&lt;br /&gt;
* Rectangular objects that contain gap source or lumped elements, always have a rectangular mesh around the gap area.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM33.png|250px]] [[File:PMOM35.png|250px]] [[File:PMOM34.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edge-connected rectangular planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
=== Mesh of Embedded Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] models embedded objects as vertical volume currents. The vectorial basis functions in this case are Z-directed prisms as opposed to rooftop basis functions. If an embedded object is located under or above a metallic trace or connected from both top and bottom, it is critical to create mesh continuity between the embedded object and its connected metallic traces. In other words, the generated mesh must ensure current continuity between the vertical volume currents and horizontal surface currents. EM.Cube’s planar mesh generator automatically handles situations of this kind and generates all the required connection meshes.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that EM.Cube’s Planar MoM engine uses a 2.5-D approximation, whereby only vertical volume currents are assumed inside embedded objects. When the height of an embedded object is small (as should typically be under the 2.5-D assumption), one prismatic cell is placed across the object along the Z-axis. Long PEC vias with a very small radius do also satisfy the 2.5-D assumption. In this case, the long via objects are discretized further along the Z direction and generate multiple stacked cells. Several prismatic cells along the Z-axis may increase the simulation time drastically. This is due to the fact that the host layer is effectively subdivided into a number of sub-layers and the stacked cells are treated as stacked vias embedded inside these sub-layers. As a result, the simulation engine needs to compute all the dyadic Green’s functions accounting for the interactions between all such sub-layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM39.png|400px]] [[File:PMOM40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of a vertical PEC via connecting two horizontal metallic strips. The shorter via has one prismatic cell along the Z direction, while the longer via is discretized into several stacked cells.&lt;br /&gt;
&lt;br /&gt;
=== Refining Mesh At Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
It is very important to apply the right mesh density to capture all the geometrical details of your planar structure. This is especially true for &amp;amp;quot;field discontinuity&amp;amp;quot; regions such as junction areas between objects of different side dimensions, where larger current concentrations are usually observed at sharp corners, or at the connection areas between metallic traces and PEC vias, as well as the areas around gap sources and lumped elements, as these create voltage or current discontinuities. For large planar structures, using a higher mesh density may not always be a practical option since it will quickly lead to a very large MoM matrix and thus growing the size of the numerical problem. Sometimes a slightly non-uniform mesh still produces stable numerical results. In other words, you may choose to increase the mesh resolution around the discontinuity regions only.&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh around geometrical and field discontinuities. You can check the check box labeled &amp;amp;quot;'''Refine Mesh at Junctions'''&amp;amp;quot;, which increases the mesh resolution at the connection area between rectangular objects. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Gap Locations'''&amp;amp;quot;, which may prove particularly useful when gap sources or lumped elements are placed on a short transmission line connected from both ends. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Vias'''&amp;amp;quot;, which increases the mesh resolution on the cross section of embedded object sets and by extension at the connection regions of the metallic objects connected to them. EM.Cube typically doubles the mesh resolution locally at the discontinuity areas when the respective boxes are checked.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM41.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Refining the planar mesh at the via and surrounding area.&lt;br /&gt;
&lt;br /&gt;
=== Checking Mesh Integrity ===&lt;br /&gt;
&lt;br /&gt;
You should always visually inspect EM.Cube's default generated mesh to see if the current mesh settings have produced an acceptable mesh. You may often need to change the mesh density or other parameters and regenerate the mesh. The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, highly incongruous meshes should always be avoided. Sometimes EM.Cube's default mesh may contain very narrow triangular cells due to very small angles between two edges. In some rare cases, extremely small triangular cells may be generated, whose area is a small fraction of the average mesh cell. These cases typically happen at the junctions and other discontinuity regions or at the boundary of highly irregular geometries with extremely fine details. In such cases, increasing or decreasing the mesh density by one or few cells per effective wavelength often resolves that problem and eliminates those defective cells. Nonetheless, EM.Cube's planar mesh generator offers an option to identify the defective triangular cells and either delete them or cure them. By curing we mean removing a narrow triangular cell and merging its two closely spaced nodes to fill the crack left behind.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM44.png|400px]] [[File:PMOM42.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Deleting or curing defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
EM.Cube by default deletes or cures all the triangular cells that have angles less than 10º. Sometimes removing defective cells may inadvertently cause worse problems in the mesh. You may choose to disable this feature and uncheck the box labeled &amp;amp;quot;'''Remove Defective Triangular Cells'''&amp;amp;quot; in the Planar Mesh Settings dialog. You can also change the value of the minimum allowable cell angle.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM43(1).png]]&lt;br /&gt;
&lt;br /&gt;
Setting the minimum allowable angle for non-defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
=== Locking Mesh Of Object Groups ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides different ways of controlling the mesh of a planar structure locally. Earlier you saw how to increase the mesh resolution at the discontinuity regions without affecting the mesh of uniform or regular areas of a planar structure. Another way of local mesh control is to lock the mesh density of certain traces or object sets. The mesh density that you specify in the Planar Mesh Settings dialog is a global parameter and applies to all the traces and embedded object sets in your project. However, you can lock the mesh of individual PEC, PMC and conductive sheet traces or embedded objects sets. In that case, the locked mesh density takes precedence over the global density. Note that locking mesh of object groups, in principle, is different than refining the mesh at discontinuities. In the latter case, the mesh of connection areas is affected. However, objects belonging to different traces cannot be connected to one another. Therefore, locking mesh can be useful primarily for isolated object groups that may require a higher (or lower) mesh resolution.&lt;br /&gt;
&lt;br /&gt;
You can lock the local mesh density by accessing the property dialog of a specific trace or embedded object set and checking the box labeled '''Lock Mesh'''. This will enable the '''Mesh Density''' box, where you can accept the default global value or set any desired new value.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM45.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of an object group from its property dialog.&lt;br /&gt;
&lt;br /&gt;
=== Local Mesh Control Using Polymesh Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to manually and individually mesh geometrical objects using the concept of polymesh. The Polymesh tool converts a planar surface object to a set of interconnected triangular cells, which is basically identical to its triangular surface mesh. Simply select an object and click the '''Polymesh Tool''' [[File:polymesh_tool_tn.png]] button of '''Tools Toolbar''', or select '''Menu &amp;amp;gt; Tools &amp;amp;gt; Polymesh''', or use the keyboard shortcut '''P'''. You can also right click on a selected object and select '''Polymesh''' from the contextual menu. From the Polymesh Dialog, you can control the mesh resolution through the '''Edge Length''' parameter, which is expressed in project units. Note that unlike the planar mesh generator which uses a frequency-dependent mesh density to drive the mesh resolution, the ploymesh's edge length is fixed and purely geometrical and does not change with the project frequency. '''EM.Cube's mesh generator considers a polymesh object as a &amp;amp;quot;final&amp;amp;quot; mesh and reproduces it &amp;amp;quot;As Is&amp;amp;quot; during the meshing process.'''&lt;br /&gt;
&lt;br /&gt;
You have access to every single node of a polymesh object and you can change its coordinates arbitrarily. You do this by opening the property dialog of a polymesh object and selecting a certain node index in the box labeled '''Active Node'''. You can also select a node by hovering the mouse over the node to highlight it and then click to select it. A red ball appears on the current active node. You can delete the nodes arbitrarily using the '''Delete''' button of the dialog, which results in lowering the mesh resolution at the location of the deleted node. Or you can insert new nodes in the faces of a polymesh object. To insert a node, first you have to select a face. Change the '''Mode''' option by selecting the '''Face''' radio button and then select the right '''Active Face''' index. A red triangular border appears around the selected face. You can also simply click on the surface of a face and select it using the mouse. With the desired face selected, click the '''Insert''' button of the dialog to create a new node at the centroid of the selected face. You can adjust the coordinates of the newly inserted node from the three X, Y and Z '''Coordinate''' boxes. Note that immediately after the insertion of a new node, the label of these coordinate boxes changes to &amp;amp;quot;'''New Node'''&amp;amp;quot; and they show the relative local X, Y and Z offsets with respect to the original node position. Once you close the Polymesh Dialog, the new node is added to the existing node list and can be edited later like the other polymesh nodes. By inserting a new node, you increase the mesh resolution locally and selectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM46(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Discretizing a planar surface object using EM.Cube's Polymesh tool.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that since a polymesh object it considered a final mesh, its mesh cannot be connected to other objects. In other words, bridge basis functions are not generated if even some of the polymesh edges may coincide with other objects' edges. A polymesh object is treated by the mesh generator as an isolated mesh. However, EM.Cube allows you to connect polymesh objects manually. To do so, bring two or more polymesh objects close to each other so that they have one or more common edges. No face overlaps are allowed in this case. Select the polymesh objects and click the '''Merge Tool'''[[File:merge_tool_tn.png]] button of '''Tools Toolbar''' to merge the polymesh objects into a single polymesh object. The new merged polymesh object will provide all the necessary bridge basis functions among the original, separate polymesh objects.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
In a typical electromagnetic simulation in EM.Cube's [[Planar Module]], you define a planar structure that consists of a layered background structure with a number of finite-sized metal and slot traces and possibly embedded metal or dielectric objects interspersed among the substrate layers. The planar structure is then excited by some sort of a signal source that induces electric currents on metal parts and magnetic currents on slot traces. The method of moments (MoM) solver computes these unknown electric and magnetic currents by discretizing the finite-sized objects. The induced currents, in turn, produce their own electric and magnetic fields which coexist (are superposed) with the impressed electric and magnetic fields of the signal source. From a knowledge of the near fields, EM.Cube calculates the port characteristics of the planar structure, if any ports have been defined. From a knowledge of the far fields, EM.Cube calculates the radiation or scattering characteristics of the planar structure.&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure in a number of different ways. The excitation source you choose depends on the observables you seek in your project. [[Planar Module]] provides the following source for exciting planar structures:&lt;br /&gt;
&lt;br /&gt;
* Lumped Sources with three varieties: [[#Gap Sources|Gap Sources]], [[#De-embedded Sources|De-embedded Sources]] and [[#Probe Sources|Probe Sources]]&lt;br /&gt;
* [[#Plane Wave Sources|Plane Wave Sources]]&lt;br /&gt;
* [[#Short Dipole Sources|Short Dipole Sources]]&lt;br /&gt;
* [[#Huygens Sources|Huygens Sources]]&lt;br /&gt;
&lt;br /&gt;
For antennas and planar circuits, where you typically define one or more ports, you usually use lumped sources. A lumped source is indeed a gap discontinuity that is placed on the path of an electric or magnetic current flow, where a voltage or current source is connected to inject a signal. Gap sources are placed across metal or slot traces. Probe sources are placed across vertical PEC vias. A de-embedded source is a special type of gap source that is placed near the open end of an elongated metal or slot trace to create a standing wave pattern, from which the scattering parameters can be calculated accurately. To calculate the scattering characteristics of a planar structure, e.g. its radar cross section (RCS), you excite it with a plane wave source. Short dipole sources are used to explore propagation of points sources along a layered structure. Huygens sources are virtual equivalent sources that capture the radiated electric and magnetic fields from another structure possibly in another EM.Cube computational module and bring them as a new source to excite your planar structure.&lt;br /&gt;
&lt;br /&gt;
=== Gap Sources ===&lt;br /&gt;
&lt;br /&gt;
A gap is an infinitesimally narrow discontinuity that is placed on the path of current flow on a feed line. In planar structures, feed lines are typically in the form of a microstrip, stripline, slotline or coplanar waveguide (CPW). You use rectangle strip objects to construct such feed lines. A gap source can be placed on any rectangle strip object on a PEC, PMC or conductive sheet trace. Depending on the type of the trace on which a gap source is placed, it will have a different physical interpretation.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PEC or conductive sheet trace can be regarded as a strip transmission line that carries electric currents along its length (local X direction). The characteristic impedance of the line is a function of its width (local Y direction). A gap source is placed somewhere along the length and across the width of such a rectangle strip object, thus creating an infinitesimally narrow gap at its location. In this case, the gap source represents an ideal voltage source in series with a lumped impedance that is connected across the gap to excite the strip transmission line. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the gap. The source pumps electric current into the line. If the voltage source is shorted (having a zero amplitude), then the gap acts like a series lumped element on the transmission line.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PMC trace can be regarded as a slot transmission line on an infinite PEC ground plane that carries a magnetic current along its length (local X direction). The characteristic impedance of the slot line is a function of its width (local Y direction). A slot gap source is placed somewhere along the length and across the width of the rectangle strip object on a PMC trace and creates an infinitesimally narrow gap at its location. In this case, the slot gap source represents an ideal current source with a shunt lumped admittance that is connected across the slot to excite the slot transmission line. When the admittance is zero, the gap acts like an ideal current filament, which creates electric fields across the slot, equivalent to a magnetic current flowing into the slot line. If the current source is open (having a zero amplitude), then the gap acts like a shunt (parallel) lumped element on the slot line. As you will see later, a coplanar waveguide (CPW) can be realized using two parallel slot lines with two aligned, collocated gap sources.&lt;br /&gt;
&lt;br /&gt;
To define a gap source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Gap Source Dialog by right clicking on the '''Gap Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' available in the project workspace. Select the desired host rectangle strip object. The box labeled '''Direction''' shows the direction or polarity of the new gap source on its host rectangle strip object. You have the option to select either the positive or negative direction for the source polarity.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the gap source from the start point of the rectangle strip feed line. The value of '''Offset''' by default is initially set to the center of the line. As you change the offset value, you can see the gap move on its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of a gap on a slot trace) and '''Phase''' in degrees.&lt;br /&gt;
* You can also change the default label as well as the default color of the gap source using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM47.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Gap Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Probe Sources ===&lt;br /&gt;
&lt;br /&gt;
Another way of exciting a planar structure is by placing a gap on the path of a vertical current on a PEC via. This represents a filament source, which is used to model coaxial probe excitation. A probe source can be placed only on a PEC via object. Most planar transmission lines are fed using SMA connectors. The outer conductor of the coaxial line is connected to the ground and its inner conductor is extended across the substrate layer and connected to a metallic line. EM.Cube's [[Planar Module]] models a coaxial probe as an infinitesimal gap discontinuity placed across a thin via, representing an ideal voltage source in series with a lumped impedance. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the via. The source pumps vertical electric current into the probe. If the voltage source is shorted (having a zero amplitude), then the gap acts like a shunt lumped element across the via.&lt;br /&gt;
&lt;br /&gt;
To define a probe source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Probe Source Dialog by right clicking on the '''Probe Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, in the dropdown list labeled '''Embedded Objects''', you will find a list of all the PEC via objects available in the project workspace. Select the desired host PEC via object. The box labeled '''Direction''' shows the direction or polarity of the new probe source on its host PEC via object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the probe source from the bottom of the via object. The value of '''Offset''' by default is initially set to the center of the via.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and '''Phase''' in degrees.&lt;br /&gt;
&lt;br /&gt;
Unlike gap sources, whose offset parameter determines their exact location on their host line, the offset parameter of a probe source is not relevant except for long host vias. In the case of a short via that is discretized using a single prismatic element across its host substrate layer, the probe gap is always placed at the middle of its height. Longer vias may have a mesh that consists of two or more stacked prismatic elements. In this case, the probe source's offset determines which prismatic element will host the probe gap discontinuity at its middle.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Probe Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Source Arrays ===&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects, the array object will also be listed as an eligible object for gap source placement. A gap source will then be placed on each element of the array. All the gap sources will have identical direction and offset. Similarly, if the project workspace contains an array of PEC via objects, the embedded array object will also be listed as an eligible object for probe source placement. A probe source will then be placed on each via object of the array. All the probe sources will have identical direction and offset.&lt;br /&gt;
&lt;br /&gt;
However, you can prescribe certain amplitude and/or phase distribution over the array of gap or probe sources. By default, all the gap or probe sources have identical amplitudes of 1V (or 1A for the slot case) and zero phase. The available amplitude distributions to choose from include '''Uniform''', '''Binomial''' and '''Chebyshev''' and '''Date File'''. In the Chebyshev case, you need to set a value for minimum side lobe level ('''SLL''') in dB. You can also define '''Phase Progression''' in degrees along all three principal axes. You can view the amplitude and phase of individual sources by right clicking on the top '''Sources''' item in the Navigation Tree and selecting '''Show Source Label''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM49.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining gap sources on an array of rectangle strip objects with a Chebyshev amplitude distribution.&lt;br /&gt;
&lt;br /&gt;
In the data file option, the complex amplitude are directly read in from a data file using a real - imaginary format. When this option is selected, you can either improvise the complex array weights or import them from an existing file. In the former case click the '''New Data File''' button. This opens up the Windows Notepad with default formatted data file that has a list of all the array element indices with default 1+j0 amplitudes for all of them. You can replace the default complex values with new one and save the Notepad data file, which brings you back to the Gap Source dialog. To import the array weights, click the '''Open Data File''' button, which opens the standard Windows Open dialog. You can then select the right data file from the one of your folders. It is important to note that the data file must have the correct format to be read by EM.Cube. For this reason, it is recommended that you first create a new data file with the right format using Notepad as described earlier and then save it for later use.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining gap source array weights using a data file.&lt;br /&gt;
&lt;br /&gt;
=== Defining Ports ===&lt;br /&gt;
&lt;br /&gt;
Ports are used in a planar structure to order and index the sources for calculation of circuit parameters such as scattering (S), impedance (Z) and admittance (Y) parameters. In EM.Cube's [[Planar Module]], you can use the following types of sources to define ports:&lt;br /&gt;
&lt;br /&gt;
* Gap Sources&lt;br /&gt;
* Probe Sources&lt;br /&gt;
* Active Lumped Elements&lt;br /&gt;
* De-Embedded Sources&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your planar structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree. Note that your project can have mixed gap and probes sources as well as active lumped element sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
'''You can define any number of ports equal to or less than the total number of sources in your project.''' The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50S by default. You can delete any port by selecting it from the Port List and clicking the '''Delete''' button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment and make sure that is what you intend. You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit''' button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM53.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edit Port dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Coupled Ports ===&lt;br /&gt;
&lt;br /&gt;
Sources can be coupled to each other to model coupled strip lines (CPS) on metal traces or coplanar waveguides (CPW) on slot traces. Similarly, probe sources may be coupled to each other. Coupling two or more sources does not change the way they excite a planar structure. It is intended only for the purpose of S parameter calculation. The feed lines or vias which host the coupled sources are usually parallel and aligned with one another and they are all grouped together as a single transmission line represented by a single port. This single &amp;amp;quot;coupled&amp;amp;quot; port then interacts with other coupled or uncoupled ports.&lt;br /&gt;
&lt;br /&gt;
You couple two or more sources using the '''Port Definition Dialog'''. To do so, you need to change the default port assignments. First, delete all the ports that are to be coupled from the Port List of the dialog. Then, define a new port by clicking the '''Add''' button of the dialog. This opens up the Add Port dialog, which consists of two tables: '''Available''' sources on the left and '''Associated''' sources on the right. A right arrow ('''--&amp;amp;gt;''') button and a left arrow ('''&amp;amp;lt;--''') button let you move the sources freely between these two tables. You will see in the &amp;amp;quot;Available&amp;amp;quot; table a list of all the sources that you deleted earlier. You may even see more available sources. Select all the sources that you want to couple and move them to the &amp;amp;quot;Associated&amp;amp;quot; table on the right. You can make multiple selections using the keyboard's '''Shift''' and '''Ctrl''' keys. Closing the Add Port dialog returns you to the Port Definition dialog, where you will now see the names of all the coupled sources next to the name of the newly added port.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is your responsibility to set up coupled ports and coupled transmission lines properly. For example, to excite the desirable odd mode of a coplanar waveguide (CPW), you need to create two rectangular slots parallel to and aligned with each other and place two gap sources on them with the same offsets and opposite polarities. To excite the even mode of the CPW, you use the same polarity for the two collocated gap sources. Whether you define a coupled port for the CPW or not, the right definition of sources will excite the proper mode. The couple ports are needed only for correct calculation of the port characteristics.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM51(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Coupling gap sources in the Port Definition dialog by associating more than one source with a single port.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Port Characteristics At Gap Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
A gap source on a metal trace and a probe source on a PEC via behave like a series voltage source with a prescribed strength (of 1V and zero phase by default) that creates a localized discontinuity on the path of electric current flow. At the end of a planar MoM simulation, the electric current passing through the voltage source is computed and integrated to find the total input current. From this one can calculate the input admittance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_W \hat{y} \cdot \mathbf{J_s} \, dy} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM54(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for gap sources on metal traces, where the line integration is performed across the width of the metal strip, and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_S \hat{z} \cdot \mathbf{J_p} \, ds} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM55.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for probe sources on PEC vias, where the surface integration is performed over the cross section of the via. On the other hand, a gap source on a slot trace behaves like a shunt current source with a prescribed strength (of 1A and zero phase by default) that creates a localized discontinuity on the path of magnetic current flow. At the end of a planar MoM simulation, the magnetic current passing through the current source is computed and integrated to find the total input voltage across the current filament. From this one can calculate the input impedance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{in} = \frac{V_{in}}{I_s} = \frac{\int_W \hat{y} \cdot \mathbf{M_s} \,dy} {V_s} = \frac{\int_W E_y \, dy}{V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM56.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the input admittance or impedance defined at a gap source port is referenced to the two terminals of the voltage source connected across the gap as shown in the figure below. This is different than the input admittance or impedance that one may normally define for a microstrip port, which is referenced to the substrate's ground.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM59(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Definition of different input impedances at the gap location.&lt;br /&gt;
&lt;br /&gt;
To resolve this problem, you can place a gap source on a metal strip line by a distance of a quarter guide wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/4) away from its open end. Note that (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; = 2p/ß), where ß is the propagation constant of the metallic transmission line. As show in the figure below, the impedance looking into an open quarter-wave line segment is zero, which effectively shorts the gap source to the planar structure's ground. The gap admittance or impedance in this case is identical to the input admittance or impedance of the planar structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM60(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing a gap source a quarter guide wavelength away from the open end of a feed line to effectively short it to the ground at the gap location.&lt;br /&gt;
&lt;br /&gt;
The same principle applies to the gap sources on slot traces. The figure below shows how to place two gap sources with opposite polarities a quarter guide wavelength away from their shorted ends to calculate the correct input impedance of the CPW line looking to the left of the gap sources. Note that in this case, you deal with shunt filament current sources across the two slot lines and that the slot line carry magnetic currents. The end of the slot lines look open to the magnetic currents, but in reality they short the electric field. The quarter-wave CPW line acts as an open circuit to the current sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM61(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing two oppositely polarized gap sources a quarter guide wavelength away from the short end of a CPW line to effectively create an open circuit beyond the gap location.&lt;br /&gt;
&lt;br /&gt;
The case of a probe source placed on a PEC via that is connected to a ground plane is more straightforward. In this case, the probe source's gap discontinuity is placed at the middle plane of the PEC via. If the via is short, it is meshed using a single prismatic element, which is connected to the ground from one side and to the metal strip line from the other. Therefore, the probe admittance or impedance is equal to that of the structure at a reference plane that passed through the host via.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM62(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Input impedance of a probe source on a PEC via connected to a ground plane.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Multiport Structures Using Linear Superposition ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure has two or more sources, but you have not defined any ports, all the lumped sources excite the structure locally and contribute to the excitation vector needed for the MoM solution of the problem. However, when you assign N ports to the sources, then you have a multiport structure that is characterized by an N×N admittance matrix (instead of a single Y&amp;lt;sub&amp;gt;in&amp;lt;/sub&amp;gt; parameter), or an N×N impedance matrix, or an N×N scattering matrix. To calculate these matrices, EM.Cube uses a binary excitation scheme in conjunction with the principle of linear superposition. In this binary scheme, the structure is analyzed N times. Each time one of the N port-assigned sources is excited, and all the other port-assigned sources are turned off.&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on metal traces and probe sources on PEC vias, turning a source off means shorting a series voltage source. The electric currents passing through these sources are then found at each port location, and the admittance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_m = \sum_{n=1}^N Y_{mn} V_n, \quad \quad Y_{mn} = \frac{I_m}{V_n} \bigg|_{V_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM57.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on slot traces, turning a source off means opening a shunt filament current source. The magnetic currents passing through the source locations, and thus the voltages across them, are then found at all ports, and the impedance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_m = \sum_{n=1}^N Z_{mn} I_n, \quad \quad Z_{mn} = \frac{V_m}{I_n} \bigg|_{I_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM58.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The N solution vectors that are generated through the N binary excitation analyses are finally superposed to produce the actual solution to the problem. However, in this process, EM.Cube also calculates all the port characteristics. Keep in mind that the impedance (Z) and admittance (Y) matrices are inverse of each other. From the impedance matrix, the scattering matrix is calculated using the following relation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM63.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Lumped Elements In Planar MoM ===&lt;br /&gt;
&lt;br /&gt;
Lumped elements are components, devices, or circuits whose overall dimensions are very small compared to the wavelength. As a result, they are considered to be dimensionless compared to the dimensions of a mesh cell. In fact, a lumped element is equivalent to an infinitesimally narrow gap that is placed in the path of current flow, across which the device's governing equations are enforced. Using Kirkhoff's laws, these device equations normally establish a relationship between the currents and voltages across the device or circuit. Crossing the bridge to Maxwell's domain, the device equations must now be cast into a from o boundary conditions that relate the electric and magnetic currents and fields. EM.Cube's [[Planar Module]] allows you to define passive circuit elements: '''Resistors'''(R), C'''apacitors'''(C), I'''nductors'''(L), and series and parallel combinations of them as shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image106.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A series-parallel RLC combination that can be modeled as a lumped circuit in [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Lumped elements are conceptualized in a similar way as gap or probe sources. They are indeed considered as infinitesimally narrow gaps placed in the path of current flow, across which Ohm's law is enforced. If a lumped element is placed on a PEC or conductive sheet trace, it is treated as a series connection. The boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; &lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{x}\cdot \mathbf{E_{gap}} \, dx = Z_L \int_W \hat{y} \cdot \mathbf{J_s} \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM67.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Z&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total impedance across the two terminals of the series element. If the lumped element is placed on a slot trace, it is treated as a shunt connection that creates a current discontinuity. In this case, the magnetic current across the gap is continuous, and the boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_{gap} = Y_L V_{in} \quad\quad \int_{\delta} J_Y^{fila} \, dx = Y_L \int_W E_y \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \int_{\delta} \hat{x}\cdot\hat{n} \times (\mathbf{H_{gap}^+ - H_{gap}^-}) \, dx = Y_L \int_W \hat{y}\cdot\mathbf{M_s} \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM70(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Y&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total admittance across the two terminals of the shunt element. If a lumped element is placed on a PEC via that is connected to a metal strip from one side and to a PEC ground plane from the other end, it is indeed as a series connection across a gap discontinuity at the middle plane of the via. If the via is short, it is meshed using a single prismatic element. In that case, the lumped element in effect shunts the metal strip to the ground. The boundary condition at the location of the lumped element across the PEC via is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{z}\cdot \mathbf{E_{gap}} \, dz = Z_L \int_S \hat{z} \cdot \mathbf{J_p} \, ds&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM68.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM69.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Using a shunt lumped element on a PEC via to terminate a metallic strip line.&lt;br /&gt;
&lt;br /&gt;
=== Defining Lumped Circuits ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM64.png|thumb|400px|Lumped Element dialog]]&lt;br /&gt;
To define a lumped RLC circuit in your planar structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Lumped Element Dialog by right clicking on the '''Lumped Elements''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Gap Topology''' section of the dialog, select one of the two options: '''Gap on Line''' and '''Gap on Via'''.&lt;br /&gt;
* In the '''Lumped Circuit Type''' section of the dialog, select one of the two options: '''Passive RLC''' and '''Active with Gap Source'''.&lt;br /&gt;
* Depending on your choice of gap topology, in the '''Lumped Circuit Location''' section of the dialog, you will find either a list of all the '''Rectangle Strip Objects''' or a list of all the '''PEC Via Objects''' available in the project workspace. Select the desired rectangle strip or embedded PEC via object.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the rectangle strip line or from the bottom of the via object, whichever the case. The value of '''Offset''' by default is initially set to the center of the line or via.&lt;br /&gt;
* In the '''Load Properties''' section, the series and shunt resistance values Rs and Rp are specified in Ohms, the series and shunt inductance values Ls and Lp are specified in nH (nanohenry), and the series and shunt capacitance values Cs and Cp are specified in pF (picofarad). Only the checked elements are taken into account in the total impedance calculation. By default, only the series resistor is checked with a value of 50S, and all other circuit elements are initially greyed out.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] allows you to define a voltage source in series with a series-parallel RLC combination and place them across the gap. This is called an active lumped element. If you choose the '''Active with Gap Source''' option of the '''Lumped Circuit Type''' section of the dialog, the right section of the dialog entitled '''Source Properties''' becomes enabled, where you can you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of PMC traces) and the '''Phase''' in degrees. Also, the box labeled '''Direction''' becomes relevant in this case which contains a gap source. Otherwise, a passive RLC circuit does not have polarity.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects or PEC via objects, the array object will also be listed as an eligible object for lumped element placement. A lumped element will then be placed on each element of the array. All the lumped elements will have identical direction, offset, resistance, inductance and capacitance values. If you define an active lumped element, you can prescribe certain amplitude and/or phase distribution to the gap sources just like in the case of gap and probe sources. The available amplitude distributions include '''Uniform''', '''Binomial'''''', Chebyshev''' and '''Data File'''.&lt;br /&gt;
&lt;br /&gt;
{{Note|The impedance of the lumped circuit is calculated at the operating frequency of the project using the specified R, L and C values. As you change the frequency, the value of the impedance that is passed to the Planar MoM engine will change.}}&lt;br /&gt;
&lt;br /&gt;
=== Calculating Scattering Parameters Using Prony's Method ===&lt;br /&gt;
&lt;br /&gt;
The calculation of the scattering (S) parameters is usually an important objective of modeling planar structures especially for planar circuits like filters, couplers, etc. As you saw earlier, you can use lumped sources like gaps and probes and even active lumped elements to calculate the circuit characteristics of planar structures. The admittance / impedance calculations based on the gap voltages and currents are accurate at RF and lower microwave frequencies or when the port transmission lines are narrow. In such cases, the electric or magnetic current distributions across the width of the port line are usually smooth, and quite uniform current or voltage profiles can easily be realized. At higher frequencies, however, a more robust method is needed for calculating the port parameters.&lt;br /&gt;
&lt;br /&gt;
One can calculate the scattering parameters of a planar structure directly by analyzing the current distribution patterns on the port transmission lines. The discontinuity at the end of a port line typically gives rise to a standing wave pattern that can clearly be discerned in the line's current distribution. From the location of the current minima and maxima and their relative levels, one can determine the reflection coefficient at the discontinuity, i.e. the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter. A more robust technique is Prony’s method, which is used for exponential approximation of functions. A complex function f(x) can be expanded as a sum of complex exponentials in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f(x) \approx \sum_{n=1}^N c_i e^{-j\gamma_i x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM73.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are complex coefficients and &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are, in general, complex exponents. From the physics of transmission lines, we know that lossless lines may support one or more propagating modes with pure real propagation constants (real &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents). Moreover, line discontinuities generate evanescent modes with pure imaginary propagation constants (imaginary &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents) that decay along the line as you move away from the location of such discontinuities.&lt;br /&gt;
&lt;br /&gt;
In practical planar structures for which you want to calculate the scattering parameters, each port line normally supports one, and only one, dominant propagating mode. Multi-mode transmission lines are seldom used for practical RF and microwave applications. Nonetheless, each port line carries a superposition of incident and reflected dominant-mode propagating signals. An incident signal, by convention, is one that propagates along the line towards the discontinuity, where the phase reference plane is usually established. A reflected signal is one that propagates away from the port plane. Prony's method can be used to extract the incident and reflected propagating and evanescent exponential waves from the standing wave data. From a knowledge of the amplitudes (expansion coefficients) of the incident and reflected dominant propagating modes at all ports, the scattering matrix of the multi-port structure is then calculated. In Prony's method, the quality of the S parameter extraction results depends on the quality of the current samples and whether the port lines exhibit a dominant single-mode behavior. Clean current samples can be drawn in a region far from sources or discontinuities, typically a quarter wavelength away from the two ends of a feed line.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM71.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Minimum and maximum current locations of the standing wave pattern on a microstrip line feeding a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== De-Embedded Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM74.png|thumb|300px|The [[Planar Module]]'s De-embedded Source dialog]]&lt;br /&gt;
EM.Cube's [[Planar Module]] provides de-embedded sources for the exclusive purpose of accurate S parameter calculation based on Prony's method. A de-embedded source is indeed a gap source that is placed close to an open end of a feed line. The other end of the line is typically connected to a planar structure of interest. Like gap sources, de-embedded sources can be placed only on rectangle strip objects. '''During mesh generation, EM.Cube automatically extends the length of a port line that hosts a de-embedded source to about two effective wavelengths.''' This is done to provide enough length for formation of a clean standing wave current pattern. The effective wavelength of a transmission line for length extension purposes is calculated in a similar manner as for the planar mesh resolution. It is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where &amp;amp;epsilon;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivities of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivities of the two substrate layers just above and below the metallic trace. The host port line must always be open from one end to allow for its length extension. You have to make sure that there are no objects standing on the way of the extended port line to avoid any unwanted overlaps.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM72.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The mesh of a patch antenna excited with a de-embedded source. Note the feed line extension in the mesh view.&lt;br /&gt;
&lt;br /&gt;
You can define de-embedded source on metal (PEC), slot (PMC) and conductive sheet traces. To define a de-embedded source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the De-Embedded Source Dialog by right clicking on the '''De-Embedded Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' or arrays of such objects that are available in the project workspace. The box labeled '''Direction''' shows the direction the phase reference plane for S parameter calculation and determines which end of the host line to place the source at. You have the option to select either the positive or negative direction to bounce the source between the two ends of the line.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the phase reference plane from the end of the feed line object. The value of '''Offset''' by default is initially set to zero, meaning that the S parameters are calculated at the plane passing through the end of the feed line. Type in a new offset value or use the spin buttons to move the source arrow along the line away from its end. As you change the offset value, you can see the source arrow move along its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of slot traces) and '''Phase''' in degrees.&lt;br /&gt;
* In the '''Prony Mode Extraction''' section, you can specify the '''Number of Prony Modes''', which refers to the number of positive-negative exponential pairs that are extracted from the standing wave current data. The default value is 1 and represents the dominant quasi-TEM incident/reflected signal pair.&lt;br /&gt;
&lt;br /&gt;
In a planar project with de-embedded sources, if you do not define any ports, the feed lines will simply be extended, and the exciting gap sources will be placed at the open ends of these extended lines. Note that if you define a de-embedded source along with a port definition in your project, then all the other port-assigned sources of your project must be of the same de-embedded type. You can define de-embedded sources for coplanar waveguides (CPW) on slot traces. To do so, you need to place two collocated, de-embedded sources with identical offsets (same phase reference plane), same source amplitudes but 180° phase difference. Note that for CPW structures, setting the number of Prony modes to 2 can get you more accurate results. In this case, the two extracted Prony modes will include the incident and reflected, odd and even, propagating modes of the CPW.&lt;br /&gt;
&lt;br /&gt;
=== Using the Line Calculator ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides a simple calculator for analyzing planar transmission lines. It is based on the frequency domain finite difference (FDFD) technique. You can find the characteristic impedance, effective permittivity and guide wavelength of a TEM or quasi-TEM transmission line defined based on your project's background structure. Therefore, any arbitrary stack-up configuration with any number of substrate layers can be considered.&lt;br /&gt;
&lt;br /&gt;
To access the Line Calculator, first you have to select a metal (PEC) trace or a slot (PMC) trace in the Navigation Tree. Right click on the name of a trace and select '''Line Calc...''' from the contextual menu to open the Line Calc Dialog. You can analyze a metal strip line on any PEC trace or a coplanar waveguide (coupled slot lines) on any PMC trace. The 2D line structure to be analyzed by the FDFD method consists of the background structure of your project with a metal strip or CPW located at the Z-plane of your selected trace. Depending on whether your open the Line Calc dialog from a metal trace or a slot trace, a picture of a microstrip line or a CPW line appear at the top of the dialog, respectively. In the former case, you have to specify '''Strip Width''' in the project units. In the latter case, you have to specify '''Slot Width''', too. Keep in mind that the strip width is equal to the spacing between the two slot lines minus the width of individual slot lines. Clicking the Analyze button of the dialog evokes the FDTD simulator, and calculated results are reflected in the boxes labeled '''Zo''', '''Effective Permittivity''' and '''Guide Wavelength'''.&lt;br /&gt;
&lt;br /&gt;
When your background structure involves a slot (PMC) trace, then there is an infinite PEC ground plane at the plane of the slot trace. In that case, when you analyze a strip line on a metal trace, you must keep in mind that your stack-up configuration will be truncated by the slot's ground plane just for purpose of Z&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; calculation. A typical case of this type is a slot-coupled patch antenna fed by a microstrip line underneath the slot. From the point of view of the Line Calculator, the microstrip line lies on a substrate layer that is backed by the slot's ground plane and it does not see the substrate layer lying above the slot plane.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM75.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Analyzing a metal strip line using the line calculator.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM76.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Analyzing a coplanar waveguide using the line calculator.&lt;br /&gt;
&lt;br /&gt;
=== Short Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM110.png|thumb|250px|Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A short dipole is the simplest type of radiator, which consists of a short current element of length &amp;amp;amp;DELTA;l, aligned along a unit vector û and carrying a current of I Amperes. The product I&amp;amp;amp;DELTA;l is often called the dipole moment and gives a measure of the radiator's strength. A short dipole in the free space generates an azimuth-symmetric, almost omni-directional, far field. However, the radiated fields of a short dipole above a layered planar background structure are greatly altered by the presence of the substrate layers. Note that the electric and magnetic field radiated by a short dipole in the presence of a layered background structure are indeed nothing but the dyadic Green's functions of that structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{EJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{HJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM109(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To define a short dipole source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Short Dipoles''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' The Short Dipole Dialog opens up.&lt;br /&gt;
* In the section titled '''Source Location''', enter values for the X, Y and Z coordinates of the dipole's center. By default, a new dipole is placed at the origin of coordinates. As you change the coordinates using the spin buttons, you will see the dipole move in the project workspace.&lt;br /&gt;
* In the section titled '''Source Properties''', you can change the values of the dipole's '''Amplitude''' (in A), '''Phase''' (in degrees) and '''Length''' in the project's length units. A new dipole, by default, is Z-directed. You can change its orientation by entering the components of its unit vector in the three boxes labeled '''Direction Unit Vector'''.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM77.png|thumb|300px|[[Planar Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure with an incident plane wave to explore its scattering characteristics such as radar cross section (RCS). Exciting an antenna structure with an incident plane wave is equivalent to operating it in the &amp;amp;quot;receive&amp;amp;quot; mode. Plane wave excitation in the [[Planar Module]] is particularly useful for calculation of reflection and transmission coefficients of periodic surfaces. Note that the incident plane wave in your project bounces off the layered background structure and part of it also penetrates the substrate layers. The total incident field that is used to calculate the excitation vector of the MoM linear system is a superposition of the incident, reflected and transmitted plane waves at various regions of your planar structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{inc}(r)} = E_0 (\mathbf{\hat{e}_1} e^{ -jk_0 \mathbf{\hat{k}_1\cdot r} } + &lt;br /&gt;
R \mathbf{\hat{e}_2} e^{ -jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{inc}(r)} = \frac{E_0}{\eta_0} ( \mathbf{\hat{k}_1 \times \hat{e}_1} e^{-jk_0 \mathbf{\hat{k}_1 \cdot r} } + &lt;br /&gt;
R \mathbf{\hat{k}_2 \times \hat{e}_2} e^{-jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi&amp;lt;/math&amp;gt; is the characteristic impedance of the free space, '''k&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the unit propagation vectors of the incident plane wave and the wave reflected off the topmost substrate layer, respectively, and '''ê&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''ê&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the polarization vectors corresponding to the electric field of those waves. R is the reflection coefficient at the interface between the top half-space and the topmost substrate layer and has different values for the TM and TE polarizations.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the theta and phi angles of the propagation vector in the spherical coordinate system. The default values are &amp;amp;theta; = 180° and &amp;amp;phi; = 0°, representing a normally incident plane wave propagating along the -Z direction with a +X-polarized electric field vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization cases, the magnetic and electric fields are parallel to the XY plane, respectively. The left-hand (LCP) and right-hand (RCP) circular polarization cases are restricted to normal incidences only (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the '''Amplitude''' of the incident electric field in V/m and '''Phase''' in degrees. The default field Amplitude is 1 V/m, with a zero Phase.&lt;br /&gt;
* The direction of the Plane Wave is determined by the incident '''Theta''' and '''Phi''' angles expressed in the spherical coordinate system in degrees. You have to choose the '''Polarization''' of the plane wave from the four options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''and '''RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''. The components of the unit propagation vector are shown based on your choice of the angles of incidence. The components of the normalized E- and H-field vectors are also displayed based on your choice of polarization.&lt;br /&gt;
&lt;br /&gt;
== Running Planar MoM Simulations ==&lt;br /&gt;
&lt;br /&gt;
The first step of planning a planar MoM simulation is defining your planar structure. This consists of the background structure plus all the finite-sized metal and slot trace objects and possibly embedded metal or dielectric objects that are interspersed among the substrate layers. The background stack-up is defined in the Layer Stack-up dialog, which automatically opens up as soon as you enter the [[Planar Module]]. The metal and slot traces and embedded object sets are listed in the Navigation Tree, which also shows all the geometrical (CAD) objects you draw in the project workspace under each object group at different Z-planes.&lt;br /&gt;
&lt;br /&gt;
The next step is to decide on the excitation scheme. If your planar structure has one or more ports and you seek to calculate its port characteristics, then you have to choose one of the lumped source types or a de-embedded source. If you are interested in the scattering characteristics of your planar structure, then you must define a plane wave source. Before you can run a planar MoM simulation, you also need to decide on the project's observables. These are the simulation data that you expect EM.Cube to generate as the outcome of the numerical simulation. EM.Cube's [[Planar Module]] offers the following observables:&lt;br /&gt;
&lt;br /&gt;
* Current Distribution&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Far Fields (Radiation Patterns or Radar Cross Section)&lt;br /&gt;
* Huygens Surfaces&lt;br /&gt;
* Port Characteristics&lt;br /&gt;
* Periodic Characteristics&lt;br /&gt;
&lt;br /&gt;
If you run a simulation without having defined any observables, no data will be generated at the end of the simulation. Some observables require a certain type of excitation source. For example, port characteristics will be calculated only if the project contains a port definition, which in turn requires the existence of at least one gap or probe or de-embedded source. The periodic characteristics (reflection and transmission coefficients) are calculated only if the structure has a periodic domain and excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Simulation Modes ===&lt;br /&gt;
&lt;br /&gt;
The simplest simulation type in EM.Cube is an analysis. In this mode, the planar structure in your project workspace is meshed at the center frequency of the project. EM.Cube generates an input file at this single frequency, and the Planar MoM simulation engine is run once. Upon completion of the planar MoM simulation, a number of data files are generated depending on the observables you have defined in your project. An analysis is a single-run simulation.&lt;br /&gt;
&lt;br /&gt;
EM.Cube offers a number of multi-run simulation modes. In such cases, the Planar MoM simulation engine is run multiple times. At each engine run, certain parameters are varied and a collection of simulation data are generated. At the end of a multi-run simulation, you can graph the simulation results in EM.Grid or you can animate the 3D simulation data from the Navigation Tree. For example, in a frequency sweep, the frequency of the project is varied over its specified bandwidth. Port characteristics are usually plotted vs. frequency, representing your planar structure's frequency response. In an angular sweep, the &amp;amp;theta; or &amp;amp;phi; angle of incidence of a plane wave source is varied over their respective ranges. EM.Cube's [[Planar Module]] currently provides the following types of multi-run simulation modes:&lt;br /&gt;
&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
* Angular Sweep&lt;br /&gt;
* R/T Macromodel&lt;br /&gt;
* Huygens Sweep&lt;br /&gt;
* [[Optimization]]&lt;br /&gt;
* HDMR&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting a simulation mode in [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
To run a planar MoM analysis of your project structure, open the Run Simulation Dialog by clicking the '''Run''' [[File:run_icon.png]] button on the '''Simulate Toolbar''' or select '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt;''' '''Run''' or use the keyboard shortcut '''Ctrl+R'''. The '''Analysis''' option of the '''Simulation Mode''' dropdown list is selected by default. Once you click the '''Run''' button, the simulation starts. A new window, called the '''Output Window''', opens up that reports the different stages of simulation and the percentage of the tasks completed at any time. After the simulation is successfully completed, a message pops up and reports the end of simulation. In certain cases like calculating scattering parameters of a circuit or reflection / transmission characteristics of a periodic surface, some results are also reported in the Output Window. At the end of a simulation, you need to click the '''Close''' button of the Output Window to return to the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM78.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Stages Of A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar MoM simulation engine uses a particular formulation of the method of moments called mixed potential integral equation (MPIE). Due to high-order singularities, the dyadic Green's functions for electric fields generated by electric currents as well as the dyadic Green's functions for magnetic fields generated by magnetic currents have very slow convergence behaviors. Instead of using these slowly converging dyadic Green's function, the MPIE formulation uses vector and scalar potentials. These include vector electric potential '''A(r)''', scalar electric potential K&amp;lt;sup&amp;gt;&amp;amp;Phi;&amp;lt;/sup&amp;gt;'''(r)''', vector magnetic potential '''F(r)''' and scalar magnetic potential K&amp;lt;sup&amp;gt;&amp;amp;Psi;&amp;lt;/sup&amp;gt;'''(r)'''. These potentials have singularities of lower orders. As a result, they coverage relatively faster. The speed of their convergence is further increased drastically using special singularity extraction techniques.&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation consists of two major stages: matrix fill and linear system inversion. In the first stage, the moment matrix and excitation vector are calculated. In the second stage, the MoM system of linear equations is inverted using one of the several available matrix solvers to find the unknown coefficients of all the basis functions. The unknown electric and magnetic currents are linear superpositions of all these elementary solutions. These can be visualized in EM.Cube using the current distribution observables. Having determined all the electric and magnetic currents in your planar structure, EM.Cube can then calculate the near fields on prescribed planes. These are introduced as field sensor observables. The near-zone electric and magnetic fields are calculated using a spectral domain formulation of the dyadic Green's functions. Finally the far fields of the planar structure are calculated in the spherical coordinate system. These calculations are performed using the asymptotic form of the dyadic Green's functions using the &amp;amp;quot;stationary phase method&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Setting Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation involves a number of numerical parameters that take preset default values unless you change them. You can access these parameters and change their values by clicking the '''Settings''' button next to the '''Select Engine''' dropdown list in the [[Planar Module]]'s Simulation Run dialog. In most cases, you do not need to open this dialog and you can leave all the default numerical parameter values intact. However, it is useful to familiarize yourself with these parameters, as they may affect the accuracy of your numerical results.&lt;br /&gt;
&lt;br /&gt;
The Planar MoM Engine Settings Dialog is organized in a number of sections. Here we describe some of the numerical parameters. The &amp;amp;quot;'''Matrix Fill'''&amp;amp;quot; section of the dialog deals with the operations involving the dyadic Green's functions. You can set a value for the '''Convergence Rate for Integration''', which is 1E-5 by default. This is used for the convergence test of all the infinite integrals in the calculation of the Hankel transform of spectral-domain dyadic Green's functions. When the substrate is lossy, the surface wave poles are captured in the complex integration plane using contour deformation. You can change the maximum number of iterations involved in this deformed contour integration, whose default value is 20. When the substrate is very thin with respect to the wavelength, the dyadic Green's functions exhibit numerical instability. Additional singularity extraction measures are taken to avoid numerical instability but at the expense of increased computation time. By default, a thin substrate layer is defined to a have a thickness less than 0.01&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;, where &amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective wavelength. You can modify the definition of &amp;amp;quot;Thin Substrate&amp;amp;quot; by entering a value for '''Thin Substrate Threshold''' different than the default 0.01. The parameter '''Max Coupling Range''' determines the distance threshold in wavelength between the observation and source points after which the Green's interactions are neglected. This distance by default is set to 1,000 wavelengths. For electrically small structures, the phase variation across the structure may be negligible. In such cases, a fast quasi-static analysis can be carried out. You can set this threshold in wavelengths in the box labeled '''Max Dimensions for Quasi-Static Analysis'''.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Spectral Domain Integration&amp;amp;quot; section of the dialog, you can set a value to '''Max Spectral Radius in k0''', which has a default value of 30. This means that the infinite spectral-domain integrals in the spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; are pre-calculated and tabulated up to a limit of 30k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant. These integrals may converge much faster based on the specified Convergence Rate for Integration described earlier. However, in certain cases involving highly oscillatory integrands, much larger integration limits like 100k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; might be needed to warrant adequate convergence. For spectral-domain integration along the real k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; axis, the interval [0, Nk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;] is subdivided into a large number of sub-intervals, within each an 8-point Gauss-Legendre quadrature is applied. The next parameter, '''No. Radial Integration Divisions per k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;''', determines how small these intervals should be. By default, 2 divisions are used for the interval [0, k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;]. In other words, the length of each integration sub-interval is k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/2. You can increase the resolution of integration by increasing this value above 2. Finally, instead of 2D Cartesian integration in the spectral domain, a polar integration is performed. You can set the '''No. of Angular Integration Points''', which has a default value of 100.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM79.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Linear System Solvers ===&lt;br /&gt;
&lt;br /&gt;
After the MoM impedance matrix '''[Z]''' (not to be confused with the impedance parameters) and excitation vector '''[V]''' have been computed through the matrix fill process, the planar MoM simulation engine is ready to solve the system of linear equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[Z]}_{N\times N} \cdot \mathbf{[I]}_{N\times 1} = \mathbf{[V]}_{N\times 1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM81.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''[I]''' is the solution vector, which contains the unknown amplitudes of all the basis functions that represent the unknown electric and magnetic currents of finite extents in your planar structure. In the above equation, N is the dimension of the linear system and equal to the total number of basis functions in the planar mesh. EM.Cube's linear solvers compute the solution vector'''[I]''' of the above system. You can instruct EM.Cube to write the MoM matrix and excitation and solution vectors into output data files for your examination. To do so, check the box labeled &amp;amp;quot;'''Output MoM Matrix and Vectors'''&amp;amp;quot; in the Matrix Fill section of the Planar MoM Engine Settings dialog. These are written into three files called mom.dat1, exc.dat1 and soln.dat1, respectively.&lt;br /&gt;
&lt;br /&gt;
There are a large number of numerical methods for solving systems of linear equations. These methods are generally divided into two groups: direct solvers and iterative solvers. Iterative solvers are usually based on matrix-vector multiplications. Direct solvers typically work faster for matrices of smal to medium size (N&amp;amp;lt;3,000). EM.Cube's [[Planar Module]] offers five linear solvers:&lt;br /&gt;
&lt;br /&gt;
# LU Decomposition Method&lt;br /&gt;
# Biconjugate Gradient Method (BiCG)&lt;br /&gt;
# Preconditioned Stabilized Biconjugate Gradient Method (BCG-STAB)&lt;br /&gt;
# Generalized Minimal Residual Method (GMRES)&lt;br /&gt;
# Transpose-Free Quasi-Minimum Residual Method (TFQMR)&lt;br /&gt;
&lt;br /&gt;
Of the above list, LU is a direct solver, while the rest are iterative solvers. BiCG is a relatively fast iterative solver, but it works only for symmetric matrices. You cannot use BiCG for periodic structures or planar structures that contain both metal and slot traces at different planes, as their MoM matrices are not symmetric. The three solvers BCG-STAB, GMRES and TtFQMR work well for both symmetric and asymmetric matrices and they also belong to a class of solvers called '''Krylov Sub-space Methods'''. In particular, the GMRES method always provides guaranteed unconditional convergence.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, provides a &amp;amp;quot;'''Automatic'''&amp;amp;quot; solver option that picks the best method based on the settings and size of the numerical problem. For linear systems with a size less than N = 3,000, the LU solver is used. For larger systems, BiCG is used when dealing with symmetric matrices, and GMRES is used for asymmetric matrices. If the size of the linear system exceeds N = 15,000, the sparse version of the iterative solvers is used, utilizing a row-indexed sparse storage scheme. You can override the automatic solver option and manually set you own solver type. This is done using the '''Solver Type''' dropdown list in the &amp;amp;quot;'''Linear System Solver'''&amp;amp;quot; section of the Planar MoM Engine Settings dialog. There are also a number of other parameters related to the solvers. The default value of '''Tolerance of Iterative Solver''' is 1E-3, which can be increased for more ill-conditioned systems. The maximum number of iterations is usually expressed as a multiple of the systems size. The default value of '''Max No. of Solver Iterations / System Size''' is 3. For extremely large systems, sparse versions of iterative solvers are used. In this case, the elements of the matrix are thresholded with respect to the larges element. The default value of '''Threshold for Sparse Solver''' is 1E-6, meaning that all the matrix elements whose magnitude is less than 1E-6 times the large matrix elements are set equal to zero. There are two more parameters that are related to the Automatic Solver option. These are &amp;amp;quot;''' User Iterative Solver When System Size &amp;amp;gt;'''&amp;amp;quot; with a default value of 3,000 and &amp;amp;quot;''' Use SParse Storage When System Size &amp;amp;gt;''' &amp;amp;quot; with a default value of 15,000. In other words, you control the automatic solver when to switch between direct and iterative solvers and when to switch to the sparse version of iterative solvers.&lt;br /&gt;
&lt;br /&gt;
If your computer has an Intel CPU, then EM.Cube offers special versions of all the above linear solvers that have been optimized for Intel CPU platforms. These optimal solvers usually work 2-3 time faster than their generic counterparts. When you install EM.Cube, the option to use Intel-optimized solvers is already enabled. However, you can disable this option (e.g. if your computer has a non-Intel CPU). To do that, open the EM.Cube's Preferences Dialog from '''Menu &amp;amp;gt; Edit &amp;amp;gt; Preferences''' or using the keyboard shortcut '''Ctrl+H'''. Select the Advanced tab of the dialog and uncheck the box labeled &amp;amp;quot;''' Use Optimized Solvers for Intel CPU'''&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM82.png]]&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
Electric and magnetic currents are the fundamental output data of a planar MoM simulation. After the numerical solution of the MoM linear system, they are found using the solution vector '''[I]''' and the definitions of the electric and magnetic vectorial basis functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{[I]}_{N\times 1} = &lt;br /&gt;
\begin{bmatrix} I^{(J)} \\ \\ V^{(M)} \end{bmatrix} \quad \Rightarrow \quad&lt;br /&gt;
&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\mathbf{J(r)} = \sum_{n=1}^N I_n^{(J)} \mathbf{f_n^{(J)} (r)} \\&lt;br /&gt;
\\&lt;br /&gt;
\mathbf{M(r)} = \sum_{k=1}^K V_k^{(M)} \mathbf{f_k^{(M)} (r)}&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that currents are complex vector quantities. Each electric or magnetic current has three X, Y and Z components, and each complex component has a magnitude and phase. You can visualize the surface electric currents on metal (PEC) and conductive sheet traces, surface magnetic currents on slot (PMC) traces and vertical volume currents on the PEV vias and embedded dielectric objects. 3D color-coded intensity plots of electric and magnetic current distributions are visualized in the project workspace, superimposed on the surface of physical objects.&lt;br /&gt;
&lt;br /&gt;
In order to view the current distributions, you must first define them as observables before running the planar MoM simulation. To do that, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. At the top of the dialog and in the section titled '''Active Trace / Set''', you can select a trace or embedded object set where you want to observe the current distribution. You can also select the current map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for current amplitude and phase, while the latter generates a 3D vector plot.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM84.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Current Distribution dialog.&lt;br /&gt;
&lt;br /&gt;
Once you close the current distribution dialog, the label of the selected trace or object set is added under the '''Current Distributions''' node of the Navigation Tree. &lt;br /&gt;
&lt;br /&gt;
{{Note|You have to define a separate current distribution observable for each individual trace or embedded object set.}}&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the current distribution nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''J''') and magnetic ('''M''') currents as well as the total electric and magnetic currents defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{J_{tot}} | = \sqrt{|J_x|^2 + |J_y|^2 + |J_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{M_{tot}} | = \sqrt{|M_x|^2 + |M_y|^2 + |M_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can click on any current plot to visualize it in the project workspace. A legend box at the upper right corner of the screen shows the color map scale as well as the minimum, maximum, mean and standard deviation of the current data and its units. To exit the 3D plot view and return to EM.Cube's normal view, hit the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM85(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The current distribution map of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM86(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Vectorial (cone) visualization of the current distribution on a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
Once all the current distributions are known in a planar structure, the electric and magnetic fields can be calculated everywhere in that structure using the dyadic Greens's functions of the background structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{EJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{EM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{HJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{HM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM92(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above equations can be cast into the spectral domain as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{EJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{EM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{HJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{HM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM93(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Calculation of the near-zone fields (fields at the vicinity of the unknown currents) is done at the post-processing stage and in a Cartesian coordinate systems. These calculations involve doubly infinite spectral-domain integrals, which are computed numerically. As was mentioned earlier, EM.Cube's planar MoM engine rather uses a polar integration scheme, where the radial spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; is integrated over the interval [0, Mk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;], M being a large enough number to represent infinity, and the angular spectral variable t is integrated over the interval [0, 2&amp;amp;pi;]. You also saw some of the numerical parameters related to this spectral-domain integration scheme.&lt;br /&gt;
&lt;br /&gt;
{{Note|When the observation plane is placed very close to the radiating J and M currents, the Green's functions exhibit singularities, which translate to very slow convergence or divergence of the integrals. You need to be careful to place field sensors at adequate distances from these radiating sources.}}&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|300px|[[Planar Module]]'s Field Sensor dialog]]&lt;br /&gt;
In order to view the near field distributions, you must first define field sensor observables before running the planar MoM simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of near field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear.&lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.&lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a planar MoM simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{E_{tot}}| = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{H_{tot}}| = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules, near field calculations in the [[Planar Module]] usually takes substantial time. This is due to the fact that at the end of a planar MoM simulation, the fields are not available anywhere (as opposed to the [[FDTD Module]]), and their computation requires integration of complex dyadic Green's functions (as opposed to [[MoM3D Module]]'s free space Green's functions).&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM116.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone electric field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone magnetic field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
Unlike differential-based methods, MoM simulators do not need a radiation box to calculate the far field data. The far-zone fields are calculated directly by integrating the currents on the traces and across the embedded objects using the asymptotic form of the background structure’s dyadic Green's functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{ff}(r)} = \iiint_V \mathbf{ \overline{\overline{G}}_{EJ,ff}(r|r') \cdot J(r') } \, d\nu ' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM,ff}(r|r') \cdot M(r') } \, d\nu '&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \dfrac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; is the characteristic impedance of the free space. As can be seen from the above equations, the far fields have the form of a TEM wave propagating in the radial direction away from the origin of coordinates. This means that the far-field magnetic field is always perpendicular to the electric field and the propagation vector, which in this case happens to be the radial unit vector in the spherical coordinate system. In other words, one only needs to know the far-zone electric field and can easily calculate the far-zone magnetic field from it. In EM.Cube's mixed potential integral equation formulation, the far-zone electric field can be expressed in terms of the asymptotic form of the vector electric and magnetic potentials '''A''' and '''F''':&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{E^{ff}}(x,y,z) = j k_0 \eta_0 \hat{r} \times [\hat{r} \times \mathbf{A}(r \to \infty)] +&lt;br /&gt;
j k_0 \hat{r} \times \mathbf{F}(r \to \infty)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The asymptotic form of these vector potentials are calculated using the &amp;amp;quot;'''Method of Stationary Phase'''&amp;amp;quot; when k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;rarr; &amp;amp;infin;. In that case, one can use the approximation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_0 |\mathbf{r-r'}| \approx k_0 (r - \mathbf{\hat{r} \cdot r'}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM115.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After applying the stationary phase method, one can extract the spherical wave factor exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/r from the far-zone electric field, leaving the rest as functions of the spherical angles &amp;amp;theta; and &amp;amp;phi;. In other words, the far field is normalized to r, the distance from the field observation point to the origin. It is customary to express the far fields in spherical components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;. Note that the outward propagating, TEM-type, far fields do not have radial components, i.e. E&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 0.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\theta}}(\theta, \phi) = \cos\theta \cos\phi E_x + \cos\theta \sin\phi E_y - \sin\theta E_z &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\phi}}(\theta, \phi) = -\sin\phi E_x + \cos\phi E_y &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM114.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM118.png|thumb|300px|[[Planar Module]]'s Radiation Pattern dialog]]&lt;br /&gt;
Even though the planar MoM engine does not need a radiation box, you still have to define a &amp;amp;quot;Far Field&amp;amp;quot; observable for radiation pattern calculation. This is because far field calculations take time and you have to instruct EM.Cube to perform these calculations. To define a far field, right click the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...'''. The Radiation Pattern Dialog opens up. You may accept the default settings, or you can change the value of '''Angle Increment''', which is expressed in degrees. You can also choose to '''Normalize 2D Patterns'''. In that case, the maximum value of a 2D paten graph will have a value of 1; otherwise, the actual far field values in V/m will be used on the graph.&lt;br /&gt;
&lt;br /&gt;
Once a planar MoM simulation is finished, three far field items are added under the Far Field item in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the &amp;amp;quot;Total&amp;amp;quot; far field. The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the whole structure or parts of it. In a 3D radiation pattern plot, the fields are always normalized to the maximum value of the total far field for visualization purpose:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM89.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM119.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D polar radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM120.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D vectorial (cone) radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
The 2D radiation pattern graphs can be plotted from EM.Cube's '''Data Manager'''. A total of eight 2D radiation pattern graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section of Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM124.png|thumb|300px|Planar Module's Radar Cross Section dialog]]&lt;br /&gt;
&lt;br /&gt;
When a planar structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields of that planar structure. EM.Cube can also calculate the radar cross section (RCS) of a planar target:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{|E_{\theta}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{|E_{\phi}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{|E_{tot}^{scat}|^2}{|E^{inc}|^2} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM123.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note that in this case the RCS is defined for a finite-sized target in the presence of an infinite background structure.''' The scattered &amp;amp;theta; and &amp;amp;phi; components of the far-zone electric field are indeed what you see in the 3D far field visualization of radiation (scattering) patterns. Instead of radiation or scattering patterns, you can instruct EM.Cube to plot 3D visualizations of &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and the total RCS. To do so, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* At the end of a planar MoM simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This fourth plane cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D mono-static radar cross section plot of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Running a Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
In a frequency sweep, the operating frequency of a planar structure is varied during each sweep run. EM.Cube's [[Planar Module]] offers two types of frequency sweep: Uniform and Adaptive. In a uniform frequency sweep, the frequency range and the number of frequency samples are specified. The samples are equally spaced over the frequency range. At the end of each individual frequency run, the output data are collected and stored. At the end of the frequency sweep, the 3D data can be visualized and/or animated, and the 2D data can be graphed in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
To run a uniform frequency sweep, open the '''Simulation Run Dialog''', and select the '''Frequency Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the frequency sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Frequency Settings''' dialog. The '''Frequency Range'''is initially set equal to your project's center frequency minus and plus half bandwidth. But you can change the values of '''Start Frequency'''and '''End Frequency''' as well as the '''Number of Samples'''. The dialog offers two options for '''Frequency Sweep Type''': '''Uniform''' or '''Adaptive'''. Select the former type. It is very important to note that in a MoM simulation, changing the frequency results in a change of the mesh of the structure, too. This is because the mesh density is defined in terms of the number of cells per effective wavelength. By default, during a frequency sweep, EM.Cube fixes the mesh density at the highest frequency, i.e., at the &amp;amp;quot;End Frequency&amp;amp;quot;. This usually results in a smoother frequency response. You have the option to fix the mesh at the center frequency of the project or let EM.Cube &amp;amp;quot;remesh&amp;amp;quot; the planar structure at each frequency sample during a frequency sweep. You can make one of these three choices using the radio button in the '''Mesh Settings''' section of the dialog. Closing the Frequency Settings dialog returns you to the Simulation Run dialog, where you can start the planar MoM frequency sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Frequency Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Adaptive Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
Frequency sweeps are often performed to study the frequency response of a planar structure. In particular, the variation of scattering parameters like S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; (return loss) and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; (insertion loss) with frequency are of utmost interest. When analyzing resonant structures like patch antennas or planar filters over large frequency ranges, you may have to sweep a large number of frequency samples to capture their behavior with adequate details. The resonant peaks or notches are often missed due to the lack of enough resolution. EM.Cube's [[Planar Module]] offers a powerful adaptive frequency sweep option for this purpose. It is based on the fact that the frequency response of a physical, causal, multiport network can be represented mathematically using a rational function approximation. In other words, the S parameters of a circuit exhibit a finite number of poles and zeros over a given frequency range. EM.Cube first starts with very few frequency samples and tries to fit rational functions of low orders to the scattering parameters. Then, it increases the number of samples gradually by inserting intermediate frequency samples in a progressive manner. At each iteration cycle, all the possible rational functions of higher orders are tried out. The process continues until adding new intermediate frequency samples does not improve the resolution of the &amp;amp;quot;S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;&amp;amp;quot; curves over the given frequency range. In that case, the curves are considered as having converged.&lt;br /&gt;
&lt;br /&gt;
You must have defined one or more ports for your planar structure run an adaptive frequency sweep. Open the Frequency Settings dialog from the Simulation Run dialog and select the '''Adaptive''' option of '''Frequency Sweep Type'''. You have to set values for '''Minimum Number of Samples''' and '''Maximum Number of Samples'''. Their default values are 3 and 9, respectively. You also set a value for the '''Convergence Criterion''', which has a default value of 0.1. At each iteration cycle, all the S parameters are calculated at the newly inserted frequency samples, and their average deviation from the curves of the last cycle is measured as an error. When this error falls below the specified convergence criterion, the iteration is ended. If EM.Cube reaches the specified maximum number of iterations and the convergence criterion has not yet been met, the program will ask you whether to continue the process or exit it and stop.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large frequency ranges, you may have to increase both the minimum and maximum number of samples. Moreover, remeshing the planar structure at each frequency may prove more practical than fixing the mesh at the highest frequency.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Settings adaptive frequency sweep parameters in [[Planar Module]]'s Frequency Settings Dialog.&lt;br /&gt;
&lt;br /&gt;
=== Examining Port Characteristics ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure is excited by gap sources or probe sources or de-embedded sources, and one or more ports have been defined, the planar MoM engine calculates the scattering, impedance and admittance (S/Z/Y) parameters of the designated ports. The scattering parameters are defined based on the port impedances specified in the project's Port Definition dialog. If more than one port has been defined in the project, the S/Z/Y matrices of the multiport network are calculated. Note that the S/Z/Y matrices of an N-port structure are related to each other through the following equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM121.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively, and &amp;lt;math&amp;gt;\mathbf{[\sqrt{Z_0}]}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM122.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the values of S/Z/Y parameters and VSWR data are calculated and reported in the output message window. The S, Z and Y parameters are written into output ASCII data files of complex type with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Every file begins with a header consisting of a few comment lines that start with the &amp;amp;quot;#&amp;amp;quot; symbol. The complex values are arranged into two columns for the real and imaginary parts. In the case of multiport structures, every single element of the S/Z/Y matrices is written into a separate complex data file. For example, you will have data files like S11.CPX, S21.CPX, ..., Z11.CPX, Z21.CPX, etc. The VSWR data are saved to an ASCII data file of real type with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension called, VSWR.DAT.&lt;br /&gt;
&lt;br /&gt;
If you run an analysis, the port characteristics have single complex values, which you can view using EM.Cube's data manager. However, there are no curves to graph. You can plot the S/Z/Y parameters and VSWR data when you have data sets, which are generated at the end of any type of sweep including a frequency sweep. In that case, the &amp;amp;quot;.CPX&amp;amp;quot; files have multiple rows corresponding to each value of the sweep parameter (e.g. frequency). EM.Cube's 2D graph data are plotted in EM.Grid, a versatile graphing utility. You can plot the port characteristics directly from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting port characteristics data to plot from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
You can also see a list of all the port characteristics data files in EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. By default, the S parameters are plotted as double magnitude-phase graphs, while the Y and Z parameters are plotted as double real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You can change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM129.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Data Manager showing a list of the port characteristics data files.&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it in the Data Manager and click its '''Edit''' button. In the Edit File Dialog, choose one of the options provided in the dropdown list labeled '''Graph Type'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM130.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Changing the graph type by editing a data file's properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM134.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plotted on a Smith Chart graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
=== Rational Interpolation Of Scattering Parameters ===&lt;br /&gt;
&lt;br /&gt;
The adaptive frequency sweep described earlier is an iterative process, whereby the Planar MoM simulation engine is run at a certain number of frequency samples at each iteration cycle. The frequency samples are progressively built up, and rational fits for these data are found at each iteration cycle. A decision is then made whether to continue more iterations. At the end of the whole process, a total number of scattering parameter data samples have been generated, and new smooth data corresponding to the best rational fits are written into new data files for graphing. EM.Cube's [[planar Module]] also allows you to generate a rational fit for all or any existing scattering parameter data as a post-processing operation without a need to run additional simulation engine runs.&lt;br /&gt;
&lt;br /&gt;
You can interpolate all the scattering parameters together or select individual parameters. You do this post-processing operation from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select Smart Fit. At the top of the Smart Fit Dialog, there is a dropdown list labeled '''Interpolate''', which gives a list of all the available S parameter data for rational interpolation. The default option is &amp;amp;quot;All Available Parameters&amp;amp;quot;. Then you see a box labeled '''Number of Available Samples''', whose value is read from the data content of the selected complex .CPX data file. Based on the number of available data samples, the dialog reports the '''Maximum Interpolant Order'''. You can choose any integer number for '''Interpolant Order''', from 1 to the maximum allowed. &lt;br /&gt;
&lt;br /&gt;
{{Note|Interpolant order more than 15 will suffer from numerical instabilities even if you have a very large number of data samples.}}&lt;br /&gt;
&lt;br /&gt;
You can use the '''Update''' button of the dialog to generate the interpolated data for a given order. The new data are written to a complex data file with the same name as the selected S parameter and a &amp;amp;quot;'''_RationalFit'''&amp;amp;quot; suffix. While this dialog is still open, you can plot the new data either directly from the Navigation Tree or from the Data Manager. If you are not satisfied with the results, you can return to the Smart Fit dialog and try a higher or lower interpolant order and compare the new data.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM131.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Smart Fit dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM133(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of a two-port structure in magnitude-phase format.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM132(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The smoothed version of the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of the two-port structure using EM.Cube's Smart Fit.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Output Simulation Data ===&lt;br /&gt;
&lt;br /&gt;
Depending on the source type and the types of observables defined in a project, a number of output data are generated at the end of a planar MoM simulation. Some of these data are 2D by nature and some are 3D. The output simulation data generated by EM.Cube's [[Planar Module]] can be categorized into the following groups:&lt;br /&gt;
&lt;br /&gt;
* '''Port Characteristics''': S, Z and Y Parameters and Voltage Standing Wave Ratio (VSWR)&lt;br /&gt;
* '''Radiation Characteristics''': Radiation Patterns, Directivity, Total Radiated Power, Axial Ratio, Main Beam Theta and Phi, Radiation Efficiency, Half Power Beam Width (HPBW), Maximum Side Lobe Level (SLL), First Null Level (FNL), Front-to-Back Ratio (FBR), etc.&lt;br /&gt;
* '''Scattering Characteristics''': Bi-static and Mono-static Radar Cross Section (RCS)&lt;br /&gt;
* '''Periodic Characteristics''': Reflection and Transmission Coefficients&lt;br /&gt;
* '''Current Distributions''': Electric and magnetic current amplitude and phase on all metal and slot traces and embedded objects&lt;br /&gt;
* '''Near-Field Distributions''': Electric and magnetic field amplitude and phase on specified planes and their central axes&lt;br /&gt;
&lt;br /&gt;
At the end of an analysis, the 2D quantities usually have a single value that is written into an ASCII data file. Complex-valued quantities are written into complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Real-valued quantities are written into real data files with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension. Polar 2D radiation pattern data and some other radiation characteristics are written into angular data files with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; extension. In this latter file type, polar data are stored as functions of an angle expressed in degrees. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). If a sweep simulation involves N sweep [[variables]], then the first N columns of the output data files show the samples of those sweep [[variables]]. All the 2D data files are listed in the '''2D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
3D output data, on the other hand, are defined as functions of the space coordinates and are usually of vectorial nature. Cartesian-type and mesh-type data such as current distributions and near-field field distributions are expressed as functions of the Cartesian (X, Y, Z) coordinates. Spherical-type data like far-field radiation patterns and RCS are expressed as functions of the spherical angles (&amp;amp;theta;, &amp;amp;phi;). The 3D radiation patterns are written into a file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension. This file contains the complex values of the &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field (E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;) as well as the total far field magnitude as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The 3D RCS patterns are written into a file with a &amp;amp;quot;'''.RCS'''&amp;amp;quot; extension. This file contains the real values of the &amp;amp;theta;- and &amp;amp;phi;-polarized RCS values as well as the total RCS as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The current distributions are written into data files with a &amp;amp;quot;'''.CUR'''&amp;amp;quot; extension. They contain the real and imaginary parts of the X, Y and Z components of electric ('''J''') and magnetic ('''M''') current on each cells together with the definition of all the node coordinates and node indices of the cells. The near-field distributions are written into data files with a &amp;amp;quot;'''.SEN'''&amp;amp;quot; extension. They contain the amplitude and phase of the X, Y and Z components of electric ('''E''') and magnetic ('''H''') fields as functions of the coordinates of sampling points. All the 3D data files are listed in the '''3D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The 3D Data Files tab of EM.Cube's Data Manager.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM139.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Viewing the contents of a mesh-type 3D data file in Data Manager.&lt;br /&gt;
&lt;br /&gt;
=== Standard vs. Custom Output ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a number of computed quantities are designated as &amp;amp;quot;Standard Output&amp;amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[File:functions_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Functions...'''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[File:custom_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Custom Output...'''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add''' button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit''' button, or you can delete any parameter from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
=== Viewing &amp;amp;amp; Visualizing Various Output Data Types ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a variety of 2D and 3D output data are generated. Some of these can be visualized or graphed directly from the Navigation Tree, while the others can only be accessed from the Data Manager. All of EM.Cube's simulation data are always written into ASCII data files that you can open and inspect or edit. Lists of these 2D and 3D data files appear under Data Manager's various tabs. The generated data also include all of [[Planar Module]]'s legitimate standard outputs that the simulation engine can compute given the specified source and observable types as well as all of your own previously defined custom output parameters. Note that in this release of EM.Cube, all the custom outputs are real-type data. Each custom output is written into a separate real data file with the same name as the parameter's given label and a &amp;amp;quot;'''.DAT'''&amp;amp;quot; file extension. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot its graph in '''EM.Grid'''. You can also view the contents of a data file by selecting its row in th file list and clicking the '''View''' button of the dialog or by simply double-clicking the highlighted row. This opens up a new window containing a convenient spreadsheet that gives a tabular view of the contents of the selected data file. There are a large number of data operations and manipulations that you can perform on the data content including matrix, calculus and statistical calculations as well as computing and plotting new datasets using the &amp;amp;quot;Compute&amp;amp;quot; feature of the spreadsheet. You can make multiple file selection using the keyboard's '''Ctrl''' and '''Shift''' keys.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing an angular file selected and highlighted for further action.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Data Manager's spreadsheet showing the contents of an angular data file.&lt;br /&gt;
&lt;br /&gt;
The 2D output data include real or complex quantities like various port, radiation, scattering and periodic characteristics. At the end of an analysis, most .CPX and .DAT data files have a single complex or real value, respectively. in other words, there are no curves to plot. Exceptions are Cartesian 2D radiation pattern or RCS data files along the principal and user define phi-cut planes, as well as polar 2D radiation pattern or RCS data files of angular type with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; file extension. These files contain the radiation pattern or RCS data as a function of some relevant angle in the specified plane. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). You can plot graphs of the 2D output data files that contain more than one row in '''EM.Grid'''. Each data file has a default graph type. Real data are plotted on EM.Grid's Cartesian graphs. Complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension are plotted on double Cartesian graphs of &amp;amp;quot;'''Magnitude-Phase'''&amp;amp;quot; type, showing the magnitude in dB and phase in radians. You can change the complex data's graph type to the &amp;amp;quot;'''Real-Imaginary'''&amp;amp;quot; or &amp;amp;quot;'''Smith Chart'''&amp;amp;quot; by selecting its entry in the Data Manager and clicking the '''Edit'''button to open the &amp;amp;quot;Edit File Properties Dialog&amp;amp;quot;. Angular data files like polar 2D radiation patterns or RCS, by default, are plotted on EM.Grid's &amp;amp;quot;'''Polar'''&amp;amp;quot; graphs. Note that real data can be graphed on bar charts, too, just as angular can alternatively be graphed on polar stem charts.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM142.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A 2D radiation pattern polar graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's 3D output simulation data usually have a vectorial nature and are defined as functions of the Cartesian or spherical space coordinates. At the end of a planar MoM simulation, you can view 3D visualizations of the vectorial output data such as current distributions, near-field field distributions, far-field radiation patterns and RCS in EM.Cube's project workspace by clicking on the corresponding observable entries in the Navigation Tree. When you run a sweep simulation of some sort, multiple 3D plots appear on the Navigation Tree representing all the sweep variable samples. You can animate these 3D visualization plots very conveniently from the Navigation Tree. To do so, right click on an observable's name in the Navigation Tree and select the '''Animation''' item from the contextual menu. Make sure that you right click on the observable's parent node, not on one of its child components corresponding to the sweep variable samples. The 3D plot in the project workspace starts to animate and continues forever until to stop it. A new window called &amp;amp;quot;''' Animation Controls Dialog'''&amp;amp;quot; opens up at the lower right corner of the EM.Cube desktop. This dialog allows you to control the animation speed using a box labeled '''Rate''', whose value multiplied by 100 milliseconds indeed gives the frame duration. You can speed up the animation or slow it down from the default rate of one frame per 300ms. The box labeled '''Sample''' show the current frame's plot label at any time. You can pause the animation, rewind it to the first frame, fast-forward it to the last frame or manually step it through back and forth using the movement buttons marked with the symbols |&amp;amp;lt;, &amp;amp;lt;&amp;amp;lt;, ||, &amp;amp;gt;&amp;amp;gt;,&amp;amp;gt;|.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM135.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Animating 3D radiation patterns as the send of a frequency sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM136.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep ===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the planar MoM simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweep, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed later, parametric sweeps are simple and straightforward and do not required careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;amp;quot;expression&amp;amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;amp;quot;formal&amp;amp;quot; option, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[File:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; [[Variables]]...'''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;amp;quot;Add Variable Dialog&amp;amp;quot;. Choose a '''Name''' for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;amp;quot;Variable List&amp;amp;quot;. You can also see the '''Current Value''' of every variable at any time in the Variable as dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit''' button or indirectly during a parametric sweep. In the former case, you have to click the '''Update''' button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, trace and object set dialogs, stack-up dialog or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;amp;quot;Variable List&amp;amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;amp;quot;current Value&amp;amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;amp;quot;Independent&amp;amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete''' and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;amp;quot;Start&amp;amp;quot; and &amp;amp;quot;End&amp;amp;quot; value and is incremented by a predetermined &amp;amp;quot;Step&amp;amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution''' is defined by &amp;amp;quot;Minimum&amp;amp;quot; and &amp;amp;quot;Maximum&amp;amp;quot; values, while '''Normal (Gaussian) Distribution''' is defined by a &amp;amp;quot;Mean&amp;amp;quot; and &amp;amp;quot;Standard Deviation&amp;amp;quot;. You need to specify the &amp;amp;quot;Number of Samples&amp;amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;amp;quot;Define Sweep Variable Dialog&amp;amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete''' and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up''' and '''Move Down''' buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;amp;quot;fake&amp;amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. If you run a dry run while EM.Cube is in the mesh view mode, then the planar mesh of your structure is updated for each combination of the sweep variable samples during the dry run process. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Optimizing Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (Optional but Highly Recommended) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;amp;lt;, &amp;amp;lt;=, &amp;amp;gt; or &amp;amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;amp;quot;'''=='''&amp;amp;quot; are regarded a &amp;amp;quot;'''Goals'''&amp;amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;amp;quot;'''Target Value'''&amp;amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;amp;quot;(LHS - RHS) == 0&amp;amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;amp;quot;non-Equal&amp;amp;quot; logical operators are regarded a &amp;amp;quot;'''Constraints'''&amp;amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[File:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;amp;quot;=== (Equal To)&amp;amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit''' button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation Run Dialog''', and select the '''[[Optimization]]''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;amp;quot;'''[[Optimization]] Algorithm'''&amp;amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm''' and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size''' as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;amp;quot;Define [[Optimization]] Variable Dialog&amp;amp;quot; opens up, where you have to set the '''Minimum'''and '''Maximum'''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog to change those value. If you check the box labeled &amp;amp;quot;''' Update [[Variables]] with Optimal Values'''&amp;amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;amp;quot;saturated&amp;amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;amp;quot;'''Exit Local Min Trap'''&amp;amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;amp;quot;'''Error Function'''&amp;amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;amp;quot;'''Maximum Error'''&amp;amp;quot; value for the objective function, which terminates the process as &amp;amp;quot;converged&amp;amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals''' and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those cases, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute''' button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals''' or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
== Periodic Planar Structures &amp;amp;amp; Antenna Arrays ==&lt;br /&gt;
&lt;br /&gt;
=== Finite Arrays vs. Infinite Periodic Structures ===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that exhibits a repeated geometric pattern. It is made up of identical elements that are arranged in the form of a periodic lattice. The spacing between the elements is denoted by Sx along the X direction and Sy along the Y direction. The number of elements is denoted by Nx along the X direction and Ny along the Y direction (i.e. a total of Nx.Ny elements). If Nx and Ny are finite numbers, you have a finite-sized periodic structure, which is constructed using an &amp;amp;quot;'''Array Object'''&amp;amp;quot; in EM.Cube. If Nx and Ny are infinite, you have an infinite periodic structure with periods Sx and Sy along the X and Y directions, respectively. An infinite periodic structure in EM.Cube is represented by a &amp;amp;quot;'''Periodic Unit Cell'''&amp;amp;quot;. Periodic structures have many applications including phased array antennas, frequency selective surfaces (FSS), electromagnetic bandgap structures (EBG), metamaterial structures, etc. EM.Cube allows you to model both finite and infinite periodic structures.&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; Real practical periodic structures obviously have finite extents. You can easily and quickly construct finite-sized arrays of arbitrary complexity using EM.Cube's &amp;amp;quot;Array Tool&amp;amp;quot;. However, for large values of Nx and Ny, the size of the computational problem may rapidly get out of hand and become impractical. For very large periodic arrays, you can alternatively analyze a unit cell subject to the periodic boundary conditions and calculate the current distribtutions and far fields of the periodic unit cell. For their radiation patterns, you can multiply the &amp;amp;quot;Element Pattern&amp;amp;quot; by an &amp;amp;quot;Array Factor&amp;amp;quot; that captures the finite extents of the structure. In many cases, an approximation of this type works quite well. But in some other cases, the edge effects and particularly the field behavior at the corners of the finite-sized array cannot be modeled accurately. Periodic surfaces like FSS, EBG and metamaterials are also modeled as infinite periodic structures, for which one can define reflection and transmission coefficients. For this purpose, the periodic structure is excited using a plane wave source. Reflection and transmission coefficients are typically functions of the angles of incidence.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
The straightforward approach to the modeling of finite-sized antenna arrays is to use the full-wave method of moments (MoM). This requires building an array of radiating elements using EM.Cube's '''Array Tool''' and feeding the individual array elements using some type of excitation. For example, if the antenna elements are excited using a gap source or a probe source, you can assign a certain array weight distribution among the elements as well as phase progression among the elements along the X and Y directions. EM.Cube currently offers uniform, binomial, Chebyshev and (arbitrary) data file-based weight distribution types. The full-wave MoM approach is very accurate and takes into account all the inter-element coupling effects. At the end of a planar MoM simulation of the array structure, you can plot the radiation patterns and other far field characteristics of the antenna array just like any other planar structure.&lt;br /&gt;
&lt;br /&gt;
The radiation pattern of antenna arrays usually has a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' such as first null level and first null beam width. To have EM.Cube calculate all such parameters, you must check the relevant boxes in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. In particular, you can plot such data files at the end of a sweep simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM91.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
Another approach to modeling a finite-sized antenna array is to analyze one of its elements and use the &amp;amp;quot;Array Factor&amp;amp;quot; concept to calculate its radiation patterns. This method ignores any inter-element coupling effects. In other words, you can regard the structure in the project workspace as a single isolated radiating element. To define an array factor, open the '''Radiation Pattern Dialog''' of the project. In the section titled &amp;amp;quot;'''Impose Array Factor'''&amp;amp;quot;, you will see a default value of 1 for the '''Number of Elements''' along the X and Y directions. This implies a single radiator, representing the structure in the project workspace. There are also default zero values for the '''Element Spacing''' along the X and Y directions. You should change both the number of elements and element spacing in the X and Y directions to define a finite array lattice. For example, you can define a linear array by setting the number of elements to 1 in one direction and entering a larger value for the number of elements along the other direction. Keep in mind that when using an array factor for far field calculation, you cannot assign non-uniform amplitude or phase distributions to the array elements. For that purpose, you have to define an array object with a source array.&lt;br /&gt;
&lt;br /&gt;
=== Defining A Periodic Domain ===&lt;br /&gt;
&lt;br /&gt;
In general, a planar structure in EM.Cube's [[Planar Module]] is assumed to have open boundaries. This means that the structure has infinite dimensions along the X and Y directions. In other words, the layers of the background structure extend to infinity, while the traces and embedded object sets have finite sizes. Along the Z direction, a planar structure can be open-boundary, or it may be truncated by PEC ground planes from the top or bottom or both. You can define a planar structure to be infinitely periodic along the X and Y directions. In this case, you only need to define the periodic unit cell. EM.Cube automatically reproduces the unit cell infinitely and simulates it using a spectral domain periodic version of the Green's functions of your project's background structure.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, you must open [[Planar Module]]'s Periodicity Settings Dialog by right clicking the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Periodicity Settings...''' from the contextual menu or by selecting '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt; 'Computational Domain &amp;amp;gt; Periodicity Settings...''' from the Menu Bar. In the Periodicity Settings Dialog, check the box labeled '''Periodic Structure'''. This will enable the section titled''&amp;amp;quot;''Lattice Properties&amp;amp;quot;. You can define the periods along the X and Y axes using the boxes labeled '''Spacing'''. You can also define values for periodic '''Offset''' along the X and Y directions, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
In a periodic structure, the virtual domain is replaced by a default blue periodic domain that is always centered around the origin of coordinates. Keep in mind that the periodic unit cell must always be centered at the origin of coordinates. The relative position of the structure within this centered unit cell will change the phase of the results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM99.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Regular vs. Generalized Periodic Lattices ===&lt;br /&gt;
&lt;br /&gt;
Besides conventional rectangular lattices, EM.Cube's [[Planar Module]] can also handle complex non-rectangular periodic lattices. For example, many frequency selective surfaces have skewed grids. In order to simulate skewed-grid periodic structures, the definition of the grid has to be generalized. A periodic structure is a repetition of a basic structure (unit cell) at pre-determined locations. Let these locations be described by (x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;, y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;), where m and n are integers ranging from -8 to 8. For a general skewed grid, x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; and y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; can be described by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_{mn} = m\Delta x + n \Delta x'&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;y_{mn} = m\Delta y + n \Delta y'&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; is the primary offset in the X direction (X Spacing) controlled by index m and &amp;lt;math&amp;gt;\Delta x'&amp;lt;/math&amp;gt; is the secondary offset in the X direction (X Offset) controlled by index n. The meanings of &amp;lt;math&amp;gt;\Delta y&amp;lt;/math&amp;gt; (Y Spacing) and &amp;lt;math&amp;gt;\Delta y'&amp;lt;/math&amp;gt; (Y Offset) are similar with the roles of indices m and n interchanged. To illustrate how to use this definition, consider an example of an equilateral triangular grid with side length L as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:image121.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of an equilateral triangular periodic lattice.&lt;br /&gt;
&lt;br /&gt;
From the figure, it is obvious that the y coordinate of each row is fixed and identical, thus &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. While in each row the spacing between adjacent elements is L, there is an offset of L/2 between the consecutive rows. This results in &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;. To sum up, an equilateral triangular grid can be described by &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. In an EM.Cube [[Planar Module]] project, the secondary offsets are equal to zero by default, implying a rectangular lattice. You can change the values of the secondary offsets using the boxes labeled '''X Offset''' and '''Y Offset''' in the '''Periodicity Settings Dialog''', respectively. Triangular and Hexagonal lattices are popular special cases of the generalized lattice type. In a triangular lattice with alternating Rows, &amp;lt;math&amp;gt;\Delta x' = \Delta x/2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. A Hexagonal lattice (with alternating rows) is a special case of triangular lattice in which &amp;lt;math&amp;gt;\Delta y = \sqrt{3\Delta x / 2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Interconnectivity Among Unit Cells ===&lt;br /&gt;
&lt;br /&gt;
In many cases, your planar structure's traces or embedded objects are entirely enclosed inside the periodic unit cell and do not touch the boundary of the unit cell. In EM.Cube's [[Planar Module]], you can define periodic structures whose unit cells are interconnected. Interconnectivity applies only to PEC, PMC and conductive sheet traces, and embedded object sets are excluded. Note that in a periodic planar structure, your objects cannot cross the periodic domain. However, you can arrange objects with linear edges such as one or more flat edges line up with the domain's bounding box. In such cases, EM.Cube's planar MoM mesh generator will take into account the continuity of the currents across the adjacent connected unit cells and will create the connection basis functions at the right and top boundaries of the unit cell. It is clear that due to periodicity, the basis functions do not need to be extended at the left or bottom boundaries of the unit cell.&lt;br /&gt;
&lt;br /&gt;
As an example, consider the periodic structure in the figure below that shows a metallic screen or wire grid. The unit cell of this structure can be defined as a rectangular aperture in a PEC ground plane (marked as Unit Cell 1). In this case, the rectangle object is defined as a slot trace. Alternatively, you can define a unit cell in the form of a microstrip cross on a metal trace. In the latter case, however, the microstrip cross should extend across the unit cell and connect to the crosses in the neighboring cells in order to provide current continuity.&lt;br /&gt;
&lt;br /&gt;
[[File:image122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Modeling a periodic screen using two different types of unit cell.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per3_tn.png|400px]] [[File:pmom_per4_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The PMC aperture unit cell and its planar mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per5_tn.png|400px]] [[File:pmom_per6_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The PEC cross unit cell and its planar mesh. Notice the cell extensions at the unit cell's boundaries.&lt;br /&gt;
&lt;br /&gt;
=== Periodic MoM Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the case of an infinite periodic planar structure, the field equations can be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E(r) = E^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{H(r) = H^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM94.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J_{mn}(r) = J_{mn}}(x,y,z) = \mathbf{J_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{M_{mn}(r) = M_{mn}}(x,y,z) = \mathbf{M_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; -\infty &amp;lt; m, n &amp;lt; \infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM95(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, &amp;lt;math&amp;gt;\mathbf{J_{00}(r)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{M_{00}(r)}&amp;lt;/math&amp;gt; are the periodic unit cell's electric and magnetic currents that are repeated everywhere in space on a rectangular lattice with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. &amp;lt;math&amp;gt;k_{x00}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;k_{y00}&amp;lt;/math&amp;gt; are the periodic propagation constants along the X and Y directions, respectively, and they are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{x00} = k_0 \sin\theta \cos\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{y00} = k_0 \sin\theta \sin\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM96(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;theta; and &amp;amp;phi; are the beam scan angles in the case of periodic excitation of lumped sources, or they are the spherical angles of incidence in the case of a plane wave source illuminating the periodic structure. Using the infinite summations, one can define periodic dyadic Green's functions in the spectral domain in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ \overline{\overline{G}}_{\mu \nu}^{PER} (r|r') } =&lt;br /&gt;
\frac{1}{S_x S_y} \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\mathbf{ \tilde{\overline{\overline{G}}}_{\mu \nu} } (k_x, k_y, z|z')&lt;br /&gt;
e^{-j[k_{xm}(x-x') + k_{yn}(y-y')]}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
k_{xm} = k_{x00} + \frac{2\pi m}{S_x} \quad \text{and} \quad&lt;br /&gt;
k_{ym} = k_{y00} + \frac{2\pi m}{S_y}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM97.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above doubly infinite periodic Green's functions are said to be expressed in terms of &amp;amp;quot;Floquet Modes&amp;amp;quot;. The exact formulation involves an infinite set of these periodic Floquet modes. During the MoM matrix fill process for a periodic structure, a finite number of Floquet modes are calculated. By default, EM.Cube's planar MoM engine considers M&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; = M&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; = 25. This implies a total of 51 modes along the X direction and a total of 51 modes along the Y direction, or a grand total of 51&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 2,601 Floquet modes. You can increase the number of Floquet modes for your project from the Planar MoM Engine Settings Dialog. In the section titled &amp;amp;quot;Periodic Simulation&amp;amp;quot;, you can change the values of '''Number of Floquet Modes''' in the two boxes designated X and Y.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM98.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Changing the number of Floquet modes from the Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Phased Arrays ===&lt;br /&gt;
&lt;br /&gt;
Earlier, it was argued that you can calculate the radiation pattern of a finite antenna array by modeling a single isolated element and multiplying its &amp;amp;quot;Element Pattern&amp;amp;quot; by the &amp;amp;quot;Array Factor&amp;amp;quot;. This method gives acceptable results only when the inter-element coupling effects are negligible, as it does not take into account such effects. Planar antennas printed on dielectric substrates usually exhibit inter-element coupling effects due to the propagation of the substrate surface wave modes. If your finite-sized array is very large and you cannot afford a straightforward full-wave MoM simulation of it, you can alternatively model it as an infinite array represented by a periodic unit cell. In this case, you calculate the radiation pattern of the unit cell structure and use it as the &amp;amp;quot;Element Pattern&amp;amp;quot; in conjunction with the &amp;amp;quot;Array Factor&amp;amp;quot;. The periodic Green's functions, in this case, capture the inter-element coupling effects. What is missing from this picture is the finite edge effects and/or corner effects, if any.&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a gap or probe source, it acts like an infinite periodic phased array. All the periodic replicas of the unit cell structure are excited. You can even impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the gap or probe source. At the bottom of the '''Gap Source Dialog''' or '''Probe Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. You can enter desired values for '''Theta''' and '''Phi''' beam scan angles in degrees. The corresponding phase progressions are calculated and applied to the periodic Green's functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\Psi_x = -\frac{2\pi S_x}{\lambda_0} \sin\theta \cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\Psi_y = -\frac{2\pi S_y}{\lambda_0} \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that you have to define a finite-sized array factor in the Radiation Pattern dialog. You do this in the '''Impose Array Factor''' section of this dialog. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of '''Element Spacing''' along the X and Y directions are automatically set equal to the value of '''Periodic Lattice Spacing''' along those directions. You have to set the '''Number of Elements''' along the X and Y directions, which are both equal to one initially, representing a single radiator. If you forget to define an array factor, the radiation pattern of the unit cell structure will be displayed, which does not show beam scanning.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM100.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the periodic scan angles in [[Planar Module]]'s Gap Source dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per9_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The 3D radiation pattern of a beam-steered periodic printed dipole array.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Periodic Structures Using Plane Waves ===&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a plane wave source, it acts as a periodic surface that reflects or transmits the incident wave. You can model frequency selective surfaces, electromagnetic band-gap structures and metamaterials in this way. EM.Cube calculates the reflection and transmission coefficients of periodic surfaces or planar structures. If you run a single plane wave simulation, the reflection and transmission coefficients are reported in the Output Window at the end of the simulation. Note that these periodic characteristics depend on the polarization of the incident plane wave. You set the polarization (TMz or TEz) in the '''Plane Wave Dialog''' when defining your excitation source. In this dialog you also set the values of the incident '''Theta''' and '''Phi''' angles.&lt;br /&gt;
&lt;br /&gt;
At the end of the planar MoM simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. As a result, you can run an adaptive sweep of periodic structures with a plane wave source just like projects with gap or probe sources. The reflection and transmission (R/T) coefficients can be plotted in EM.Grid on 2D graphs similar to the S parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
{{Note|In the absence of any finite traces or embedded objects in the project workspace, EM.Cube computes the reflection and transmission coefficients of the layered background structure of your project.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM102.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A periodic planar layered structure with slot traces excited by a normally incident plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Characterizing Periodic Surfaces Using Angular Sweeps ===&lt;br /&gt;
&lt;br /&gt;
The reflection and transmission characteristics of a period surface as functions of the incidence angle are often of great interest. For that purpose, you can run an angular sweep of your periodic structure, where you normally fix the &amp;amp;phi; angle and sweep the &amp;amp;theta; angle from 180 to 90 degrees for one-sided surfaces and from 180 to 0 degrees for two-sided surface. To run an angular sweep, open the [[Planar Module]]'s '''Simulation Run Dialog''' and select the '''Angular Sweep''' option from its '''Simulation Mode''' dropdown list. This enables the '''Settings''' button, which opens up the '''Angle Settings Dialog'''. First, you must choose either Theta or Phi as the '''Sweep Angle'''. Then you can set the '''Start''' and '''End''' values of the selected incidence angle as well as the '''Number of Samples'''. At the end of an angular sweep simulation, you can plot the reflection and transmission coefficients from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The reflection and transmission coefficients of the structure are saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM103.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Structures Using Adaptive Frequency Sweeps ===&lt;br /&gt;
&lt;br /&gt;
You learned earlier how to use EM.Cube's powerful, adaptive frequency sweep utility to study the frequency response of a planar structure. Adaptive frequency sweep uses rational function interpolation to generate smooth curves of the scattering parameters with a relatively small number of full-wave simulation runs in a progressive manner. Therefore, you need a port definition in your planar structure to be able to run an adaptive frequency sweep. This is clear in the case of an infinite periodic phased array, where your periodic unit cell structure must be excited using either a gap source or a probe source. You run an adaptive frequency sweep of an infinite periodic phased array in exactly the same way to do for regular, aperiodic, planar structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar Modules also allows you to run an adaptive frequency sweep of periodic surfaces excited by a plane wave source. In this case, the planar MoM engine calculates the reflection and transmission coefficients of the periodic surface. Note that you can conceptually consider a periodic surface as a two-port network, where Port 1 is the top half-space and Port 2 is the bottom half-space. In that case, the reflection coefficient R is equivalent to S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter, while the transmission coefficient T is equivalent to S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameter. This is, of course, the case when the periodic surface is illuminated by the plane wave source from the top half-space, corresponding to 90°&amp;amp;lt; &amp;amp;theta; = 180°. You can also illuminate the periodic surface by the plane wave source from the bottom half-space, corresponding to 0° = &amp;amp;theta; &amp;amp;lt; 90°. In this case, the reflection coefficient R and transmission coefficient T are equivalent to S&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;12&amp;lt;/sub&amp;gt; parameters, respectively. Having these interpretations in mind, EM.Cube enables the &amp;amp;quot;'''Adaptive Frequency Sweep'''&amp;amp;quot; option of the '''Frequency Settings Dialog''' when your planar structure has a periodic domain together with a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite-Sized Periodic Arrays Using NCCBF Technique ===&lt;br /&gt;
&lt;br /&gt;
Previously, you saw how the concept of &amp;amp;quot;Array Factor&amp;amp;quot; is used to approximate the far field radiation pattern of a finite-sized array of radiators. The total radiation pattern can be expressed as the product of the array factor and the &amp;amp;quot;Element Pattern&amp;amp;quot;. The array factor captures the topology of the array lattice and depends on the number of elements along the X and Y directions as well as the element spacing along those directions. As for the choice of element pattern, you saw two extreme cases. In the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; option, you compute the radiation pattern of a single stand-alone radiator and completely ignore any coupling effects from the neighboring elements. This option is readily available in the Radiation Pattern Dialog of the Far Field observable. In the &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; option, you analyze a periodic version of the radiating element with periods equal to the element spacing. The computed radiation pattern of the periodic unit cell in this case captures the coupling effects from an infinite number of elements.&lt;br /&gt;
&lt;br /&gt;
The array factor approach works well when the inter-element coupling is negligible or when the array contains a very large number of elements. However, finite edge and corner effects cannot be modeled accurately using a simple array factor. A full-wave approach is needed where all the elements are discretized properly, and their interactions are incorporated into the final solution. EM.Cube's Planar MoM simulation engine lets you analyze finite-sized antenna arrays in a rigorous, full-wave manner. As you saw earlier, you can even introduce a source array with arbitrary (amplitude and phase) weights and realize a complex, non-uniformly excited, finite-sized antenna array. Note that if the array contains a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; . N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; elements, and each radiating element involves a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; vectorial basis functions, the numerical solution of the problem will produce a system of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;linear equations. As an example, consider a rectangular patch antenna element that involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. Now consider a not-so-large, 8 × 8 array of these patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. The resulting linear system will have an enormous size of N = 30,720. Keep in mind that, unlike the sparse matrices of the Finite Element Method (FEM), MoM linear systems are dense by nature and typically ill-conditioned. The inversion of dense matrices of such sizes or larger takes a significant amount of computation time even if you use fast iterative solvers.&lt;br /&gt;
&lt;br /&gt;
EMAG Technologies Inc. has recently developed a novel technique, called '''Numerically Constructed Characteristic Basis Functions (NCCBF)''', which generates physics-based entire-domain basis functions for the elements of a finite-sized array. These &amp;amp;quot;sophisticated&amp;amp;quot; basis functions are linear combinations of the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; solutions and &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; solutions. Unlike the array factor method, which is a post-processing calculation of far-field data, the NCCBF method generate a full-wave MoM solution with entire-domain basis functions. Considering the same example of the patch antenna array discussed earlier, the NCCBF method generates a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 4 entire-domain basis functions on each patch element: an isolated X-directed solution, a periodic X-directed solution, an isolated Y-directed solution, and a periodic Y-directed solution. The same approach applies equally well to triangular RWG basis functions and is not limited to rectangular cells. As a result, the new MoM linear system has a dimension of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = (4)(64) = 256. In other words, the NCCBF method compresses the original MoM matrix of size N = 30,720 to one of significantly reduced size N = 256 (i.e. a compression factor of 120x).&lt;br /&gt;
&lt;br /&gt;
=== Running a NCCBF Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the current release of EM.Cube's [[Planar Module]], the NCCBF MoM solver works with any number of distinct, finite-sized arrays if they are excited with one of the following three source types:&lt;br /&gt;
&lt;br /&gt;
# Gap Sources&lt;br /&gt;
# Probe Sources&lt;br /&gt;
# Plane Wave Sources&lt;br /&gt;
&lt;br /&gt;
Note that you can have several coexisting finite arrays with different element spacings (or different periodicities). You can also have regular (aperiodic) objects coexisting with your collection of finite arrays. In that case, the NCCBF process will create entire-domain basis functions for the elements of the finite arrays, while the regular method of moments will apply to the aperiodic portions of your planar structure. This flexibility makes NCCBF a very versatile and powerful technique.&lt;br /&gt;
&lt;br /&gt;
There are a few rules that must be followed and observed when planning a NCCBF simulation. '''Each finite-sized array must be constructed using an EM.Cube &amp;amp;quot;Array Object&amp;amp;quot;. Additionally, each array object must stand alone in a dedicated trace or embedded object set of its own.''' In other words, if an array object belongs to a trace or embedded object set that contains other objects, it will be excluded from the NCCBF process and will get a regular MoM treatment. Keep in mind that [[Planar Module]] allows you to define different traces located at the same Z-plane, although the objects belonging to these separate traces cannot be connected to one another according to the planar meshing rules. Similarly, you can define two or more PEC via sets hosted by the same substrate layer. Therefore, if your planar structure contains finite arrays and aperiodic objects, you have to group them into separate traces or embedded object sets.&lt;br /&gt;
&lt;br /&gt;
To run an NCCBF simulation, open the '''Simulation Run Dialog''', and then open the'''Planar MoM Engine Settings Dialog'''. In the &amp;amp;quot;'''Finite Array Simulation'''&amp;amp;quot; section of the latter dialog, check the box labeled &amp;amp;quot;'''NCCBF Matrix Compression'''&amp;amp;quot;. This box is unchecked by default. Checking it enables the NCCBF Settings button. Click this button to open the NCCBF Settings Dialog. The dialog features a &amp;amp;quot;List of Unit Cells Used for NCCBF Matrix Compression&amp;amp;quot;. This list initially empty. To add unit cells to it, click the '''Add''' button of the dialog to open the &amp;amp;quot;'''Add Unit Cell Dialog'''&amp;amp;quot;. This dialog has two tables: Available Unit Cells on the left side and Associated Unit Cells on the right side. The left table shows a list of all the available, legitimate array objects in your project workspace. Remember that for an array object to be eligible for NCCBF compression, it has to stand alone on a dedicated trace or embedded object set, whichever applies. Select an array object from the left table and use the right arrow button (--&amp;amp;gt;) to move it to the right table to associate it with the new NCCBF unit cell. You can associate more than one array object with the same NCCBF unit cell. In this case, the parent elements of all the associated array objects collectively constitute the NCCBF unit cell. The NCCBF unit cell is the planar structure that is analyzed separately, first, as a stand-alone isolated element, and next, as a periodic unit cell, to generate the NCCBF entire-domain basis function solutions. It is therefore very important that the array objects be positioned carefully with respect to the origin of coordinated and relative to one another to form the correct NCCBF unit cell. Once you move one or more array object names to the &amp;amp;quot;Associated&amp;amp;quot; table on the right, you can move them back to the &amp;amp;quot;Available&amp;amp;quot; table on the left using the left arrow (&amp;amp;lt;--) button. You can also instruct EM.Cube to use only the isolated element solution by unchecking the box labeled &amp;amp;quot;'''Include Periodic Solution of Unit Cell'''&amp;amp;quot;. Once you are satisfied with the definition of your NCCBF unit cell, close the dialog to return to the NCCBF Settings dialog. Here you see the name of the newly added NCCBF unit cell in the list along with the Number of Solutions and the names of all the associated array objects for each NCCBF unit cell. You can modify each row using the '''Edit''' button or remove it from the list using the '''Delete''' button. Close the NCCBF Settings dialog to return to the Planar MoM Engine Settings dialog, and close the latter to return to the Simulation Run dialog, where you can now start the NCCBF simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM163.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar MoM's NCCBF Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM162.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Planar MoM's &amp;amp;quot;Add Unit Cell&amp;amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
=== Symmetries, Array Objects &amp;amp;amp; Composite Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] treats array objects in a special way. That is why you need to use array objects with certain rules for NCCBF simulations. In general, if the mesh of your planar structure involves a total of N vectorial basis functions, the MoM matrix will contain a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; elements. Instead of computing the entire N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; basis interactions, the Planar MoM simulation engine takes advantage of the inherent symmetry properties of the dyadic Green's functions and camputes the diagonal elements of the matrix and all the elements below the diagonal. This amounts to N.(N+1)/2 basis interactions. In many cases, the MoM matrix is symmetric, and the elements above the diagonal are simply mirror-image of the below-diagonal elements. In planar structures that involve both metal and slot traces, there will be sign reversals for some interactions.&lt;br /&gt;
&lt;br /&gt;
In many cases, especially in the areas that contain sizable numbers of rectangular mesh cells, the basis functions are naturally grouped into distinct sets that are called domains. As you saw earlier in the discussion of planar mesh generation, uniform domains with identical rectangular cells bring significant savings during the matrix fill process. Using the concept of domains renders the MoM matrix as a block matrix, whose blocks represent the interactions among the domains. The diagonal blocks therefore correspond to self-domain interactions. By a similar argument, if your planar structure is made up of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; domains, then a total of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) are computed. An EM.Cube array object consists of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical geometrical elements. If the array object belongs to a trace that has other objects in it, then by the planar mesh generator's rules, the elements of the array object are merged with the other objects on the same trace using the &amp;amp;quot;Union&amp;amp;quot; Boolean operation. If some array elements possibly have connections with other objects, such connections are taken care of in the meshing process. '''However, if an array object stands alone in a dedicated trace, then only the parent (first) element is meshed, and it mesh is copied and cloned for all the other elements of the array.''' This produces a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical domains of vectorial basis functions. A direct consequence of this is identification of only N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; unique domain-pair interactions or matrix blocks. In the absence of these symmetries, a total of at least N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) must be computed. To better illustrate such matrix fill savings, let us consider the previous, not-so-large, 8 × 8 array of patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. It was previously assumed that each rectangular patch antenna element involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. The numerical solution of this structure produces a linear system of total size N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 30,720. The total number of complex-valued elements of this matrix is 9.44E+08. This is the total number of highly sophisticated multi-dimensional integrals that you need to compute during a brute-force matrix fill process. For the sake of generality of the argument, here we ignore the huge additional savings that rectangular cells offer, and we assume that each unique domain-pair interaction involves N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 230,400 elements, except for the self-domain interaction which requires N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 115,440 integral computations. This amounts to a total of (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; -1) . N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 1.46E+07 integral computations, which is roughly N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;(64) times fewer and faster than a brute-force matrix fill process.&lt;br /&gt;
&lt;br /&gt;
To remedy the limitation that stand-alone array objects on dedicated traces cannot be connected to anything and therefore would severely limit the geometrical complexity of individual elements, EM.Cube allows you to build arrays of composite objects. A &amp;amp;quot;'''Composite Object'''&amp;amp;quot; in EM.Cube is a group of objects that are tied together only for the purpose of organization. As a result, the mesh of a composite object is the same as that of its constituent member objects (including any possible connections), had they not been grouped together. In a similar manner to simpler array objects, if a composite array stands alone in a dedicated trace or embedded object set, then only the parent composite object is meshed, and its mesh is copied and cloned for all the other composite elements of the array object. Furthermore, all the unique domain-pair interactions are identified during the matrix fill process, and lead to a major saving in computation time. '''Note that you can assign gap or probe sources to composite arrays in a similar way as you excite simpler array objects.''' If your planar structure involves a composite array, whose composite parent element has constituent members: Object1, Object2, ..., then the Gap Source dialog or Probe Source dialog will include the names of all the eligible constituent members (rectangle strips or PEC via objects) that can host the respective source types. '''Complex composite arrays hosting gap or probe source arrays or illuminated by plane wave sources are great candidates for NCCBF simulation.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM165.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Assigning gap sources to the elements of a composite array object.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Picasso</id>
		<title>EM.Picasso</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Picasso"/>
				<updated>2013-06-14T15:39:10Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Viewing &amp;amp;amp; Visualizing Various Output Data Types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Picasso® is a versatile planar structure simulator for modeling and design of printed antennas, planar microwave circuits, and layered periodic structures. EM.Picasso's simulation engine is based on a 2.5-D full-wave Method of Moments (MoM) formulation that provides the ultimate modeling accuracy and computational speed for open-boundary multilayer structures. It can handle planar structures with arbitrary numbers of metal layouts, slot traces, vertical interconnects and lumped elements interspersed among different substrate layers. You can use EM.Picasso to model large finite-sized antenna arrays as well as infinite periodic structures such as frequency selective surfaces.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Picasso has been successfully used by numerous users around the globe in industry, academia and government. The new EM.Picasso 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has introduced far more powerful CAD utilities, greater geometrical variety, and a vast array of capabilities like parametric sweep, optimization, data visualization and post-processing computations. The new foundation also facilitates import and export of many popular CAD formats and provides a seamless interface with our other simulation tools.&lt;br /&gt;
&lt;br /&gt;
== A Planar Method Of Moments Primer ==&lt;br /&gt;
&lt;br /&gt;
The Method of Moments (MoM) is a rigorous, full-wave numerical technique for solving open boundary electromagnetic problems. Using this technique, you can analyze electromagnetic radiation, scattering and wave propagation problems with relatively short computation times and modest computing resources. The method of moments is an integral equation technique; it solves the integral form of Maxwell’s equations as opposed to their differential forms that are used in the finite element or finite difference time domain methods.&lt;br /&gt;
&lt;br /&gt;
In a planar MoM simulation, the background structure is usually a layered planar structure that consists of one or more laterally infinite material layers. In EM.Cube’s [[Planar Module]], the layered structure is stacked along the Z axis. In other words, the dimensions of the layers are infinite along the X and Y axes. Metallic traces are placed at the boundaries between the substrate or superstrate layers. These are modeled by perfect electric conductor (PEC) traces or conductive sheet traces of finite thickness and finite conductivity. Some layers might be separated by infinite perfectly conducting ground planes. The two sides of a ground plane can be electromagnetically coupled through one or several slots or apertures. Such slots or apertures are modeled by magnetic currents and are realized and represented by perfectly magnetic conductor (PMC) traces. Furthermore, the metallic traces can be interconnected or connected to ground planes using embedded objects. Such objects can be used to model circuit vias, plated-through holes or dielectric inserts. These are modeled as volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
The currents in a planar MoM simulation are discretized as a collection of elementary currents with small finite spatial extents. These elementary currents are called basis functions and obviously have a vectorial nature. The total currents (solution of the problem) are summations of these elementary currents. The basis functions are well defined and easy to calculate; however, their amplitudes are initially unknown in a MoM problem. Through the planar MoM solution, you find these unknown amplitudes. Once the total currents are known, you can calculate the fields everywhere in the structure.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Green’s Functions ===&lt;br /&gt;
&lt;br /&gt;
The Green’s functions are the solutions of boundary value problems when they are excited by an elementary source. This is usually assumed to be an infinitesimally small vectorial point source. In order for Green’s functions to be computationally useful, they must have analytical closed forms like a mathematical expression, or one should be able to compute them using a recursive process. It turns out that only very few boundary value problems have closed-form Green’s functions. Planar layered structures with laterally infinite extents are one of those few cases, which can be represented by recursive dyadic Green's functions.&lt;br /&gt;
&lt;br /&gt;
In general, a structure may support both electric ('''J''') and magnetic ('''M''') currents. The total electric ('''E''') and magnetic ('''H''') fields can be expressed in terms of the electric and magnetic currents in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;E = E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;H = H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''GH&amp;lt;sub&amp;gt;M&amp;lt;/sub&amp;gt;''' are the dyadic Green’s functions for the electric and magnetic currents due to electric and magnetic current source, respectively, and '''E&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' and '''H&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' are the incident or impressed electric and magnetic fields, respectively. In these equations, '''r''' is the position vector of the observation point and '''r'''' is the position vector of the source point. V is the volume that contains all the sources and the volume integration is performed with respect to the primed coordinates. The incident or impressed fields provide the excitation of the structure. They may come from an incident plane wave or a gap source on a microstrip line, a short dipole, etc. The complexity of the Green’s functions depends on what is considered as the background structure. If you remove all the unknown currents from the structure, you are left with the background structure.&lt;br /&gt;
&lt;br /&gt;
=== Planar Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
To derive a system of integral equations, we enforce the boundary conditions on the integral definitions of the '''E''' and '''H''' fields as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_E(E) = L_E \bigg\{ E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_H(H) = L_H \bigg\{ H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM4(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' is the boundary value operator for the electric field and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' is the boundary value operator for the magnetic field. For example, '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E'''field vanish on perfect conductors:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = 0, \quad \mathbf{r} \in PEC &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM65.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E''' and '''H''' fields be continuous across an aperture in a perfect ground plane:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{E}^+ - \mathbf{E}^-) = 0 \\&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{H}^+ - \mathbf{H}^-) = 0&lt;br /&gt;
\end{cases} &lt;br /&gt;
\quad \Rightarrow \quad&lt;br /&gt;
\mathbf{M}^+(r) = \mathbf{M}^-(r), \quad r \in PMC&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM66(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the fact that the dyadic Green’s functions and the incident or impressed fields are all known, one can solve the above system of integral equations to find the unknown currents '''J''' and '''M'''.&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE's [[Planar Module|Planar module]], magnetic currents are always surface current with units of V/m. Electric currents, however, can be surface currents with units of A/m as in the case of metallic traces like microstrip lines, or they can be volume currents with units of A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; as in the case of perfectly conducting vias. Dielectric inserts are modeled as volume polarization currents that are related to the electric field '''E''' in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J}_p(r) = jk_0 Y_0(\varepsilon_r - \varepsilon_b)\mathbf{E}(r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant, &amp;lt;math&amp;gt;Y_0 = \tfrac{1}{Z_0} = \tfrac{1}{120\pi}&amp;lt;/math&amp;gt; is the free space intrinsic admittance, &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is the permittivity of the dielectric insert, and &amp;amp;epsilon;&amp;lt;sub&amp;gt;b&amp;lt;/sub&amp;gt; is the permittivity of its background layer. In a 2.5-D formulation, it is assumed that the volume currents have only a vertical component along the Z direction, and their circumferential components are negligible.&lt;br /&gt;
&lt;br /&gt;
=== Numerical Solution Of Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
The planar integral equations derived earlier can be solved numerically by discretizing the unknown currents using a proper meshing scheme. The original functional equations are reduced to discretized linear algebraic equations over elementary cells. The unknown quantities are found by solving this system of linear equations, and many other parameters can be computed thereafter. This method of numerical solution of integral equations is known as the Method of Moments (MoM). In this method, the unknown electric and magnetic currents are represented by expansions of basis functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;J(r) = \sum_{n=1}^N I_n^{(J)} f_n^{(J)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;M(r) = \sum_{k=1}^K V_k^{(M)} f_k^{(M)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_k^{(M)}&amp;lt;/math&amp;gt; are the generalized vector basis functions for the expansion of electric and magnetic currents, respectively, and &amp;lt;math&amp;gt;I_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;V_k^{(M)}&amp;lt;/math&amp;gt; are the unknown amplitudes of these basis functions, which have to be determined. Substituting these expansions into the integral equations generates a set of discretized integral equations, which can further be converted to a system of linear algebraic equations. This is accomplished by testing the discretized integral equations using the a set of test functions. In the method of moments, the Galerkin technique is typically used, which chooses the expansion basis functions as test functions. This leads to the following linear system:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
Z^{(EJ)} &amp;amp; T^{(EM)} \\&lt;br /&gt;
U^{(HJ)} &amp;amp; Y^{(HM)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
\cdot&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
I^{(J)} \\&lt;br /&gt;
V^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
=&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
V^{(E)} \\&lt;br /&gt;
I^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(EJ)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot &lt;br /&gt;
\iiint\limits_{V_j} dv' \overline{\overline{G}}_{EJ}(r|r') \cdot f_i^{(J)}(r')&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_i^{(E)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot E^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_i^{(H)} = \iiint\limits_{V_i} dv f_i^{(M)}(r) \cdot H^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similar expressions can be derived for the T&amp;lt;sup&amp;gt;(EM)&amp;lt;/sup&amp;gt;, U&amp;lt;sup&amp;gt;(HJ)&amp;lt;/sup&amp;gt; and Y&amp;lt;sup&amp;gt;(HM)&amp;lt;/sup&amp;gt;elements of the MoM matrix.&lt;br /&gt;
&lt;br /&gt;
=== Discretization Of Electric &amp;amp;amp; Magnetic Currents ===&lt;br /&gt;
&lt;br /&gt;
The right choice of the basis functions to represent the elementary currents is very important. It will determine the accuracy and computational efficiency of the resulting numerical solution. Rooftop basis functions are one of the most popular types of basis functions used in a variety of MoM formulations. The surface currents (whether electric or magnetic) are discretized using 2D rooftop basis functions shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image055_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Rooftop or RWG basis functions built over two rectangular, triangular or mixed cells.&lt;br /&gt;
&lt;br /&gt;
The rooftop basis functions are defined over two adjacent cells with a common edge of length. If the two cells are triangular, then the so-called RWG functions are obtained. It is also possible to define rooftop functions over two adjacent rectangular cells or two adjacent rectangular and triangular cells with a common edge. On a rectangular cell, the function is defined as having a (descending or ascending) linear profile in one direction and a constant profile in the other perpendicular direction.&lt;br /&gt;
&lt;br /&gt;
The volume polarization currents in 2.5-D MoM have a vertical direction along the Z-axis. These are discretized using prismatic basis functions that have either a rectangular or triangular base with a constant profile along the Z-axis.&lt;br /&gt;
&lt;br /&gt;
[[File:image065_tn.png]][[File:image066_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Prismatic basis functions built over single triangular and rectangular cells.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Planar Structure ==&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM14.png|thumb|350px|A typical planar layered structure]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] is intended for constructing and modeling planar layered structures. By a planar structure we mean one that contains a background substrate of laterally infinite extents, made up of one or more material layers all stacked up vertically along the Z axis. Objects of finite size are then interspersed among these substrate layers. This is somehow different than EM.Cube's other computational modules, which are geared for handling arbitrary 3D structures.&lt;br /&gt;
&lt;br /&gt;
In [[Planar Module]], the background structure, called &amp;amp;quot;'''Layer Stack-up'''&amp;amp;quot;, may involve one or more material layers of infinite extents along the X and Y axes but of finite thickness along the Z axis. When you start a new project, the background structure has a single vacuum layer. The layer stack-up is always terminated from the top and bottom by two infinite half-spaces. The terminating half-spaces might be the free space, or a perfect conductor (PEC ground), or any material medium. Most planar structures used in RF and microwave applications such as microstrip-based components have a PEC ground at their bottom. EM.Cube's default stack-up has a vacuum top half-space and a PEC bottom half-space. Some structures like stripline components require two bounding PEC grounds at both top and bottom.&lt;br /&gt;
&lt;br /&gt;
The finite-sized objects of a planar structure may include metal traces, slots and apertures, vertical vias and interconnects, or dielectric inserts including air voids inside the substrate layers. Metal traces are modeled as electric surface currents. These are planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on metal (PEC) traces and placed at the boundary (interface) plane between two substrate layers. Slots and apertures are modeled as magnetic surface currents on the surface of an infinite PEC plane and provide electromagnetic coupling between its top and bottom sides. These, too, are constructed using planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on slot (PMC) traces and placed at the boundary (interface) plane between two substrate layers. EM.Cube's [[Planar Module]] also allows prismatic objects that can be modeled by electric volume currents. These include vertical vias and dielectric inserts, and are called embedded object sets. [[Planar Module|Planar module]] does not allow construction of 3D CAD objects. Instead, you draw the cross section of prismatic objects as planar [[Surface Objects|surface objects]] parallel to the XY plane. EM.Cube then automatically extrudes these cross sections and constructs and displays 3D prisms over them. The prisms extend all the way across the thickness of the host substrate layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:PMOM14.png]]&lt;br /&gt;
Figure 1: A typical planar layered structure.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Defining Layer Stack-Up ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube’s [[Planar Module]], there is always a default background structure that consists of a finite vacuum layer sandwiched between a vacuum top half-space and a PEC bottom half-space. Every time you enter the [[Planar Module|Planar module]], the '''Stack-up Settings Dialog''' opens up. This is where you define the entire background structure. Once you close this dialog, you can open it again by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Layer Stack-up Settings...''' from the contextual menu. Or alternatively, you can select the menu item '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Layer Stack-up Settings...'''&lt;br /&gt;
&lt;br /&gt;
The Stack-up Settings dialog has two tabs: '''Layer Hierarchy''' and '''Embedded Sets'''. The Layer Hierarchy tab has a table that shows all the background layers in hierarchical order from the top half-space to the bottom half-space. It also lists the material label of each layer, Z-coordinate of the bottom of each layer, its thickness (in project units) and material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). There is also a column that lists the names of embedded object sets inside each substrate layer, if any.&lt;br /&gt;
&lt;br /&gt;
You can add new layers to your project's stack-up or delete its layers, or move layers up or down and thus change the layer hierarchy. To add a new background layer, click the arrow symbol on the '''Insert...'''button at the bottom of the dialog and select '''Substrate Layer''' from the button's dropdown list. A new dialog opens up where you can enter a label for the new layer and values for its material properties and thickness in project units.&lt;br /&gt;
&lt;br /&gt;
You can delete a layer by selecting its row in the table and clicking the '''Delete''' button. To move a layer up and down, click on its row to select and highlight it. Then click either the '''Move Up''' or '''Move Down''' buttons consecutively to move the selected layer to the desired location in the stack-up. Note that you cannot delete or move the top or bottom half-spaces.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM8(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Editing Substrate Layers ===&lt;br /&gt;
After creating a substrate layer, you can always edit its properties in the Layer Stack-up Settings dialog. Click on any layer's row in the table to select and highlight it and then click the '''Edit''' button. The substrate layer dialog opens up, where you can change the layer's label and assigned color. In the material properties section of the dialog, you can change the name of the material and its properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). To define electrical losses, you can either assign a value for electric conductivity (s), or alternatively, define a loss tangent for the material. In the latter case, check the box labeled &amp;amp;quot;'''Specify Loss Tangent'''&amp;amp;quot; and enter a value for it. In this case, the electric conductivity field becomes greyed out and reflects the corresponding s value at the center frequency of the project.&lt;br /&gt;
&lt;br /&gt;
You can also set the thickness of the substrate layer in the project units. Note that you cannot change the thickness of the top and bottom half-spaces. You can only change their material properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM9.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Substrate Layer dialog.&lt;br /&gt;
&lt;br /&gt;
You can also use EM.Cube's Material List to define the material properties of a substrate layer. In the Substrate Layer Dialog, click the '''Material''' button to open the '''Material List'''. In the Material List Dialog, pick any material or type the first letter of a material to highlight it. Then click the '''OK''' button or simply hit the '''Enter''' key of your keyboard to close the list and return to the substrate layer dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM10.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Materials dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Object Types ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] groups objects by their material and electromagnetic properties. Each object group shares the same color and same position in the layer stack-up. All the planar objects belonging to the same trace are located on the same substrate layer boundary. All the prismatic objects belonging to the same embedded set lie inside the same substrate layer and have the same material composition. Theoretically speaking, all the objects belonging to a group are governed by the same boundary conditions. EM.Cube’s [[Planar Module]] currently provides the following types of objects for building a planar layered structure:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC) Traces:''' These represent infinitesimally thin metallic objects that are deposited or metallized on or between substrate layers. PEC objects are modeled by surface electric currents that satisfy the PEC boundary condition.&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC) Traces:''' These are used to model slots and apertures in infinite PEC ground planes. PMC objects are always assumed to lie on an infinite horizontal PEC ground plane with zero thickness. They are modeled by surface magnetic currents, enforcing the continuity of tangential fields across the slots or apertures.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metals. They have a finite conductivity and a very small thickness. A surface impedance boundary condition is enforced on the surface of such traces.&lt;br /&gt;
# '''PEC Via Sets:''' These are metallic objects such as shorting pins, interconnect vias, plated-through holes, etc. that are grouped together as prismatic object sets. The embedded objects are modeled as vertical volume conduction currents.&lt;br /&gt;
# '''Embedded Dielectric Sets:''' These are prismatic dielectric objects inserted inside a substrate layer. You can define a finite permittivity and conductivity for such objects, but their height is always the same as the height of their host layer. The embedded dielectric objects are modeled as vertical volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
=== Defining Traces &amp;amp;amp; Object Sets ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]], the project workspace looks empty, and there are no finite objects in it. However, a default background structure is always assumed to exist by default. Objects are defined as part of traces or embedded sets. Once defined, you can see a list of project objects in the '''Physical Structure''' section of the Navigation Tree. Traces and object sets can be defined either from Layer Stack-up Settings dialog or from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
In the '''Layer Stack-up Settings''' dialog, you can add a new trace to the stack-up by clicking the arrow symbol on the '''Insert''' button of the dialog. You have to choose from '''Metal (PEC)''', '''Slot (PMC)''' or '''Conductive Sheet''' options. A respective dialog opens up, where you can enter a label and assign a color other than default ones. Once a new trace is defined, it is added, by default, to the top of the stack-up table underneath the top half-space. From here, you can move the trace down to the desired location on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Every time you define a new trace, it is also added under the respective category in the Navigation Tree. Alternatively, you can define a new trace from the Navigation Tree by right clicking on one of the trace type names and selecting '''Insert New PEC Trace...'''or '''Insert New PMC Trace...'''or '''Insert New Conductive Sheet Trace...'''A respective dialog opens up for setting the trace properties. Once you close this dialog, it takes you directly to the Layer Stack-up Settings dialog so that you can set the right position of the trace on the stack-up.&lt;br /&gt;
&lt;br /&gt;
=== Drawing Planar Objects ===&lt;br /&gt;
&lt;br /&gt;
As soon as you start drawing geometrical objects in the project workspace, the Physical Structure section of the Navigation Tree gets populated. The names of traces are added under their respective trace type category, and the names of objects appear under their respective trace group. At any time, one and only one trace is active in the project workspace. An active trace is where all the new objects you draw belong to. When you define a new trace, it is set as active and you can immediately start drawing new objects on that trace. You can also set any trace active at any time by right clicking its name on the Navigation Tree and selecting '''Activate''' from the contextual menu. The name of the active trace is always displayed in bold letter in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM13.png]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] has a special feature that makes construction of planar structures quite easy and straightforward. '''The active work plane of the project workspace is always set at the plane of the active trace.''' In EM.Cube's other modules, all objects are drawn in the XY plane (z = 0) by default. In [[Planar Module]], all new objects are drawn on a horizontal plane that is located at the Z-coordinate of the currently active trace. As you change the active trace or add a new trace, you will also change the active work plane.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Metallic Traces ===&lt;br /&gt;
&lt;br /&gt;
A trace is a group of finite-sized planar objects that have the same conductive properties and same Z-coordinate. In other words, they are located on the same horizontal plane, or at the same vertical level on the layer stack-up. You can define two types of metallic traces in the [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
# '''PEC Traces:''' These represent perfect conductor objects that have zero thickness and no editable material properties.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metal objects. They have a very small finite thickness t and a finite conductivity s.&lt;br /&gt;
&lt;br /&gt;
The conductive sheet traces are modeled using the surface impedance boundary condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = -Z_s\mathbf{J_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM17(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;Z_s&amp;lt;/math&amp;gt; is the surface impedance of the conductive sheet. If the thickness of the sheet is greater than the skin depth of the metal at the project frequency, then the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1+j}{\sigma \delta}, \quad \delta = \sqrt{\dfrac{2}{k_0 Z_0 \sigma}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM18.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the thickness t of the sheet is less than the skin depth, then the conductive sheet transition boundary condition is used instead, and the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1}{[j k_0 Y_0 (\varepsilon_r - 1) + \sigma] \tau} = \dfrac{1}{\sigma_{tot} \tau} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM19(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]] with no traces defined, if you simply draw a new object, a default PEC trace is created and added to the Navigation Tree to hold that object. Alternatively, you can define your own new traces from the Layer Stack-up Settings dialog or directly from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
NOTE: Two or more PEC and conductive sheet traces can coexist at the same Z-coordinate. In this case, the Layer Stack-up Settings dialog shows these trace rows stacked up on top of each other between their common top and bottom substrate layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM15.png]] [[File:PMOM16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PEC and Conductive Sheet Trace dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Slot Traces ===&lt;br /&gt;
&lt;br /&gt;
Slots and apertures are cut-out and removed metal in an infinite perfectly conducting (PEC) ground plane. When a slot is excited, tangential electric fields are formed on the aperture, which can be modeled as finite magnetic surface currents confined to the area of the slot. Therefore, instead of modeling the electric surface currents on the PEC ground around the slot, one can alternatively model the finite-extent magnetic surface currents on PMC traces. In EM.Cube's [[Planar Module]], you define slot objects under PMC traces. A PMC trace at a certain Z-plane implies the presence of an infinite PEC plane at that Z-coordinate. Therefore, you do not need to define an additional PEC plane at that location on the layer stack-up. The slot (PMC) objects provide the electromagnetic coupling between the two sides of this infinite ground plane. By the same token, you cannot place a PEC trace and a PMC trace at the same Z-level, as the latter's ground will short the former. However, you can define two or more PMC traces at the same Z-plane. In this case, all the slot objects lie on the same infinite PEC ground plane. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM20.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PMC Trace dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Embedded Object Sets ===&lt;br /&gt;
&lt;br /&gt;
Embedded object sets represent short material insertions inside substrate layers. They can be metal or dielectric. Metallic embedded objects can be used to model vias, plated-through holes, shorting pins and interconnects. These are called PEC via sets. Embedded dielectric objects can be used to model air voids, thin films and material inserts in metamaterial structures. Embedded magnetic object are not currently supported by EM.Cube’s [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Embedded objects can be defined either from the Layer Stack-up Settings dialog or directly from the Navigation Tree. In the former case, open the &amp;amp;quot;Embedded Sets&amp;amp;quot; tab of the stack-up dialog. This tab has a table that lists all the embedded object sets along with their material type, the host substrate layer, the host material and their height. &lt;br /&gt;
&lt;br /&gt;
{{Note|The height of an embedded object is always identical to the thickness of its host substrate layer.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up dialog showing the Embedded Sets tab.&lt;br /&gt;
&lt;br /&gt;
To add a new object set, click the arrow symbol on the '''Insert''' button of the dialog and select one of the two options, '''PEC Via Set''' or '''Embedded Dielectric Set''', from the dropdown list. This opens up a new dialog where first you have to set the host layer of the new object set. A dropdown list labeled &amp;amp;quot;'''Host Layer'''&amp;amp;quot; gives a list of all the available finite substrate layers. You can also set the properties of the embedded object set, including its label, color and material properties. Keep in mind that you cannot control the height of embedded objects. Moreover, you cannot assign material properties to PEC via sets, while you can set values for the '''Permittivity'''(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity'''(&amp;amp;sigma;) of embedded dielectric sets. Vacuum is the default material choice. You may use EM.Cube's Material List for this purpose, which can be opened up by clicking the '''Material''' button. Once embedded object sets are added to the Embedded Sets table, you can edit their properties at any time by selecting their row and clicking the '''Edit''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM21.png]] [[File:PMOM22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The [[Planar Module]]'s PEC Via Set and Embedded Dielectric Set dialogs.&lt;br /&gt;
&lt;br /&gt;
To define an embedded set from the Navigation Tree, right click on the '''Embedded Object Sets''' item in the '''Physical Structure''' section of the Navigation Tree and select either '''Insert New PEC Via Set...''' or '''Insert New Embedded Dielectric Set...''' The respective New Embedded Object Set dialog opens up, where you set the properties of the new object set. As soon as you close this dialog, it takes you to the Layer Stack-up Settings dialog, where you can examine the location of the new object set on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
After a new embedded object set has been defined and added to the Navigation Tree, it becomes the active trace. You are now ready to create geometrical objects in the new active trace. Remember that [[Planar Module]] does not allow you to draw 3D objects. The solid object buttons in the '''Object Toolbar''' are disabled to prevent you from doing so. Instead, you draw planar [[Surface Objects|surface objects]] as the cross section of embedded sets. EM.Cube extends these planar objects across their host layer automatically and displays them as wire-frame, 3D extruded objects. Extrusion of embedded object sets happen after meshing and before every simulation. You can enforce this extrusion manually by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Update Planar Structure...''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Rules &amp;amp;amp; Limitations ===&lt;br /&gt;
&lt;br /&gt;
# Terminating PEC ground planes at the top or bottom of a planar structure are defined as PEC top or bottom half-spaces, respectively.&lt;br /&gt;
# A PEC ground plane placed in the middle of a substrate stack-up requires at least one slot object to provide electromagnetic coupling between its top and bottom sides. In this case, a PMC trace is rather introduced at the given Z-plane, which implies the presence of an infinite PEC ground although it is not explicitly indicated in the Navigation Tree.&lt;br /&gt;
# Metallic and slot traces cannot coexist on the same Z-plane. However, you can stack up multiple PEC and conductive sheet traces at the same Z-coordinate. Similarly, multiple PMC traces can be placed at the same Z-coordinate.&lt;br /&gt;
# Metallic and slot traces are strictly defined at the interface planes between substrate layers. To define a suspended metallic trace in a substrate layer (as in the case of the center conductor of a stripline), you must split the dielectric layer into two thinner layers and place your PEC trace at the interface between them.&lt;br /&gt;
# The current version of the Planar MoM simulation engine is based on a 2.5-D MoM formulation. Only vertical volume currents and no circumferential components are allowed on embedded objects. The 2.5-D assumption holds very well in two cases: (a) when embedded objects are very thin with a very small cross section (with lateral dimensions less than 2-5% of the material wavelength) or (b) when embedded objects are very short and sandwiched between two closely spaced PEC traces or grounds from the top and bottom.&lt;br /&gt;
# The current release of EM.Cube allows any number of PEC via sets collocated in the same substrate layer. However, you can define only one embedded dielectric object set per substrate layer, and no vias sets collocated in the same layer. Note that the single set can host an arbitrary number of embedded dielectric objects of the same material properties.&lt;br /&gt;
&lt;br /&gt;
=== Managing Objects, Traces &amp;amp;amp; Sets ===&lt;br /&gt;
&lt;br /&gt;
You can manage your project's layer hierarchy from the Layer Stack-up Settings dialog. You can add, delete and move around substrate layers, metallic and slot traces and embedded object sets. Metallic and slot traces can move among the interface planes between neighboring substrate layers. Embedded object sets including PEC vias and finite dielectric objects can move from substrate layer into another. When you delete a trace from the Layer Stack-up Settings dialog, all of its objects are deleted from the project workspace, too. You can also delete metallic and slot traces or embedded object sets from the Navigation Tree. To do so, right click on the name of the trace or object set in the Navigation Tree and select '''Delete''' from the contextual menu. You can also delete all the traces or object sets of the same type from the contextual menu of the respective type category in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
For better visualization of your planar structure, EM.Cube displays a virtual domain in a default orange color to represent part of the infinite background structure. The size of this virtual domain is a quarter wavelength offset from the largest bounding box that encompasses all the finite objects in the project workspace. You can change the size of the virtual domain or its display color from the Domain Settings dialog, which you can access either by clicking the '''Computational Domain''' [[File:domain_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Domain Settings...''' from the Simulate Menu or by right clicking the '''Virtual Domain''' item of the Navigation Tree and selecting '''Domain Settings...''' from the contextual menu, or using the keyboard shortcut '''Ctrl+A'''. But keep in mind that the virtual domain is only for visualization purpose and does not affect the MoM simulation. The virtual domain also shows the substrate layers in translucent colors. As you change the colors assigned to the substrate layers, you will see a multilayer virtual domain box surrounding your project structure.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_phys5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Virtual Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the last defined trace or embedded object set is active. You can activate any trace or embedded object set at any time for drawing new objects. You can move one or more selected objects from any trace or embedded object set to another group of the same type or of different type. First select an object in the project workspace or in the Navigation Tree. Then, right click on the highlighted selection and select '''Move To &amp;amp;gt;''' from the contextual menu. This opens another sub-menu containing '''Planar''' and a list of all the other EM.Cube modules that have already defined object groups. Select '''Planar''' or any other available module, and yet another sub-menu opens up with a list of all the available traces and embedded object sets already defined in your project. Select the desired group, and all the selected objects will move to that group. When selecting multiple objects from the Navigation Tree, make sure that you hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting a group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Discretizing Planar Structures ==&lt;br /&gt;
&lt;br /&gt;
=== The Planar MoM Mesh ===&lt;br /&gt;
&lt;br /&gt;
The method of moments (MoM) discretizes all the finite-sized objects of a planar structure (excluding the background structure) into a set of elementary cells. The planar integral equations are then solved approximately on these elementary cells. As this method does not require a discretization of the entire computational domain, it is often computationally much more efficient than differential-based techniques like FEM or FDTD, which mesh the whole domain. The accuracy of the MoM numerical solution depends greatly on the quality of the generated mesh. The mesh density gives a measure of how electrically small these elementary cells are. Low mesh resolutions compromise the accuracy of the numerical solution. On the other hand, very high mesh densities may lead to numerical instability of the method of moments. As a rule of thumb, a mesh density of about 20-30 cells per effective wavelength usually yields acceptable results. Yet, for structures with lots of fine geometrical details or for highly resonant structures, higher mesh densities may be required. Also, the particular simulation data that you seek in a project will also influence your choice of mesh resolution. For example, far field characteristics like radiation patterns are less sensitive to the mesh density than field distributions on a structure with a highly irregular shape and a rugged boundary.&lt;br /&gt;
&lt;br /&gt;
It is well known that any planar geometry with any degree of complexity can be reasonably discretized using a surface triangular mesh. EM.Cube's [[Planar Module]] provides a versatile triangular mesh generator for this purpose. This generates a regular mesh, in which most of the triangular cells have almost equal areas. The uniformity or regularity of mesh is an important factor in warranting a stable numerical solution. A highly incongruous mesh may even produce completely erroneous results. EM.Cube's [[Planar Module]] also offers another mesh generator that creates a &amp;amp;quot;Hubrid&amp;amp;quot; planar mesh combining triangular and rectangular cells. Although triangular cells are more versatile than rectangular cells in adapting to arbitrary geometries, many practical planar structures contain a large number of rectangular parts like patch antennas, microstrip lines and components, etc.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM32.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar hybrid and triangular meshes for rectangular patches.&lt;br /&gt;
&lt;br /&gt;
=== The Rectangular Mesh Advantage ===&lt;br /&gt;
&lt;br /&gt;
Rectangular cells offer a major advantage over triangular cells for numerical MoM simulation of planar structures. This is due to the fact that the dyadic Green's functions of planar layered background structures are space-invariant on the transverse plane. Recall that the elements of the moment matrix are given by the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(\mu \nu)} = \iiint_{V_i} d\nu f_i^{(\mu)}(r) \cdot \iiint_{V_j}d\nu ' \overline{\overline{G}}_{\mu \nu}(r|r') \cdot f_j^{(v)}(r') &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM24(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the spatial-domain dyadic Green's functions are a function of the observation and source coordinates, '''r'''and '''r' '''. The MoM matrix elements can indeed be interpreted as interactions between two elementary basis functions '''f&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;(r)''' and '''f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;(r')''' on that particular background structure. The spatial-domain dyadic Green's functions can themselves be expressed in terms of the spectral-domain dyadic Green's functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\overline{\overline{G}}_{\mu \nu}(r|r') = \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{\overline{\overline{G}}}_{\mu \nu} (k_p, z|z') e^{-j[k_x(x-x')+k_y(y-y')]} \, dk_x \, dk_y ,&lt;br /&gt;
\quad {k_p}^2 = {k_x}^2 + {k_y}^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM26.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the doubly infinite integration is performed with respect to the spectral [[variables]] k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;. As can be seen from the above expression, the spatial-domain dyadic Green's functions are functions of z, z', as well as (x-x') and (y-y'). The MoM matrix elements can now be transformed into the spectral domain as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
Z_{ij}^{(\mu \nu)} = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{f}_i^{(\mu)} (k_x, k_y) \cdot \tilde{\overline{\overline{G}}}_{\mu \nu} (k_{\rho}, z|z') \cdot&lt;br /&gt;
\tilde{f}_j^{(\nu)} (k_x, k_y) \, dk_x \, dk_y&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM27.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the tilde symbol signifies the Fourier transform of a function defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\tilde{f}(k_x, k_y) = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
f(x,y) e^{j(k_x x + k_y y)} \, dx \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM28(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rectangular cells have simple Fourier transforms. The rooftop basis functions are triangular functions in the direction of current flow and constant in the perpendicular direction. This means that their Fourier transform is a product of a sinc-squared function along one spectral direction and a sinc function along the other. You can see from the figure below that if one deals with a rectangular mesh of identical cells (all equal and parallel), then the interactions among the rooftop basis functions become a functions of the index differences and not the absolute indices:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{(i,k)|(j,l)} = Z \Big\langle f_{i,k}(x,y)| f_{j,l}(x', y') \Big\rangle = Z_{(i-j)|(k-l)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM29.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equation, the vectorial rooftop basis functions have explicit, double indices: i and k along the local X and Y directions, respectively, for the test (observation) basis function, and j and l along the local X and Y directions, respectively, for the expansion (source) basis function. Thus, uniform rectangular cells, i.e. structured rectangular cells of identical size aligned in the same direction, can speed up the planar MoM simulation significantly due to these symmetry and the invariance properties. For example, all the self-interactions are identical regardless of the location of a rooftop basis function. This reduces the matrix fill process for a total of N rooftop basis functions from an N2 process to one of order N.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Pairs of rooftop basis functions that have identical MoM interactions.&lt;br /&gt;
&lt;br /&gt;
=== Generating A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
The planar MoM mesh generation process involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties&lt;br /&gt;
# Creating and viewing the mesh&lt;br /&gt;
# Verifying the mesh for integrity&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] offers two mesh generation algorithms for discretizing planar structures: Hybrid and Triangular. The hybrid mesh consists of both rectangular and triangular cells. The hybrid mesh generator creates a kind of “object-centric” mesh that depends on the geometry of each object. It tries to discretize rectangular objects with rectangular cells as much as possible. In certain connection areas, a few triangular cells might be inserted to provide the mesh transition for current continuity. All the non-rectangular objects (circular, polygonal, etc.) are discretized using triangular cells. The triangular mesh generator, on the other hand, discretizes the planar objects with all triangular cells regardless of their shape. The only exceptions are feed lines that contain gap sources or lumped elements, which are always meshed with rectangular cells.&lt;br /&gt;
&lt;br /&gt;
You can generate and view a planar mesh by clicking the '''Show Mesh''' [[File:mesh_tool.png]] button of the '''Simulate Toolbar''' or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' or using the keyboard shortcut '''Ctrl+M'''. When the mesh of the planar structure is displayed in EM.Cube’s project workspace, its &amp;amp;quot;Mesh View&amp;amp;quot; mode is enabled. In this mode you can perform view operations like rotate view, pan or zoom, but you cannot create new objects or edit existing ones. To exit the mesh view mode, press the keyboard's '''Esc Key''' or click the '''Show Mesh''' [[File:mesh_tool.png]] button once again.&lt;br /&gt;
&lt;br /&gt;
Once a mesh is generated, it stays in the memory until the structure is changed or the mesh density or other settings are modified. Every time you view mesh, the one in the memory is displayed. You can force EM.Cube to create a new mesh from the ground up by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''Planar Mesh''' item in the '''Discretization''' section of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Mesh Density ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, generates a hybrid mesh of your planar structure with a mesh density of 20 cells per effective wavelength. It is important to understand the concept of mesh density (either hybrid or triangular) as used by [[Planar Module]]. It gives a measure of the number of cells per effective wavelength that are placed in various regions of your planar structure. The higher the mesh density, the more cells are created on the geometrical objects. Keep in mind that only the finite-sized objects of your structure are discretized. No mesh is generated for the substrate layers of your background structure. The free-space wavelength is defined as &amp;lt;math&amp;gt;\lambda_0 = \tfrac{2\pi f}{c}&amp;lt;/math&amp;gt;, where f is the center frequency of your project and c is the speed of light in the free space. The effective wavelength is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where e&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity.&lt;br /&gt;
&lt;br /&gt;
The effective permittivity is defined differently for different types of traces and embedded object sets. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivity of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivity of the two substrate layers just above and below the metallic trace. These definitions of effective permittivity are consistent with the effective propagation constant of transmission lines realized on such trace types. For embedded object sets, the effective permittivity is defined as the largest of the permittivities of all the substrate layers and embedded dielectric sets. In all cases, for the purpose of calculating the effective wavelength, only the real part of the permittivities are considered. The reason for using an effective wavelength so defined for determination of mesh resolution is to make sure that enough cells are placed in areas that might feature higher field concentration.&lt;br /&gt;
&lt;br /&gt;
Due to the different definitions of effective wavelength in different parts of your planar structure, you will see different mesh resolutions. For example, if you structure has several substrate layers with different permittivities, the mesh of metal traces on layers with a higher permittivity value will feature more cells than the mesh of metal traces on layers with a lower permittivity value even though the mesh density value is the same for the whole structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM30.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of two rectangular patches at two different planes. The lower substrate layer has a higher permittivity.&lt;br /&gt;
&lt;br /&gt;
=== Customizing A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the planar mesh including the mesh type and density from the planar Mesh Settings Dialog. You can also change these settings while in the mesh view mode, and you can update the changes to view the new mesh. To open the mesh settings dialog, either click the '''Mesh Settings''' [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Mesh Settings...''', or by right click on the '''Planar 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 mesh algorithm from the dropdown list labeled '''Mesh Type''', which offers two options: '''Hybrid''' and '''Triangular'''. You can also enter a different value for '''Mesh Density''' in cells per effective wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;). For each value of mesh density, the dialog also shows the average &amp;amp;quot;Cell Edge Length&amp;amp;quot; in the free space. To get an idea of the size of mesh cells on the traces and embedded object sets, divide this edge length by the square root of the effective permittivity a particular trace or set. Click the '''Apply''' button to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM31.png]]&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Of Connected Trace Objects ===&lt;br /&gt;
&lt;br /&gt;
Using the generated mesh of a planar structure, EM.Cube creates a set of vectorial basis functions that are passed to the input file of the Planar MoM simulation engine. This engine requires edge-based basis functions. The common edges between adjacent cells are used to define edge-based rooftop or RWG basis functions. These elementary basis functions indeed provide the current flow and warrant the continuity among the mesh cells. Therefore, when two objects overlap or share a common edge, the connection between them must be translated into &amp;amp;quot;bridge&amp;amp;quot; basis functions, which carry the information about current flow to the simulation engine.&lt;br /&gt;
&lt;br /&gt;
'''The most important rule of object connections in EM.Cube's [[Planar Module]] is that only objects belonging to the same trace can be connected to one another.''' For example, if two objects reside on the same Z-plane and geometrically have a common edge which you can clearly see in the project workspace, but organizationally they belong to two different metal traces, then the bridge basis functions will not be generated between them, and the simulation engine will see them disconnected. If two objects belong to the same trace and have a common overlap area, EM.Cube first merges the two objects using the &amp;amp;quot;Boolean Union&amp;amp;quot; operation and converts them into a single object for the purpose of meshing. The mesh of &amp;amp;quot;unioned&amp;amp;quot; areas is usually made up of triangular cells. If two objects reside on the same Z-plane and geometrically overlap with each other but organizationally belong to two different trace groups, incongruous, overlapped cells will be generated that will either blow up the linear system or produce completely wrong simulation results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM36.png|250px]] [[File:PMOM38.png|250px]] [[File:PMOM37.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Two overlapping planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
When two planar objects belonging to the same trace are connected via a common edge, it is critical to generate a consistent mesh at the connection area and properly transition and merge the meshes of the individual objects. EM.Cube's triangular planar mesh generator simply &amp;amp;quot;unions&amp;amp;quot; the two objects and generates a connected mesh. EM.Cube's hybrid planar mesh generator, however, behave differently when it comes to the connection between rectangular objects. The rule in this case is the following:&lt;br /&gt;
&lt;br /&gt;
* If the two connected rectangular objects have the same side dimensions along the common linear edge with perfect alignment, a rectangular bridge mesh is produced.&lt;br /&gt;
* If the two connected rectangular objects have different side dimensions along the common linear edge or have edge offset, a set of triangular cells is generated along the edge of the object with the large side.&lt;br /&gt;
* Rectangular objects that contain gap source or lumped elements, always have a rectangular mesh around the gap area.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM33.png|250px]] [[File:PMOM35.png|250px]] [[File:PMOM34.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edge-connected rectangular planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
=== Mesh of Embedded Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] models embedded objects as vertical volume currents. The vectorial basis functions in this case are Z-directed prisms as opposed to rooftop basis functions. If an embedded object is located under or above a metallic trace or connected from both top and bottom, it is critical to create mesh continuity between the embedded object and its connected metallic traces. In other words, the generated mesh must ensure current continuity between the vertical volume currents and horizontal surface currents. EM.Cube’s planar mesh generator automatically handles situations of this kind and generates all the required connection meshes.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that EM.Cube’s Planar MoM engine uses a 2.5-D approximation, whereby only vertical volume currents are assumed inside embedded objects. When the height of an embedded object is small (as should typically be under the 2.5-D assumption), one prismatic cell is placed across the object along the Z-axis. Long PEC vias with a very small radius do also satisfy the 2.5-D assumption. In this case, the long via objects are discretized further along the Z direction and generate multiple stacked cells. Several prismatic cells along the Z-axis may increase the simulation time drastically. This is due to the fact that the host layer is effectively subdivided into a number of sub-layers and the stacked cells are treated as stacked vias embedded inside these sub-layers. As a result, the simulation engine needs to compute all the dyadic Green’s functions accounting for the interactions between all such sub-layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM39.png|400px]] [[File:PMOM40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of a vertical PEC via connecting two horizontal metallic strips. The shorter via has one prismatic cell along the Z direction, while the longer via is discretized into several stacked cells.&lt;br /&gt;
&lt;br /&gt;
=== Refining Mesh At Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
It is very important to apply the right mesh density to capture all the geometrical details of your planar structure. This is especially true for &amp;amp;quot;field discontinuity&amp;amp;quot; regions such as junction areas between objects of different side dimensions, where larger current concentrations are usually observed at sharp corners, or at the connection areas between metallic traces and PEC vias, as well as the areas around gap sources and lumped elements, as these create voltage or current discontinuities. For large planar structures, using a higher mesh density may not always be a practical option since it will quickly lead to a very large MoM matrix and thus growing the size of the numerical problem. Sometimes a slightly non-uniform mesh still produces stable numerical results. In other words, you may choose to increase the mesh resolution around the discontinuity regions only.&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh around geometrical and field discontinuities. You can check the check box labeled &amp;amp;quot;'''Refine Mesh at Junctions'''&amp;amp;quot;, which increases the mesh resolution at the connection area between rectangular objects. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Gap Locations'''&amp;amp;quot;, which may prove particularly useful when gap sources or lumped elements are placed on a short transmission line connected from both ends. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Vias'''&amp;amp;quot;, which increases the mesh resolution on the cross section of embedded object sets and by extension at the connection regions of the metallic objects connected to them. EM.Cube typically doubles the mesh resolution locally at the discontinuity areas when the respective boxes are checked.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM41.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Refining the planar mesh at the via and surrounding area.&lt;br /&gt;
&lt;br /&gt;
=== Checking Mesh Integrity ===&lt;br /&gt;
&lt;br /&gt;
You should always visually inspect EM.Cube's default generated mesh to see if the current mesh settings have produced an acceptable mesh. You may often need to change the mesh density or other parameters and regenerate the mesh. The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, highly incongruous meshes should always be avoided. Sometimes EM.Cube's default mesh may contain very narrow triangular cells due to very small angles between two edges. In some rare cases, extremely small triangular cells may be generated, whose area is a small fraction of the average mesh cell. These cases typically happen at the junctions and other discontinuity regions or at the boundary of highly irregular geometries with extremely fine details. In such cases, increasing or decreasing the mesh density by one or few cells per effective wavelength often resolves that problem and eliminates those defective cells. Nonetheless, EM.Cube's planar mesh generator offers an option to identify the defective triangular cells and either delete them or cure them. By curing we mean removing a narrow triangular cell and merging its two closely spaced nodes to fill the crack left behind.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM44.png|400px]] [[File:PMOM42.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Deleting or curing defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
EM.Cube by default deletes or cures all the triangular cells that have angles less than 10º. Sometimes removing defective cells may inadvertently cause worse problems in the mesh. You may choose to disable this feature and uncheck the box labeled &amp;amp;quot;'''Remove Defective Triangular Cells'''&amp;amp;quot; in the Planar Mesh Settings dialog. You can also change the value of the minimum allowable cell angle.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM43(1).png]]&lt;br /&gt;
&lt;br /&gt;
Setting the minimum allowable angle for non-defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
=== Locking Mesh Of Object Groups ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides different ways of controlling the mesh of a planar structure locally. Earlier you saw how to increase the mesh resolution at the discontinuity regions without affecting the mesh of uniform or regular areas of a planar structure. Another way of local mesh control is to lock the mesh density of certain traces or object sets. The mesh density that you specify in the Planar Mesh Settings dialog is a global parameter and applies to all the traces and embedded object sets in your project. However, you can lock the mesh of individual PEC, PMC and conductive sheet traces or embedded objects sets. In that case, the locked mesh density takes precedence over the global density. Note that locking mesh of object groups, in principle, is different than refining the mesh at discontinuities. In the latter case, the mesh of connection areas is affected. However, objects belonging to different traces cannot be connected to one another. Therefore, locking mesh can be useful primarily for isolated object groups that may require a higher (or lower) mesh resolution.&lt;br /&gt;
&lt;br /&gt;
You can lock the local mesh density by accessing the property dialog of a specific trace or embedded object set and checking the box labeled '''Lock Mesh'''. This will enable the '''Mesh Density''' box, where you can accept the default global value or set any desired new value.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM45.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of an object group from its property dialog.&lt;br /&gt;
&lt;br /&gt;
=== Local Mesh Control Using Polymesh Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to manually and individually mesh geometrical objects using the concept of polymesh. The Polymesh tool converts a planar surface object to a set of interconnected triangular cells, which is basically identical to its triangular surface mesh. Simply select an object and click the '''Polymesh Tool''' [[File:polymesh_tool_tn.png]] button of '''Tools Toolbar''', or select '''Menu &amp;amp;gt; Tools &amp;amp;gt; Polymesh''', or use the keyboard shortcut '''P'''. You can also right click on a selected object and select '''Polymesh''' from the contextual menu. From the Polymesh Dialog, you can control the mesh resolution through the '''Edge Length''' parameter, which is expressed in project units. Note that unlike the planar mesh generator which uses a frequency-dependent mesh density to drive the mesh resolution, the ploymesh's edge length is fixed and purely geometrical and does not change with the project frequency. '''EM.Cube's mesh generator considers a polymesh object as a &amp;amp;quot;final&amp;amp;quot; mesh and reproduces it &amp;amp;quot;As Is&amp;amp;quot; during the meshing process.'''&lt;br /&gt;
&lt;br /&gt;
You have access to every single node of a polymesh object and you can change its coordinates arbitrarily. You do this by opening the property dialog of a polymesh object and selecting a certain node index in the box labeled '''Active Node'''. You can also select a node by hovering the mouse over the node to highlight it and then click to select it. A red ball appears on the current active node. You can delete the nodes arbitrarily using the '''Delete''' button of the dialog, which results in lowering the mesh resolution at the location of the deleted node. Or you can insert new nodes in the faces of a polymesh object. To insert a node, first you have to select a face. Change the '''Mode''' option by selecting the '''Face''' radio button and then select the right '''Active Face''' index. A red triangular border appears around the selected face. You can also simply click on the surface of a face and select it using the mouse. With the desired face selected, click the '''Insert''' button of the dialog to create a new node at the centroid of the selected face. You can adjust the coordinates of the newly inserted node from the three X, Y and Z '''Coordinate''' boxes. Note that immediately after the insertion of a new node, the label of these coordinate boxes changes to &amp;amp;quot;'''New Node'''&amp;amp;quot; and they show the relative local X, Y and Z offsets with respect to the original node position. Once you close the Polymesh Dialog, the new node is added to the existing node list and can be edited later like the other polymesh nodes. By inserting a new node, you increase the mesh resolution locally and selectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM46(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Discretizing a planar surface object using EM.Cube's Polymesh tool.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that since a polymesh object it considered a final mesh, its mesh cannot be connected to other objects. In other words, bridge basis functions are not generated if even some of the polymesh edges may coincide with other objects' edges. A polymesh object is treated by the mesh generator as an isolated mesh. However, EM.Cube allows you to connect polymesh objects manually. To do so, bring two or more polymesh objects close to each other so that they have one or more common edges. No face overlaps are allowed in this case. Select the polymesh objects and click the '''Merge Tool'''[[File:merge_tool_tn.png]] button of '''Tools Toolbar''' to merge the polymesh objects into a single polymesh object. The new merged polymesh object will provide all the necessary bridge basis functions among the original, separate polymesh objects.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
In a typical electromagnetic simulation in EM.Cube's [[Planar Module]], you define a planar structure that consists of a layered background structure with a number of finite-sized metal and slot traces and possibly embedded metal or dielectric objects interspersed among the substrate layers. The planar structure is then excited by some sort of a signal source that induces electric currents on metal parts and magnetic currents on slot traces. The method of moments (MoM) solver computes these unknown electric and magnetic currents by discretizing the finite-sized objects. The induced currents, in turn, produce their own electric and magnetic fields which coexist (are superposed) with the impressed electric and magnetic fields of the signal source. From a knowledge of the near fields, EM.Cube calculates the port characteristics of the planar structure, if any ports have been defined. From a knowledge of the far fields, EM.Cube calculates the radiation or scattering characteristics of the planar structure.&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure in a number of different ways. The excitation source you choose depends on the observables you seek in your project. [[Planar Module]] provides the following source for exciting planar structures:&lt;br /&gt;
&lt;br /&gt;
* Lumped Sources with three varieties: [[#Gap Sources|Gap Sources]], [[#De-embedded Sources|De-embedded Sources]] and [[#Probe Sources|Probe Sources]]&lt;br /&gt;
* [[#Plane Wave Sources|Plane Wave Sources]]&lt;br /&gt;
* [[#Short Dipole Sources|Short Dipole Sources]]&lt;br /&gt;
* [[#Huygens Sources|Huygens Sources]]&lt;br /&gt;
&lt;br /&gt;
For antennas and planar circuits, where you typically define one or more ports, you usually use lumped sources. A lumped source is indeed a gap discontinuity that is placed on the path of an electric or magnetic current flow, where a voltage or current source is connected to inject a signal. Gap sources are placed across metal or slot traces. Probe sources are placed across vertical PEC vias. A de-embedded source is a special type of gap source that is placed near the open end of an elongated metal or slot trace to create a standing wave pattern, from which the scattering parameters can be calculated accurately. To calculate the scattering characteristics of a planar structure, e.g. its radar cross section (RCS), you excite it with a plane wave source. Short dipole sources are used to explore propagation of points sources along a layered structure. Huygens sources are virtual equivalent sources that capture the radiated electric and magnetic fields from another structure possibly in another EM.Cube computational module and bring them as a new source to excite your planar structure.&lt;br /&gt;
&lt;br /&gt;
=== Gap Sources ===&lt;br /&gt;
&lt;br /&gt;
A gap is an infinitesimally narrow discontinuity that is placed on the path of current flow on a feed line. In planar structures, feed lines are typically in the form of a microstrip, stripline, slotline or coplanar waveguide (CPW). You use rectangle strip objects to construct such feed lines. A gap source can be placed on any rectangle strip object on a PEC, PMC or conductive sheet trace. Depending on the type of the trace on which a gap source is placed, it will have a different physical interpretation.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PEC or conductive sheet trace can be regarded as a strip transmission line that carries electric currents along its length (local X direction). The characteristic impedance of the line is a function of its width (local Y direction). A gap source is placed somewhere along the length and across the width of such a rectangle strip object, thus creating an infinitesimally narrow gap at its location. In this case, the gap source represents an ideal voltage source in series with a lumped impedance that is connected across the gap to excite the strip transmission line. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the gap. The source pumps electric current into the line. If the voltage source is shorted (having a zero amplitude), then the gap acts like a series lumped element on the transmission line.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PMC trace can be regarded as a slot transmission line on an infinite PEC ground plane that carries a magnetic current along its length (local X direction). The characteristic impedance of the slot line is a function of its width (local Y direction). A slot gap source is placed somewhere along the length and across the width of the rectangle strip object on a PMC trace and creates an infinitesimally narrow gap at its location. In this case, the slot gap source represents an ideal current source with a shunt lumped admittance that is connected across the slot to excite the slot transmission line. When the admittance is zero, the gap acts like an ideal current filament, which creates electric fields across the slot, equivalent to a magnetic current flowing into the slot line. If the current source is open (having a zero amplitude), then the gap acts like a shunt (parallel) lumped element on the slot line. As you will see later, a coplanar waveguide (CPW) can be realized using two parallel slot lines with two aligned, collocated gap sources.&lt;br /&gt;
&lt;br /&gt;
To define a gap source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Gap Source Dialog by right clicking on the '''Gap Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' available in the project workspace. Select the desired host rectangle strip object. The box labeled '''Direction''' shows the direction or polarity of the new gap source on its host rectangle strip object. You have the option to select either the positive or negative direction for the source polarity.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the gap source from the start point of the rectangle strip feed line. The value of '''Offset''' by default is initially set to the center of the line. As you change the offset value, you can see the gap move on its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of a gap on a slot trace) and '''Phase''' in degrees.&lt;br /&gt;
* You can also change the default label as well as the default color of the gap source using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM47.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Gap Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Probe Sources ===&lt;br /&gt;
&lt;br /&gt;
Another way of exciting a planar structure is by placing a gap on the path of a vertical current on a PEC via. This represents a filament source, which is used to model coaxial probe excitation. A probe source can be placed only on a PEC via object. Most planar transmission lines are fed using SMA connectors. The outer conductor of the coaxial line is connected to the ground and its inner conductor is extended across the substrate layer and connected to a metallic line. EM.Cube's [[Planar Module]] models a coaxial probe as an infinitesimal gap discontinuity placed across a thin via, representing an ideal voltage source in series with a lumped impedance. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the via. The source pumps vertical electric current into the probe. If the voltage source is shorted (having a zero amplitude), then the gap acts like a shunt lumped element across the via.&lt;br /&gt;
&lt;br /&gt;
To define a probe source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Probe Source Dialog by right clicking on the '''Probe Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, in the dropdown list labeled '''Embedded Objects''', you will find a list of all the PEC via objects available in the project workspace. Select the desired host PEC via object. The box labeled '''Direction''' shows the direction or polarity of the new probe source on its host PEC via object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the probe source from the bottom of the via object. The value of '''Offset''' by default is initially set to the center of the via.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and '''Phase''' in degrees.&lt;br /&gt;
&lt;br /&gt;
Unlike gap sources, whose offset parameter determines their exact location on their host line, the offset parameter of a probe source is not relevant except for long host vias. In the case of a short via that is discretized using a single prismatic element across its host substrate layer, the probe gap is always placed at the middle of its height. Longer vias may have a mesh that consists of two or more stacked prismatic elements. In this case, the probe source's offset determines which prismatic element will host the probe gap discontinuity at its middle.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Probe Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Source Arrays ===&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects, the array object will also be listed as an eligible object for gap source placement. A gap source will then be placed on each element of the array. All the gap sources will have identical direction and offset. Similarly, if the project workspace contains an array of PEC via objects, the embedded array object will also be listed as an eligible object for probe source placement. A probe source will then be placed on each via object of the array. All the probe sources will have identical direction and offset.&lt;br /&gt;
&lt;br /&gt;
However, you can prescribe certain amplitude and/or phase distribution over the array of gap or probe sources. By default, all the gap or probe sources have identical amplitudes of 1V (or 1A for the slot case) and zero phase. The available amplitude distributions to choose from include '''Uniform''', '''Binomial''' and '''Chebyshev''' and '''Date File'''. In the Chebyshev case, you need to set a value for minimum side lobe level ('''SLL''') in dB. You can also define '''Phase Progression''' in degrees along all three principal axes. You can view the amplitude and phase of individual sources by right clicking on the top '''Sources''' item in the Navigation Tree and selecting '''Show Source Label''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM49.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining gap sources on an array of rectangle strip objects with a Chebyshev amplitude distribution.&lt;br /&gt;
&lt;br /&gt;
In the data file option, the complex amplitude are directly read in from a data file using a real - imaginary format. When this option is selected, you can either improvise the complex array weights or import them from an existing file. In the former case click the '''New Data File''' button. This opens up the Windows Notepad with default formatted data file that has a list of all the array element indices with default 1+j0 amplitudes for all of them. You can replace the default complex values with new one and save the Notepad data file, which brings you back to the Gap Source dialog. To import the array weights, click the '''Open Data File''' button, which opens the standard Windows Open dialog. You can then select the right data file from the one of your folders. It is important to note that the data file must have the correct format to be read by EM.Cube. For this reason, it is recommended that you first create a new data file with the right format using Notepad as described earlier and then save it for later use.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining gap source array weights using a data file.&lt;br /&gt;
&lt;br /&gt;
=== Defining Ports ===&lt;br /&gt;
&lt;br /&gt;
Ports are used in a planar structure to order and index the sources for calculation of circuit parameters such as scattering (S), impedance (Z) and admittance (Y) parameters. In EM.Cube's [[Planar Module]], you can use the following types of sources to define ports:&lt;br /&gt;
&lt;br /&gt;
* Gap Sources&lt;br /&gt;
* Probe Sources&lt;br /&gt;
* Active Lumped Elements&lt;br /&gt;
* De-Embedded Sources&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your planar structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree. Note that your project can have mixed gap and probes sources as well as active lumped element sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
'''You can define any number of ports equal to or less than the total number of sources in your project.''' The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50S by default. You can delete any port by selecting it from the Port List and clicking the '''Delete''' button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment and make sure that is what you intend. You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit''' button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM53.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edit Port dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Coupled Ports ===&lt;br /&gt;
&lt;br /&gt;
Sources can be coupled to each other to model coupled strip lines (CPS) on metal traces or coplanar waveguides (CPW) on slot traces. Similarly, probe sources may be coupled to each other. Coupling two or more sources does not change the way they excite a planar structure. It is intended only for the purpose of S parameter calculation. The feed lines or vias which host the coupled sources are usually parallel and aligned with one another and they are all grouped together as a single transmission line represented by a single port. This single &amp;amp;quot;coupled&amp;amp;quot; port then interacts with other coupled or uncoupled ports.&lt;br /&gt;
&lt;br /&gt;
You couple two or more sources using the '''Port Definition Dialog'''. To do so, you need to change the default port assignments. First, delete all the ports that are to be coupled from the Port List of the dialog. Then, define a new port by clicking the '''Add''' button of the dialog. This opens up the Add Port dialog, which consists of two tables: '''Available''' sources on the left and '''Associated''' sources on the right. A right arrow ('''--&amp;amp;gt;''') button and a left arrow ('''&amp;amp;lt;--''') button let you move the sources freely between these two tables. You will see in the &amp;amp;quot;Available&amp;amp;quot; table a list of all the sources that you deleted earlier. You may even see more available sources. Select all the sources that you want to couple and move them to the &amp;amp;quot;Associated&amp;amp;quot; table on the right. You can make multiple selections using the keyboard's '''Shift''' and '''Ctrl''' keys. Closing the Add Port dialog returns you to the Port Definition dialog, where you will now see the names of all the coupled sources next to the name of the newly added port.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is your responsibility to set up coupled ports and coupled transmission lines properly. For example, to excite the desirable odd mode of a coplanar waveguide (CPW), you need to create two rectangular slots parallel to and aligned with each other and place two gap sources on them with the same offsets and opposite polarities. To excite the even mode of the CPW, you use the same polarity for the two collocated gap sources. Whether you define a coupled port for the CPW or not, the right definition of sources will excite the proper mode. The couple ports are needed only for correct calculation of the port characteristics.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM51(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Coupling gap sources in the Port Definition dialog by associating more than one source with a single port.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Port Characteristics At Gap Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
A gap source on a metal trace and a probe source on a PEC via behave like a series voltage source with a prescribed strength (of 1V and zero phase by default) that creates a localized discontinuity on the path of electric current flow. At the end of a planar MoM simulation, the electric current passing through the voltage source is computed and integrated to find the total input current. From this one can calculate the input admittance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_W \hat{y} \cdot \mathbf{J_s} \, dy} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM54(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for gap sources on metal traces, where the line integration is performed across the width of the metal strip, and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_S \hat{z} \cdot \mathbf{J_p} \, ds} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM55.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for probe sources on PEC vias, where the surface integration is performed over the cross section of the via. On the other hand, a gap source on a slot trace behaves like a shunt current source with a prescribed strength (of 1A and zero phase by default) that creates a localized discontinuity on the path of magnetic current flow. At the end of a planar MoM simulation, the magnetic current passing through the current source is computed and integrated to find the total input voltage across the current filament. From this one can calculate the input impedance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{in} = \frac{V_{in}}{I_s} = \frac{\int_W \hat{y} \cdot \mathbf{M_s} \,dy} {V_s} = \frac{\int_W E_y \, dy}{V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM56.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the input admittance or impedance defined at a gap source port is referenced to the two terminals of the voltage source connected across the gap as shown in the figure below. This is different than the input admittance or impedance that one may normally define for a microstrip port, which is referenced to the substrate's ground.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM59(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Definition of different input impedances at the gap location.&lt;br /&gt;
&lt;br /&gt;
To resolve this problem, you can place a gap source on a metal strip line by a distance of a quarter guide wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/4) away from its open end. Note that (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; = 2p/ß), where ß is the propagation constant of the metallic transmission line. As show in the figure below, the impedance looking into an open quarter-wave line segment is zero, which effectively shorts the gap source to the planar structure's ground. The gap admittance or impedance in this case is identical to the input admittance or impedance of the planar structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM60(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing a gap source a quarter guide wavelength away from the open end of a feed line to effectively short it to the ground at the gap location.&lt;br /&gt;
&lt;br /&gt;
The same principle applies to the gap sources on slot traces. The figure below shows how to place two gap sources with opposite polarities a quarter guide wavelength away from their shorted ends to calculate the correct input impedance of the CPW line looking to the left of the gap sources. Note that in this case, you deal with shunt filament current sources across the two slot lines and that the slot line carry magnetic currents. The end of the slot lines look open to the magnetic currents, but in reality they short the electric field. The quarter-wave CPW line acts as an open circuit to the current sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM61(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing two oppositely polarized gap sources a quarter guide wavelength away from the short end of a CPW line to effectively create an open circuit beyond the gap location.&lt;br /&gt;
&lt;br /&gt;
The case of a probe source placed on a PEC via that is connected to a ground plane is more straightforward. In this case, the probe source's gap discontinuity is placed at the middle plane of the PEC via. If the via is short, it is meshed using a single prismatic element, which is connected to the ground from one side and to the metal strip line from the other. Therefore, the probe admittance or impedance is equal to that of the structure at a reference plane that passed through the host via.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM62(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Input impedance of a probe source on a PEC via connected to a ground plane.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Multiport Structures Using Linear Superposition ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure has two or more sources, but you have not defined any ports, all the lumped sources excite the structure locally and contribute to the excitation vector needed for the MoM solution of the problem. However, when you assign N ports to the sources, then you have a multiport structure that is characterized by an N×N admittance matrix (instead of a single Y&amp;lt;sub&amp;gt;in&amp;lt;/sub&amp;gt; parameter), or an N×N impedance matrix, or an N×N scattering matrix. To calculate these matrices, EM.Cube uses a binary excitation scheme in conjunction with the principle of linear superposition. In this binary scheme, the structure is analyzed N times. Each time one of the N port-assigned sources is excited, and all the other port-assigned sources are turned off.&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on metal traces and probe sources on PEC vias, turning a source off means shorting a series voltage source. The electric currents passing through these sources are then found at each port location, and the admittance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_m = \sum_{n=1}^N Y_{mn} V_n, \quad \quad Y_{mn} = \frac{I_m}{V_n} \bigg|_{V_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM57.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on slot traces, turning a source off means opening a shunt filament current source. The magnetic currents passing through the source locations, and thus the voltages across them, are then found at all ports, and the impedance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_m = \sum_{n=1}^N Z_{mn} I_n, \quad \quad Z_{mn} = \frac{V_m}{I_n} \bigg|_{I_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM58.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The N solution vectors that are generated through the N binary excitation analyses are finally superposed to produce the actual solution to the problem. However, in this process, EM.Cube also calculates all the port characteristics. Keep in mind that the impedance (Z) and admittance (Y) matrices are inverse of each other. From the impedance matrix, the scattering matrix is calculated using the following relation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM63.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Lumped Elements In Planar MoM ===&lt;br /&gt;
&lt;br /&gt;
Lumped elements are components, devices, or circuits whose overall dimensions are very small compared to the wavelength. As a result, they are considered to be dimensionless compared to the dimensions of a mesh cell. In fact, a lumped element is equivalent to an infinitesimally narrow gap that is placed in the path of current flow, across which the device's governing equations are enforced. Using Kirkhoff's laws, these device equations normally establish a relationship between the currents and voltages across the device or circuit. Crossing the bridge to Maxwell's domain, the device equations must now be cast into a from o boundary conditions that relate the electric and magnetic currents and fields. EM.Cube's [[Planar Module]] allows you to define passive circuit elements: '''Resistors'''(R), C'''apacitors'''(C), I'''nductors'''(L), and series and parallel combinations of them as shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image106.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A series-parallel RLC combination that can be modeled as a lumped circuit in [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Lumped elements are conceptualized in a similar way as gap or probe sources. They are indeed considered as infinitesimally narrow gaps placed in the path of current flow, across which Ohm's law is enforced. If a lumped element is placed on a PEC or conductive sheet trace, it is treated as a series connection. The boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; &lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{x}\cdot \mathbf{E_{gap}} \, dx = Z_L \int_W \hat{y} \cdot \mathbf{J_s} \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM67.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Z&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total impedance across the two terminals of the series element. If the lumped element is placed on a slot trace, it is treated as a shunt connection that creates a current discontinuity. In this case, the magnetic current across the gap is continuous, and the boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_{gap} = Y_L V_{in} \quad\quad \int_{\delta} J_Y^{fila} \, dx = Y_L \int_W E_y \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \int_{\delta} \hat{x}\cdot\hat{n} \times (\mathbf{H_{gap}^+ - H_{gap}^-}) \, dx = Y_L \int_W \hat{y}\cdot\mathbf{M_s} \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM70(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Y&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total admittance across the two terminals of the shunt element. If a lumped element is placed on a PEC via that is connected to a metal strip from one side and to a PEC ground plane from the other end, it is indeed as a series connection across a gap discontinuity at the middle plane of the via. If the via is short, it is meshed using a single prismatic element. In that case, the lumped element in effect shunts the metal strip to the ground. The boundary condition at the location of the lumped element across the PEC via is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{z}\cdot \mathbf{E_{gap}} \, dz = Z_L \int_S \hat{z} \cdot \mathbf{J_p} \, ds&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM68.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM69.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Using a shunt lumped element on a PEC via to terminate a metallic strip line.&lt;br /&gt;
&lt;br /&gt;
=== Defining Lumped Circuits ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM64.png|thumb|400px|Lumped Element dialog]]&lt;br /&gt;
To define a lumped RLC circuit in your planar structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Lumped Element Dialog by right clicking on the '''Lumped Elements''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Gap Topology''' section of the dialog, select one of the two options: '''Gap on Line''' and '''Gap on Via'''.&lt;br /&gt;
* In the '''Lumped Circuit Type''' section of the dialog, select one of the two options: '''Passive RLC''' and '''Active with Gap Source'''.&lt;br /&gt;
* Depending on your choice of gap topology, in the '''Lumped Circuit Location''' section of the dialog, you will find either a list of all the '''Rectangle Strip Objects''' or a list of all the '''PEC Via Objects''' available in the project workspace. Select the desired rectangle strip or embedded PEC via object.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the rectangle strip line or from the bottom of the via object, whichever the case. The value of '''Offset''' by default is initially set to the center of the line or via.&lt;br /&gt;
* In the '''Load Properties''' section, the series and shunt resistance values Rs and Rp are specified in Ohms, the series and shunt inductance values Ls and Lp are specified in nH (nanohenry), and the series and shunt capacitance values Cs and Cp are specified in pF (picofarad). Only the checked elements are taken into account in the total impedance calculation. By default, only the series resistor is checked with a value of 50S, and all other circuit elements are initially greyed out.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] allows you to define a voltage source in series with a series-parallel RLC combination and place them across the gap. This is called an active lumped element. If you choose the '''Active with Gap Source''' option of the '''Lumped Circuit Type''' section of the dialog, the right section of the dialog entitled '''Source Properties''' becomes enabled, where you can you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of PMC traces) and the '''Phase''' in degrees. Also, the box labeled '''Direction''' becomes relevant in this case which contains a gap source. Otherwise, a passive RLC circuit does not have polarity.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects or PEC via objects, the array object will also be listed as an eligible object for lumped element placement. A lumped element will then be placed on each element of the array. All the lumped elements will have identical direction, offset, resistance, inductance and capacitance values. If you define an active lumped element, you can prescribe certain amplitude and/or phase distribution to the gap sources just like in the case of gap and probe sources. The available amplitude distributions include '''Uniform''', '''Binomial'''''', Chebyshev''' and '''Data File'''.&lt;br /&gt;
&lt;br /&gt;
{{Note|The impedance of the lumped circuit is calculated at the operating frequency of the project using the specified R, L and C values. As you change the frequency, the value of the impedance that is passed to the Planar MoM engine will change.}}&lt;br /&gt;
&lt;br /&gt;
=== Calculating Scattering Parameters Using Prony's Method ===&lt;br /&gt;
&lt;br /&gt;
The calculation of the scattering (S) parameters is usually an important objective of modeling planar structures especially for planar circuits like filters, couplers, etc. As you saw earlier, you can use lumped sources like gaps and probes and even active lumped elements to calculate the circuit characteristics of planar structures. The admittance / impedance calculations based on the gap voltages and currents are accurate at RF and lower microwave frequencies or when the port transmission lines are narrow. In such cases, the electric or magnetic current distributions across the width of the port line are usually smooth, and quite uniform current or voltage profiles can easily be realized. At higher frequencies, however, a more robust method is needed for calculating the port parameters.&lt;br /&gt;
&lt;br /&gt;
One can calculate the scattering parameters of a planar structure directly by analyzing the current distribution patterns on the port transmission lines. The discontinuity at the end of a port line typically gives rise to a standing wave pattern that can clearly be discerned in the line's current distribution. From the location of the current minima and maxima and their relative levels, one can determine the reflection coefficient at the discontinuity, i.e. the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter. A more robust technique is Prony’s method, which is used for exponential approximation of functions. A complex function f(x) can be expanded as a sum of complex exponentials in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f(x) \approx \sum_{n=1}^N c_i e^{-j\gamma_i x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM73.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are complex coefficients and &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are, in general, complex exponents. From the physics of transmission lines, we know that lossless lines may support one or more propagating modes with pure real propagation constants (real &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents). Moreover, line discontinuities generate evanescent modes with pure imaginary propagation constants (imaginary &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents) that decay along the line as you move away from the location of such discontinuities.&lt;br /&gt;
&lt;br /&gt;
In practical planar structures for which you want to calculate the scattering parameters, each port line normally supports one, and only one, dominant propagating mode. Multi-mode transmission lines are seldom used for practical RF and microwave applications. Nonetheless, each port line carries a superposition of incident and reflected dominant-mode propagating signals. An incident signal, by convention, is one that propagates along the line towards the discontinuity, where the phase reference plane is usually established. A reflected signal is one that propagates away from the port plane. Prony's method can be used to extract the incident and reflected propagating and evanescent exponential waves from the standing wave data. From a knowledge of the amplitudes (expansion coefficients) of the incident and reflected dominant propagating modes at all ports, the scattering matrix of the multi-port structure is then calculated. In Prony's method, the quality of the S parameter extraction results depends on the quality of the current samples and whether the port lines exhibit a dominant single-mode behavior. Clean current samples can be drawn in a region far from sources or discontinuities, typically a quarter wavelength away from the two ends of a feed line.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM71.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Minimum and maximum current locations of the standing wave pattern on a microstrip line feeding a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== De-Embedded Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM74.png|thumb|300px|The [[Planar Module]]'s De-embedded Source dialog]]&lt;br /&gt;
EM.Cube's [[Planar Module]] provides de-embedded sources for the exclusive purpose of accurate S parameter calculation based on Prony's method. A de-embedded source is indeed a gap source that is placed close to an open end of a feed line. The other end of the line is typically connected to a planar structure of interest. Like gap sources, de-embedded sources can be placed only on rectangle strip objects. '''During mesh generation, EM.Cube automatically extends the length of a port line that hosts a de-embedded source to about two effective wavelengths.''' This is done to provide enough length for formation of a clean standing wave current pattern. The effective wavelength of a transmission line for length extension purposes is calculated in a similar manner as for the planar mesh resolution. It is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where &amp;amp;epsilon;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivities of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivities of the two substrate layers just above and below the metallic trace. The host port line must always be open from one end to allow for its length extension. You have to make sure that there are no objects standing on the way of the extended port line to avoid any unwanted overlaps.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM72.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The mesh of a patch antenna excited with a de-embedded source. Note the feed line extension in the mesh view.&lt;br /&gt;
&lt;br /&gt;
You can define de-embedded source on metal (PEC), slot (PMC) and conductive sheet traces. To define a de-embedded source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the De-Embedded Source Dialog by right clicking on the '''De-Embedded Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' or arrays of such objects that are available in the project workspace. The box labeled '''Direction''' shows the direction the phase reference plane for S parameter calculation and determines which end of the host line to place the source at. You have the option to select either the positive or negative direction to bounce the source between the two ends of the line.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the phase reference plane from the end of the feed line object. The value of '''Offset''' by default is initially set to zero, meaning that the S parameters are calculated at the plane passing through the end of the feed line. Type in a new offset value or use the spin buttons to move the source arrow along the line away from its end. As you change the offset value, you can see the source arrow move along its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of slot traces) and '''Phase''' in degrees.&lt;br /&gt;
* In the '''Prony Mode Extraction''' section, you can specify the '''Number of Prony Modes''', which refers to the number of positive-negative exponential pairs that are extracted from the standing wave current data. The default value is 1 and represents the dominant quasi-TEM incident/reflected signal pair.&lt;br /&gt;
&lt;br /&gt;
In a planar project with de-embedded sources, if you do not define any ports, the feed lines will simply be extended, and the exciting gap sources will be placed at the open ends of these extended lines. Note that if you define a de-embedded source along with a port definition in your project, then all the other port-assigned sources of your project must be of the same de-embedded type. You can define de-embedded sources for coplanar waveguides (CPW) on slot traces. To do so, you need to place two collocated, de-embedded sources with identical offsets (same phase reference plane), same source amplitudes but 180° phase difference. Note that for CPW structures, setting the number of Prony modes to 2 can get you more accurate results. In this case, the two extracted Prony modes will include the incident and reflected, odd and even, propagating modes of the CPW.&lt;br /&gt;
&lt;br /&gt;
=== Using the Line Calculator ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides a simple calculator for analyzing planar transmission lines. It is based on the frequency domain finite difference (FDFD) technique. You can find the characteristic impedance, effective permittivity and guide wavelength of a TEM or quasi-TEM transmission line defined based on your project's background structure. Therefore, any arbitrary stack-up configuration with any number of substrate layers can be considered.&lt;br /&gt;
&lt;br /&gt;
To access the Line Calculator, first you have to select a metal (PEC) trace or a slot (PMC) trace in the Navigation Tree. Right click on the name of a trace and select '''Line Calc...''' from the contextual menu to open the Line Calc Dialog. You can analyze a metal strip line on any PEC trace or a coplanar waveguide (coupled slot lines) on any PMC trace. The 2D line structure to be analyzed by the FDFD method consists of the background structure of your project with a metal strip or CPW located at the Z-plane of your selected trace. Depending on whether your open the Line Calc dialog from a metal trace or a slot trace, a picture of a microstrip line or a CPW line appear at the top of the dialog, respectively. In the former case, you have to specify '''Strip Width''' in the project units. In the latter case, you have to specify '''Slot Width''', too. Keep in mind that the strip width is equal to the spacing between the two slot lines minus the width of individual slot lines. Clicking the Analyze button of the dialog evokes the FDTD simulator, and calculated results are reflected in the boxes labeled '''Zo''', '''Effective Permittivity''' and '''Guide Wavelength'''.&lt;br /&gt;
&lt;br /&gt;
When your background structure involves a slot (PMC) trace, then there is an infinite PEC ground plane at the plane of the slot trace. In that case, when you analyze a strip line on a metal trace, you must keep in mind that your stack-up configuration will be truncated by the slot's ground plane just for purpose of Z&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; calculation. A typical case of this type is a slot-coupled patch antenna fed by a microstrip line underneath the slot. From the point of view of the Line Calculator, the microstrip line lies on a substrate layer that is backed by the slot's ground plane and it does not see the substrate layer lying above the slot plane.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM75.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Analyzing a metal strip line using the line calculator.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM76.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Analyzing a coplanar waveguide using the line calculator.&lt;br /&gt;
&lt;br /&gt;
=== Short Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM110.png|thumb|250px|Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A short dipole is the simplest type of radiator, which consists of a short current element of length &amp;amp;amp;DELTA;l, aligned along a unit vector û and carrying a current of I Amperes. The product I&amp;amp;amp;DELTA;l is often called the dipole moment and gives a measure of the radiator's strength. A short dipole in the free space generates an azimuth-symmetric, almost omni-directional, far field. However, the radiated fields of a short dipole above a layered planar background structure are greatly altered by the presence of the substrate layers. Note that the electric and magnetic field radiated by a short dipole in the presence of a layered background structure are indeed nothing but the dyadic Green's functions of that structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{EJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{HJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM109(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To define a short dipole source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Short Dipoles''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' The Short Dipole Dialog opens up.&lt;br /&gt;
* In the section titled '''Source Location''', enter values for the X, Y and Z coordinates of the dipole's center. By default, a new dipole is placed at the origin of coordinates. As you change the coordinates using the spin buttons, you will see the dipole move in the project workspace.&lt;br /&gt;
* In the section titled '''Source Properties''', you can change the values of the dipole's '''Amplitude''' (in A), '''Phase''' (in degrees) and '''Length''' in the project's length units. A new dipole, by default, is Z-directed. You can change its orientation by entering the components of its unit vector in the three boxes labeled '''Direction Unit Vector'''.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM77.png|thumb|300px|[[Planar Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure with an incident plane wave to explore its scattering characteristics such as radar cross section (RCS). Exciting an antenna structure with an incident plane wave is equivalent to operating it in the &amp;amp;quot;receive&amp;amp;quot; mode. Plane wave excitation in the [[Planar Module]] is particularly useful for calculation of reflection and transmission coefficients of periodic surfaces. Note that the incident plane wave in your project bounces off the layered background structure and part of it also penetrates the substrate layers. The total incident field that is used to calculate the excitation vector of the MoM linear system is a superposition of the incident, reflected and transmitted plane waves at various regions of your planar structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{inc}(r)} = E_0 (\mathbf{\hat{e}_1} e^{ -jk_0 \mathbf{\hat{k}_1\cdot r} } + &lt;br /&gt;
R \mathbf{\hat{e}_2} e^{ -jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{inc}(r)} = \frac{E_0}{\eta_0} ( \mathbf{\hat{k}_1 \times \hat{e}_1} e^{-jk_0 \mathbf{\hat{k}_1 \cdot r} } + &lt;br /&gt;
R \mathbf{\hat{k}_2 \times \hat{e}_2} e^{-jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi&amp;lt;/math&amp;gt; is the characteristic impedance of the free space, '''k&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the unit propagation vectors of the incident plane wave and the wave reflected off the topmost substrate layer, respectively, and '''ê&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''ê&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the polarization vectors corresponding to the electric field of those waves. R is the reflection coefficient at the interface between the top half-space and the topmost substrate layer and has different values for the TM and TE polarizations.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the theta and phi angles of the propagation vector in the spherical coordinate system. The default values are &amp;amp;theta; = 180° and &amp;amp;phi; = 0°, representing a normally incident plane wave propagating along the -Z direction with a +X-polarized electric field vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization cases, the magnetic and electric fields are parallel to the XY plane, respectively. The left-hand (LCP) and right-hand (RCP) circular polarization cases are restricted to normal incidences only (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the '''Amplitude''' of the incident electric field in V/m and '''Phase''' in degrees. The default field Amplitude is 1 V/m, with a zero Phase.&lt;br /&gt;
* The direction of the Plane Wave is determined by the incident '''Theta''' and '''Phi''' angles expressed in the spherical coordinate system in degrees. You have to choose the '''Polarization''' of the plane wave from the four options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''and '''RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''. The components of the unit propagation vector are shown based on your choice of the angles of incidence. The components of the normalized E- and H-field vectors are also displayed based on your choice of polarization.&lt;br /&gt;
&lt;br /&gt;
== Running Planar MoM Simulations ==&lt;br /&gt;
&lt;br /&gt;
The first step of planning a planar MoM simulation is defining your planar structure. This consists of the background structure plus all the finite-sized metal and slot trace objects and possibly embedded metal or dielectric objects that are interspersed among the substrate layers. The background stack-up is defined in the Layer Stack-up dialog, which automatically opens up as soon as you enter the [[Planar Module]]. The metal and slot traces and embedded object sets are listed in the Navigation Tree, which also shows all the geometrical (CAD) objects you draw in the project workspace under each object group at different Z-planes.&lt;br /&gt;
&lt;br /&gt;
The next step is to decide on the excitation scheme. If your planar structure has one or more ports and you seek to calculate its port characteristics, then you have to choose one of the lumped source types or a de-embedded source. If you are interested in the scattering characteristics of your planar structure, then you must define a plane wave source. Before you can run a planar MoM simulation, you also need to decide on the project's observables. These are the simulation data that you expect EM.Cube to generate as the outcome of the numerical simulation. EM.Cube's [[Planar Module]] offers the following observables:&lt;br /&gt;
&lt;br /&gt;
* Current Distribution&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Far Fields (Radiation Patterns or Radar Cross Section)&lt;br /&gt;
* Huygens Surfaces&lt;br /&gt;
* Port Characteristics&lt;br /&gt;
* Periodic Characteristics&lt;br /&gt;
&lt;br /&gt;
If you run a simulation without having defined any observables, no data will be generated at the end of the simulation. Some observables require a certain type of excitation source. For example, port characteristics will be calculated only if the project contains a port definition, which in turn requires the existence of at least one gap or probe or de-embedded source. The periodic characteristics (reflection and transmission coefficients) are calculated only if the structure has a periodic domain and excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Simulation Modes ===&lt;br /&gt;
&lt;br /&gt;
The simplest simulation type in EM.Cube is an analysis. In this mode, the planar structure in your project workspace is meshed at the center frequency of the project. EM.Cube generates an input file at this single frequency, and the Planar MoM simulation engine is run once. Upon completion of the planar MoM simulation, a number of data files are generated depending on the observables you have defined in your project. An analysis is a single-run simulation.&lt;br /&gt;
&lt;br /&gt;
EM.Cube offers a number of multi-run simulation modes. In such cases, the Planar MoM simulation engine is run multiple times. At each engine run, certain parameters are varied and a collection of simulation data are generated. At the end of a multi-run simulation, you can graph the simulation results in EM.Grid or you can animate the 3D simulation data from the Navigation Tree. For example, in a frequency sweep, the frequency of the project is varied over its specified bandwidth. Port characteristics are usually plotted vs. frequency, representing your planar structure's frequency response. In an angular sweep, the &amp;amp;theta; or &amp;amp;phi; angle of incidence of a plane wave source is varied over their respective ranges. EM.Cube's [[Planar Module]] currently provides the following types of multi-run simulation modes:&lt;br /&gt;
&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
* Angular Sweep&lt;br /&gt;
* R/T Macromodel&lt;br /&gt;
* Huygens Sweep&lt;br /&gt;
* [[Optimization]]&lt;br /&gt;
* HDMR&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting a simulation mode in [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
To run a planar MoM analysis of your project structure, open the Run Simulation Dialog by clicking the '''Run''' [[File:run_icon.png]] button on the '''Simulate Toolbar''' or select '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt;''' '''Run''' or use the keyboard shortcut '''Ctrl+R'''. The '''Analysis''' option of the '''Simulation Mode''' dropdown list is selected by default. Once you click the '''Run''' button, the simulation starts. A new window, called the '''Output Window''', opens up that reports the different stages of simulation and the percentage of the tasks completed at any time. After the simulation is successfully completed, a message pops up and reports the end of simulation. In certain cases like calculating scattering parameters of a circuit or reflection / transmission characteristics of a periodic surface, some results are also reported in the Output Window. At the end of a simulation, you need to click the '''Close''' button of the Output Window to return to the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM78.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Stages Of A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar MoM simulation engine uses a particular formulation of the method of moments called mixed potential integral equation (MPIE). Due to high-order singularities, the dyadic Green's functions for electric fields generated by electric currents as well as the dyadic Green's functions for magnetic fields generated by magnetic currents have very slow convergence behaviors. Instead of using these slowly converging dyadic Green's function, the MPIE formulation uses vector and scalar potentials. These include vector electric potential '''A(r)''', scalar electric potential K&amp;lt;sup&amp;gt;&amp;amp;Phi;&amp;lt;/sup&amp;gt;'''(r)''', vector magnetic potential '''F(r)''' and scalar magnetic potential K&amp;lt;sup&amp;gt;&amp;amp;Psi;&amp;lt;/sup&amp;gt;'''(r)'''. These potentials have singularities of lower orders. As a result, they coverage relatively faster. The speed of their convergence is further increased drastically using special singularity extraction techniques.&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation consists of two major stages: matrix fill and linear system inversion. In the first stage, the moment matrix and excitation vector are calculated. In the second stage, the MoM system of linear equations is inverted using one of the several available matrix solvers to find the unknown coefficients of all the basis functions. The unknown electric and magnetic currents are linear superpositions of all these elementary solutions. These can be visualized in EM.Cube using the current distribution observables. Having determined all the electric and magnetic currents in your planar structure, EM.Cube can then calculate the near fields on prescribed planes. These are introduced as field sensor observables. The near-zone electric and magnetic fields are calculated using a spectral domain formulation of the dyadic Green's functions. Finally the far fields of the planar structure are calculated in the spherical coordinate system. These calculations are performed using the asymptotic form of the dyadic Green's functions using the &amp;amp;quot;stationary phase method&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Setting Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation involves a number of numerical parameters that take preset default values unless you change them. You can access these parameters and change their values by clicking the '''Settings''' button next to the '''Select Engine''' dropdown list in the [[Planar Module]]'s Simulation Run dialog. In most cases, you do not need to open this dialog and you can leave all the default numerical parameter values intact. However, it is useful to familiarize yourself with these parameters, as they may affect the accuracy of your numerical results.&lt;br /&gt;
&lt;br /&gt;
The Planar MoM Engine Settings Dialog is organized in a number of sections. Here we describe some of the numerical parameters. The &amp;amp;quot;'''Matrix Fill'''&amp;amp;quot; section of the dialog deals with the operations involving the dyadic Green's functions. You can set a value for the '''Convergence Rate for Integration''', which is 1E-5 by default. This is used for the convergence test of all the infinite integrals in the calculation of the Hankel transform of spectral-domain dyadic Green's functions. When the substrate is lossy, the surface wave poles are captured in the complex integration plane using contour deformation. You can change the maximum number of iterations involved in this deformed contour integration, whose default value is 20. When the substrate is very thin with respect to the wavelength, the dyadic Green's functions exhibit numerical instability. Additional singularity extraction measures are taken to avoid numerical instability but at the expense of increased computation time. By default, a thin substrate layer is defined to a have a thickness less than 0.01&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;, where &amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective wavelength. You can modify the definition of &amp;amp;quot;Thin Substrate&amp;amp;quot; by entering a value for '''Thin Substrate Threshold''' different than the default 0.01. The parameter '''Max Coupling Range''' determines the distance threshold in wavelength between the observation and source points after which the Green's interactions are neglected. This distance by default is set to 1,000 wavelengths. For electrically small structures, the phase variation across the structure may be negligible. In such cases, a fast quasi-static analysis can be carried out. You can set this threshold in wavelengths in the box labeled '''Max Dimensions for Quasi-Static Analysis'''.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Spectral Domain Integration&amp;amp;quot; section of the dialog, you can set a value to '''Max Spectral Radius in k0''', which has a default value of 30. This means that the infinite spectral-domain integrals in the spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; are pre-calculated and tabulated up to a limit of 30k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant. These integrals may converge much faster based on the specified Convergence Rate for Integration described earlier. However, in certain cases involving highly oscillatory integrands, much larger integration limits like 100k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; might be needed to warrant adequate convergence. For spectral-domain integration along the real k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; axis, the interval [0, Nk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;] is subdivided into a large number of sub-intervals, within each an 8-point Gauss-Legendre quadrature is applied. The next parameter, '''No. Radial Integration Divisions per k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;''', determines how small these intervals should be. By default, 2 divisions are used for the interval [0, k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;]. In other words, the length of each integration sub-interval is k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/2. You can increase the resolution of integration by increasing this value above 2. Finally, instead of 2D Cartesian integration in the spectral domain, a polar integration is performed. You can set the '''No. of Angular Integration Points''', which has a default value of 100.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM79.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Linear System Solvers ===&lt;br /&gt;
&lt;br /&gt;
After the MoM impedance matrix '''[Z]''' (not to be confused with the impedance parameters) and excitation vector '''[V]''' have been computed through the matrix fill process, the planar MoM simulation engine is ready to solve the system of linear equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[Z]}_{N\times N} \cdot \mathbf{[I]}_{N\times 1} = \mathbf{[V]}_{N\times 1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM81.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''[I]''' is the solution vector, which contains the unknown amplitudes of all the basis functions that represent the unknown electric and magnetic currents of finite extents in your planar structure. In the above equation, N is the dimension of the linear system and equal to the total number of basis functions in the planar mesh. EM.Cube's linear solvers compute the solution vector'''[I]''' of the above system. You can instruct EM.Cube to write the MoM matrix and excitation and solution vectors into output data files for your examination. To do so, check the box labeled &amp;amp;quot;'''Output MoM Matrix and Vectors'''&amp;amp;quot; in the Matrix Fill section of the Planar MoM Engine Settings dialog. These are written into three files called mom.dat1, exc.dat1 and soln.dat1, respectively.&lt;br /&gt;
&lt;br /&gt;
There are a large number of numerical methods for solving systems of linear equations. These methods are generally divided into two groups: direct solvers and iterative solvers. Iterative solvers are usually based on matrix-vector multiplications. Direct solvers typically work faster for matrices of smal to medium size (N&amp;amp;lt;3,000). EM.Cube's [[Planar Module]] offers five linear solvers:&lt;br /&gt;
&lt;br /&gt;
# LU Decomposition Method&lt;br /&gt;
# Biconjugate Gradient Method (BiCG)&lt;br /&gt;
# Preconditioned Stabilized Biconjugate Gradient Method (BCG-STAB)&lt;br /&gt;
# Generalized Minimal Residual Method (GMRES)&lt;br /&gt;
# Transpose-Free Quasi-Minimum Residual Method (TFQMR)&lt;br /&gt;
&lt;br /&gt;
Of the above list, LU is a direct solver, while the rest are iterative solvers. BiCG is a relatively fast iterative solver, but it works only for symmetric matrices. You cannot use BiCG for periodic structures or planar structures that contain both metal and slot traces at different planes, as their MoM matrices are not symmetric. The three solvers BCG-STAB, GMRES and TtFQMR work well for both symmetric and asymmetric matrices and they also belong to a class of solvers called '''Krylov Sub-space Methods'''. In particular, the GMRES method always provides guaranteed unconditional convergence.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, provides a &amp;amp;quot;'''Automatic'''&amp;amp;quot; solver option that picks the best method based on the settings and size of the numerical problem. For linear systems with a size less than N = 3,000, the LU solver is used. For larger systems, BiCG is used when dealing with symmetric matrices, and GMRES is used for asymmetric matrices. If the size of the linear system exceeds N = 15,000, the sparse version of the iterative solvers is used, utilizing a row-indexed sparse storage scheme. You can override the automatic solver option and manually set you own solver type. This is done using the '''Solver Type''' dropdown list in the &amp;amp;quot;'''Linear System Solver'''&amp;amp;quot; section of the Planar MoM Engine Settings dialog. There are also a number of other parameters related to the solvers. The default value of '''Tolerance of Iterative Solver''' is 1E-3, which can be increased for more ill-conditioned systems. The maximum number of iterations is usually expressed as a multiple of the systems size. The default value of '''Max No. of Solver Iterations / System Size''' is 3. For extremely large systems, sparse versions of iterative solvers are used. In this case, the elements of the matrix are thresholded with respect to the larges element. The default value of '''Threshold for Sparse Solver''' is 1E-6, meaning that all the matrix elements whose magnitude is less than 1E-6 times the large matrix elements are set equal to zero. There are two more parameters that are related to the Automatic Solver option. These are &amp;amp;quot;''' User Iterative Solver When System Size &amp;amp;gt;'''&amp;amp;quot; with a default value of 3,000 and &amp;amp;quot;''' Use SParse Storage When System Size &amp;amp;gt;''' &amp;amp;quot; with a default value of 15,000. In other words, you control the automatic solver when to switch between direct and iterative solvers and when to switch to the sparse version of iterative solvers.&lt;br /&gt;
&lt;br /&gt;
If your computer has an Intel CPU, then EM.Cube offers special versions of all the above linear solvers that have been optimized for Intel CPU platforms. These optimal solvers usually work 2-3 time faster than their generic counterparts. When you install EM.Cube, the option to use Intel-optimized solvers is already enabled. However, you can disable this option (e.g. if your computer has a non-Intel CPU). To do that, open the EM.Cube's Preferences Dialog from '''Menu &amp;amp;gt; Edit &amp;amp;gt; Preferences''' or using the keyboard shortcut '''Ctrl+H'''. Select the Advanced tab of the dialog and uncheck the box labeled &amp;amp;quot;''' Use Optimized Solvers for Intel CPU'''&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM82.png]]&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
Electric and magnetic currents are the fundamental output data of a planar MoM simulation. After the numerical solution of the MoM linear system, they are found using the solution vector '''[I]''' and the definitions of the electric and magnetic vectorial basis functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{[I]}_{N\times 1} = &lt;br /&gt;
\begin{bmatrix} I^{(J)} \\ \\ V^{(M)} \end{bmatrix} \quad \Rightarrow \quad&lt;br /&gt;
&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\mathbf{J(r)} = \sum_{n=1}^N I_n^{(J)} \mathbf{f_n^{(J)} (r)} \\&lt;br /&gt;
\\&lt;br /&gt;
\mathbf{M(r)} = \sum_{k=1}^K V_k^{(M)} \mathbf{f_k^{(M)} (r)}&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that currents are complex vector quantities. Each electric or magnetic current has three X, Y and Z components, and each complex component has a magnitude and phase. You can visualize the surface electric currents on metal (PEC) and conductive sheet traces, surface magnetic currents on slot (PMC) traces and vertical volume currents on the PEV vias and embedded dielectric objects. 3D color-coded intensity plots of electric and magnetic current distributions are visualized in the project workspace, superimposed on the surface of physical objects.&lt;br /&gt;
&lt;br /&gt;
In order to view the current distributions, you must first define them as observables before running the planar MoM simulation. To do that, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. At the top of the dialog and in the section titled '''Active Trace / Set''', you can select a trace or embedded object set where you want to observe the current distribution. You can also select the current map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for current amplitude and phase, while the latter generates a 3D vector plot.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM84.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Current Distribution dialog.&lt;br /&gt;
&lt;br /&gt;
Once you close the current distribution dialog, the label of the selected trace or object set is added under the '''Current Distributions''' node of the Navigation Tree. &lt;br /&gt;
&lt;br /&gt;
{{Note|You have to define a separate current distribution observable for each individual trace or embedded object set.}}&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the current distribution nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''J''') and magnetic ('''M''') currents as well as the total electric and magnetic currents defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{J_{tot}} | = \sqrt{|J_x|^2 + |J_y|^2 + |J_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{M_{tot}} | = \sqrt{|M_x|^2 + |M_y|^2 + |M_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can click on any current plot to visualize it in the project workspace. A legend box at the upper right corner of the screen shows the color map scale as well as the minimum, maximum, mean and standard deviation of the current data and its units. To exit the 3D plot view and return to EM.Cube's normal view, hit the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM85(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The current distribution map of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM86(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Vectorial (cone) visualization of the current distribution on a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
Once all the current distributions are known in a planar structure, the electric and magnetic fields can be calculated everywhere in that structure using the dyadic Greens's functions of the background structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{EJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{EM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{HJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{HM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM92(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above equations can be cast into the spectral domain as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{EJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{EM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{HJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{HM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM93(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Calculation of the near-zone fields (fields at the vicinity of the unknown currents) is done at the post-processing stage and in a Cartesian coordinate systems. These calculations involve doubly infinite spectral-domain integrals, which are computed numerically. As was mentioned earlier, EM.Cube's planar MoM engine rather uses a polar integration scheme, where the radial spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; is integrated over the interval [0, Mk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;], M being a large enough number to represent infinity, and the angular spectral variable t is integrated over the interval [0, 2&amp;amp;pi;]. You also saw some of the numerical parameters related to this spectral-domain integration scheme.&lt;br /&gt;
&lt;br /&gt;
{{Note|When the observation plane is placed very close to the radiating J and M currents, the Green's functions exhibit singularities, which translate to very slow convergence or divergence of the integrals. You need to be careful to place field sensors at adequate distances from these radiating sources.}}&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|300px|[[Planar Module]]'s Field Sensor dialog]]&lt;br /&gt;
In order to view the near field distributions, you must first define field sensor observables before running the planar MoM simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of near field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear.&lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.&lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a planar MoM simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{E_{tot}}| = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{H_{tot}}| = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules, near field calculations in the [[Planar Module]] usually takes substantial time. This is due to the fact that at the end of a planar MoM simulation, the fields are not available anywhere (as opposed to the [[FDTD Module]]), and their computation requires integration of complex dyadic Green's functions (as opposed to [[MoM3D Module]]'s free space Green's functions).&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM116.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone electric field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone magnetic field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
Unlike differential-based methods, MoM simulators do not need a radiation box to calculate the far field data. The far-zone fields are calculated directly by integrating the currents on the traces and across the embedded objects using the asymptotic form of the background structure’s dyadic Green's functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{ff}(r)} = \iiint_V \mathbf{ \overline{\overline{G}}_{EJ,ff}(r|r') \cdot J(r') } \, d\nu ' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM,ff}(r|r') \cdot M(r') } \, d\nu '&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \dfrac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; is the characteristic impedance of the free space. As can be seen from the above equations, the far fields have the form of a TEM wave propagating in the radial direction away from the origin of coordinates. This means that the far-field magnetic field is always perpendicular to the electric field and the propagation vector, which in this case happens to be the radial unit vector in the spherical coordinate system. In other words, one only needs to know the far-zone electric field and can easily calculate the far-zone magnetic field from it. In EM.Cube's mixed potential integral equation formulation, the far-zone electric field can be expressed in terms of the asymptotic form of the vector electric and magnetic potentials '''A''' and '''F''':&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{E^{ff}}(x,y,z) = j k_0 \eta_0 \hat{r} \times [\hat{r} \times \mathbf{A}(r \to \infty)] +&lt;br /&gt;
j k_0 \hat{r} \times \mathbf{F}(r \to \infty)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The asymptotic form of these vector potentials are calculated using the &amp;amp;quot;'''Method of Stationary Phase'''&amp;amp;quot; when k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;rarr; &amp;amp;infin;. In that case, one can use the approximation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_0 |\mathbf{r-r'}| \approx k_0 (r - \mathbf{\hat{r} \cdot r'}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM115.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After applying the stationary phase method, one can extract the spherical wave factor exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/r from the far-zone electric field, leaving the rest as functions of the spherical angles &amp;amp;theta; and &amp;amp;phi;. In other words, the far field is normalized to r, the distance from the field observation point to the origin. It is customary to express the far fields in spherical components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;. Note that the outward propagating, TEM-type, far fields do not have radial components, i.e. E&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 0.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\theta}}(\theta, \phi) = \cos\theta \cos\phi E_x + \cos\theta \sin\phi E_y - \sin\theta E_z &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\phi}}(\theta, \phi) = -\sin\phi E_x + \cos\phi E_y &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM114.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM118.png|thumb|300px|[[Planar Module]]'s Radiation Pattern dialog]]&lt;br /&gt;
Even though the planar MoM engine does not need a radiation box, you still have to define a &amp;amp;quot;Far Field&amp;amp;quot; observable for radiation pattern calculation. This is because far field calculations take time and you have to instruct EM.Cube to perform these calculations. To define a far field, right click the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...'''. The Radiation Pattern Dialog opens up. You may accept the default settings, or you can change the value of '''Angle Increment''', which is expressed in degrees. You can also choose to '''Normalize 2D Patterns'''. In that case, the maximum value of a 2D paten graph will have a value of 1; otherwise, the actual far field values in V/m will be used on the graph.&lt;br /&gt;
&lt;br /&gt;
Once a planar MoM simulation is finished, three far field items are added under the Far Field item in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the &amp;amp;quot;Total&amp;amp;quot; far field. The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the whole structure or parts of it. In a 3D radiation pattern plot, the fields are always normalized to the maximum value of the total far field for visualization purpose:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM89.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM119.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D polar radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM120.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D vectorial (cone) radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
The 2D radiation pattern graphs can be plotted from EM.Cube's '''Data Manager'''. A total of eight 2D radiation pattern graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section of Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM124.png|thumb|300px|Planar Module's Radar Cross Section dialog]]&lt;br /&gt;
&lt;br /&gt;
When a planar structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields of that planar structure. EM.Cube can also calculate the radar cross section (RCS) of a planar target:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{|E_{\theta}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{|E_{\phi}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{|E_{tot}^{scat}|^2}{|E^{inc}|^2} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM123.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note that in this case the RCS is defined for a finite-sized target in the presence of an infinite background structure.''' The scattered &amp;amp;theta; and &amp;amp;phi; components of the far-zone electric field are indeed what you see in the 3D far field visualization of radiation (scattering) patterns. Instead of radiation or scattering patterns, you can instruct EM.Cube to plot 3D visualizations of &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and the total RCS. To do so, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* At the end of a planar MoM simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This fourth plane cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D mono-static radar cross section plot of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Running a Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
In a frequency sweep, the operating frequency of a planar structure is varied during each sweep run. EM.Cube's [[Planar Module]] offers two types of frequency sweep: Uniform and Adaptive. In a uniform frequency sweep, the frequency range and the number of frequency samples are specified. The samples are equally spaced over the frequency range. At the end of each individual frequency run, the output data are collected and stored. At the end of the frequency sweep, the 3D data can be visualized and/or animated, and the 2D data can be graphed in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
To run a uniform frequency sweep, open the '''Simulation Run Dialog''', and select the '''Frequency Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the frequency sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Frequency Settings''' dialog. The '''Frequency Range'''is initially set equal to your project's center frequency minus and plus half bandwidth. But you can change the values of '''Start Frequency'''and '''End Frequency''' as well as the '''Number of Samples'''. The dialog offers two options for '''Frequency Sweep Type''': '''Uniform''' or '''Adaptive'''. Select the former type. It is very important to note that in a MoM simulation, changing the frequency results in a change of the mesh of the structure, too. This is because the mesh density is defined in terms of the number of cells per effective wavelength. By default, during a frequency sweep, EM.Cube fixes the mesh density at the highest frequency, i.e., at the &amp;amp;quot;End Frequency&amp;amp;quot;. This usually results in a smoother frequency response. You have the option to fix the mesh at the center frequency of the project or let EM.Cube &amp;amp;quot;remesh&amp;amp;quot; the planar structure at each frequency sample during a frequency sweep. You can make one of these three choices using the radio button in the '''Mesh Settings''' section of the dialog. Closing the Frequency Settings dialog returns you to the Simulation Run dialog, where you can start the planar MoM frequency sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Frequency Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Adaptive Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
Frequency sweeps are often performed to study the frequency response of a planar structure. In particular, the variation of scattering parameters like S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; (return loss) and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; (insertion loss) with frequency are of utmost interest. When analyzing resonant structures like patch antennas or planar filters over large frequency ranges, you may have to sweep a large number of frequency samples to capture their behavior with adequate details. The resonant peaks or notches are often missed due to the lack of enough resolution. EM.Cube's [[Planar Module]] offers a powerful adaptive frequency sweep option for this purpose. It is based on the fact that the frequency response of a physical, causal, multiport network can be represented mathematically using a rational function approximation. In other words, the S parameters of a circuit exhibit a finite number of poles and zeros over a given frequency range. EM.Cube first starts with very few frequency samples and tries to fit rational functions of low orders to the scattering parameters. Then, it increases the number of samples gradually by inserting intermediate frequency samples in a progressive manner. At each iteration cycle, all the possible rational functions of higher orders are tried out. The process continues until adding new intermediate frequency samples does not improve the resolution of the &amp;amp;quot;S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;&amp;amp;quot; curves over the given frequency range. In that case, the curves are considered as having converged.&lt;br /&gt;
&lt;br /&gt;
You must have defined one or more ports for your planar structure run an adaptive frequency sweep. Open the Frequency Settings dialog from the Simulation Run dialog and select the '''Adaptive''' option of '''Frequency Sweep Type'''. You have to set values for '''Minimum Number of Samples''' and '''Maximum Number of Samples'''. Their default values are 3 and 9, respectively. You also set a value for the '''Convergence Criterion''', which has a default value of 0.1. At each iteration cycle, all the S parameters are calculated at the newly inserted frequency samples, and their average deviation from the curves of the last cycle is measured as an error. When this error falls below the specified convergence criterion, the iteration is ended. If EM.Cube reaches the specified maximum number of iterations and the convergence criterion has not yet been met, the program will ask you whether to continue the process or exit it and stop.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large frequency ranges, you may have to increase both the minimum and maximum number of samples. Moreover, remeshing the planar structure at each frequency may prove more practical than fixing the mesh at the highest frequency.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Settings adaptive frequency sweep parameters in [[Planar Module]]'s Frequency Settings Dialog.&lt;br /&gt;
&lt;br /&gt;
=== Examining Port Characteristics ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure is excited by gap sources or probe sources or de-embedded sources, and one or more ports have been defined, the planar MoM engine calculates the scattering, impedance and admittance (S/Z/Y) parameters of the designated ports. The scattering parameters are defined based on the port impedances specified in the project's Port Definition dialog. If more than one port has been defined in the project, the S/Z/Y matrices of the multiport network are calculated. Note that the S/Z/Y matrices of an N-port structure are related to each other through the following equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM121.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively, and &amp;lt;math&amp;gt;\mathbf{[\sqrt{Z_0}]}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM122.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the values of S/Z/Y parameters and VSWR data are calculated and reported in the output message window. The S, Z and Y parameters are written into output ASCII data files of complex type with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Every file begins with a header consisting of a few comment lines that start with the &amp;amp;quot;#&amp;amp;quot; symbol. The complex values are arranged into two columns for the real and imaginary parts. In the case of multiport structures, every single element of the S/Z/Y matrices is written into a separate complex data file. For example, you will have data files like S11.CPX, S21.CPX, ..., Z11.CPX, Z21.CPX, etc. The VSWR data are saved to an ASCII data file of real type with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension called, VSWR.DAT.&lt;br /&gt;
&lt;br /&gt;
If you run an analysis, the port characteristics have single complex values, which you can view using EM.Cube's data manager. However, there are no curves to graph. You can plot the S/Z/Y parameters and VSWR data when you have data sets, which are generated at the end of any type of sweep including a frequency sweep. In that case, the &amp;amp;quot;.CPX&amp;amp;quot; files have multiple rows corresponding to each value of the sweep parameter (e.g. frequency). EM.Cube's 2D graph data are plotted in EM.Grid, a versatile graphing utility. You can plot the port characteristics directly from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting port characteristics data to plot from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
You can also see a list of all the port characteristics data files in EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. By default, the S parameters are plotted as double magnitude-phase graphs, while the Y and Z parameters are plotted as double real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You can change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM129.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Data Manager showing a list of the port characteristics data files.&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it in the Data Manager and click its '''Edit''' button. In the Edit File Dialog, choose one of the options provided in the dropdown list labeled '''Graph Type'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM130.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Changing the graph type by editing a data file's properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM134.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plotted on a Smith Chart graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
=== Rational Interpolation Of Scattering Parameters ===&lt;br /&gt;
&lt;br /&gt;
The adaptive frequency sweep described earlier is an iterative process, whereby the Planar MoM simulation engine is run at a certain number of frequency samples at each iteration cycle. The frequency samples are progressively built up, and rational fits for these data are found at each iteration cycle. A decision is then made whether to continue more iterations. At the end of the whole process, a total number of scattering parameter data samples have been generated, and new smooth data corresponding to the best rational fits are written into new data files for graphing. EM.Cube's [[planar Module]] also allows you to generate a rational fit for all or any existing scattering parameter data as a post-processing operation without a need to run additional simulation engine runs.&lt;br /&gt;
&lt;br /&gt;
You can interpolate all the scattering parameters together or select individual parameters. You do this post-processing operation from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select Smart Fit. At the top of the Smart Fit Dialog, there is a dropdown list labeled '''Interpolate''', which gives a list of all the available S parameter data for rational interpolation. The default option is &amp;amp;quot;All Available Parameters&amp;amp;quot;. Then you see a box labeled '''Number of Available Samples''', whose value is read from the data content of the selected complex .CPX data file. Based on the number of available data samples, the dialog reports the '''Maximum Interpolant Order'''. You can choose any integer number for '''Interpolant Order''', from 1 to the maximum allowed. &lt;br /&gt;
&lt;br /&gt;
{{Note|Interpolant order more than 15 will suffer from numerical instabilities even if you have a very large number of data samples.}}&lt;br /&gt;
&lt;br /&gt;
You can use the '''Update''' button of the dialog to generate the interpolated data for a given order. The new data are written to a complex data file with the same name as the selected S parameter and a &amp;amp;quot;'''_RationalFit'''&amp;amp;quot; suffix. While this dialog is still open, you can plot the new data either directly from the Navigation Tree or from the Data Manager. If you are not satisfied with the results, you can return to the Smart Fit dialog and try a higher or lower interpolant order and compare the new data.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM131.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Smart Fit dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM133(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of a two-port structure in magnitude-phase format.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM132(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The smoothed version of the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of the two-port structure using EM.Cube's Smart Fit.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Output Simulation Data ===&lt;br /&gt;
&lt;br /&gt;
Depending on the source type and the types of observables defined in a project, a number of output data are generated at the end of a planar MoM simulation. Some of these data are 2D by nature and some are 3D. The output simulation data generated by EM.Cube's [[Planar Module]] can be categorized into the following groups:&lt;br /&gt;
&lt;br /&gt;
* '''Port Characteristics''': S, Z and Y Parameters and Voltage Standing Wave Ratio (VSWR)&lt;br /&gt;
* '''Radiation Characteristics''': Radiation Patterns, Directivity, Total Radiated Power, Axial Ratio, Main Beam Theta and Phi, Radiation Efficiency, Half Power Beam Width (HPBW), Maximum Side Lobe Level (SLL), First Null Level (FNL), Front-to-Back Ratio (FBR), etc.&lt;br /&gt;
* '''Scattering Characteristics''': Bi-static and Mono-static Radar Cross Section (RCS)&lt;br /&gt;
* '''Periodic Characteristics''': Reflection and Transmission Coefficients&lt;br /&gt;
* '''Current Distributions''': Electric and magnetic current amplitude and phase on all metal and slot traces and embedded objects&lt;br /&gt;
* '''Near-Field Distributions''': Electric and magnetic field amplitude and phase on specified planes and their central axes&lt;br /&gt;
&lt;br /&gt;
At the end of an analysis, the 2D quantities usually have a single value that is written into an ASCII data file. Complex-valued quantities are written into complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Real-valued quantities are written into real data files with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension. Polar 2D radiation pattern data and some other radiation characteristics are written into angular data files with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; extension. In this latter file type, polar data are stored as functions of an angle expressed in degrees. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). If a sweep simulation involves N sweep [[variables]], then the first N columns of the output data files show the samples of those sweep [[variables]]. All the 2D data files are listed in the '''2D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
3D output data, on the other hand, are defined as functions of the space coordinates and are usually of vectorial nature. Cartesian-type and mesh-type data such as current distributions and near-field field distributions are expressed as functions of the Cartesian (X, Y, Z) coordinates. Spherical-type data like far-field radiation patterns and RCS are expressed as functions of the spherical angles (&amp;amp;theta;, &amp;amp;phi;). The 3D radiation patterns are written into a file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension. This file contains the complex values of the &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field (E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;) as well as the total far field magnitude as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The 3D RCS patterns are written into a file with a &amp;amp;quot;'''.RCS'''&amp;amp;quot; extension. This file contains the real values of the &amp;amp;theta;- and &amp;amp;phi;-polarized RCS values as well as the total RCS as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The current distributions are written into data files with a &amp;amp;quot;'''.CUR'''&amp;amp;quot; extension. They contain the real and imaginary parts of the X, Y and Z components of electric ('''J''') and magnetic ('''M''') current on each cells together with the definition of all the node coordinates and node indices of the cells. The near-field distributions are written into data files with a &amp;amp;quot;'''.SEN'''&amp;amp;quot; extension. They contain the amplitude and phase of the X, Y and Z components of electric ('''E''') and magnetic ('''H''') fields as functions of the coordinates of sampling points. All the 3D data files are listed in the '''3D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The 3D Data Files tab of EM.Cube's Data Manager.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM139.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Viewing the contents of a mesh-type 3D data file in Data Manager.&lt;br /&gt;
&lt;br /&gt;
=== Standard vs. Custom Output ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a number of computed quantities are designated as &amp;amp;quot;Standard Output&amp;amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[File:functions_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Functions...'''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[File:custom_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Custom Output...'''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add''' button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit''' button, or you can delete any parameter from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
=== Viewing &amp;amp;amp; Visualizing Various Output Data Types ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a variety of 2D and 3D output data are generated. Some of these can be visualized or graphed directly from the Navigation Tree, while the others can only be accessed from the Data Manager. All of EM.Cube's simulation data are always written into ASCII data files that you can open and inspect or edit. Lists of these 2D and 3D data files appear under Data Manager's various tabs. The generated data also include all of [[Planar Module]]'s legitimate standard outputs that the simulation engine can compute given the specified source and observable types as well as all of your own previously defined custom output parameters. Note that in this release of EM.Cube, all the custom outputs are real-type data. Each custom output is written into a separate real data file with the same name as the parameter's given label and a &amp;amp;quot;'''.DAT'''&amp;amp;quot; file extension. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot its graph in '''EM.Grid'''. You can also view the contents of a data file by selecting its row in th file list and clicking the '''View''' button of the dialog or by simply double-clicking the highlighted row. This opens up a new window containing a convenient spreadsheet that gives a tabular view of the contents of the selected data file. There are a large number of data operations and manipulations that you can perform on the data content including matrix, calculus and statistical calculations as well as computing and plotting new datasets using the &amp;amp;quot;Compute&amp;amp;quot; feature of the spreadsheet. You can make multiple file selection using the keyboard's '''Ctrl''' and '''Shift''' keys.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing an angular file selected and highlighted for further action.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Data Manager's spreadsheet showing the contents of an angular data file.&lt;br /&gt;
&lt;br /&gt;
The 2D output data include real or complex quantities like various port, radiation, scattering and periodic characteristics. At the end of an analysis, most .CPX and .DAT data files have a single complex or real value, respectively. in other words, there are no curves to plot. Exceptions are Cartesian 2D radiation pattern or RCS data files along the principal and user define phi-cut planes, as well as polar 2D radiation pattern or RCS data files of angular type with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; file extension. These files contain the radiation pattern or RCS data as a function of some relevant angle in the specified plane. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). You can plot graphs of the 2D output data files that contain more than one row in '''EM.Grid'''. Each data file has a default graph type. Real data are plotted on EM.Grid's Cartesian graphs. Complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension are plotted on double Cartesian graphs of &amp;amp;quot;'''Magnitude-Phase'''&amp;amp;quot; type, showing the magnitude in dB and phase in radians. You can change the complex data's graph type to the &amp;amp;quot;'''Real-Imaginary'''&amp;amp;quot; or &amp;amp;quot;'''Smith Chart'''&amp;amp;quot; by selecting its entry in the Data Manager and clicking the '''Edit'''button to open the &amp;amp;quot;Edit File Properties Dialog&amp;amp;quot;. Angular data files like polar 2D radiation patterns or RCS, by default, are plotted on EM.Grid's &amp;amp;quot;'''Polar'''&amp;amp;quot; graphs. Note that real data can be graphed on bar charts, too, just as angular can alternatively be graphed on polar stem charts.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM142.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A 2D radiation pattern polar graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's 3D output simulation data usually have a vectorial nature and are defined as functions of the Cartesian or spherical space coordinates. At the end of a planar MoM simulation, you can view 3D visualizations of the vectorial output data such as current distributions, near-field field distributions, far-field radiation patterns and RCS in EM.Cube's project workspace by clicking on the corresponding observable entries in the Navigation Tree. When you run a sweep simulation of some sort, multiple 3D plots appear on the Navigation Tree representing all the sweep variable samples. You can animate these 3D visualization plots very conveniently from the Navigation Tree. To do so, right click on an observable's name in the Navigation Tree and select the '''Animation''' item from the contextual menu. Make sure that you right click on the observable's parent node, not on one of its child components corresponding to the sweep variable samples. The 3D plot in the project workspace starts to animate and continues forever until to stop it. A new window called &amp;amp;quot;''' Animation Controls Dialog'''&amp;amp;quot; opens up at the lower right corner of the EM.Cube desktop. This dialog allows you to control the animation speed using a box labeled '''Rate''', whose value multiplied by 100 milliseconds indeed gives the frame duration. You can speed up the animation or slow it down from the default rate of one frame per 300ms. The box labeled '''Sample''' show the current frame's plot label at any time. You can pause the animation, rewind it to the first frame, fast-forward it to the last frame or manually step it through back and forth using the movement buttons marked with the symbols |&amp;amp;lt;, &amp;amp;lt;&amp;amp;lt;, ||, &amp;amp;gt;&amp;amp;gt;,&amp;amp;gt;|.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM135.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Animating 3D radiation patterns as the send of a frequency sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM136.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep ===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the planar MoM simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweep, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed later, parametric sweeps are simple and straightforward and do not required careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;amp;quot;expression&amp;amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;amp;quot;formal&amp;amp;quot; option, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[File:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; [[Variables]]...'''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;amp;quot;Add Variable Dialog&amp;amp;quot;. Choose a '''Name''' for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;amp;quot;Variable List&amp;amp;quot;. You can also see the '''Current Value''' of every variable at any time in the Variable as dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit''' button or indirectly during a parametric sweep. In the former case, you have to click the '''Update''' button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, trace and object set dialogs, stack-up dialog or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;amp;quot;Variable List&amp;amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;amp;quot;current Value&amp;amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;amp;quot;Independent&amp;amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete''' and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;amp;quot;Start&amp;amp;quot; and &amp;amp;quot;End&amp;amp;quot; value and is incremented by a predetermined &amp;amp;quot;Step&amp;amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution''' is defined by &amp;amp;quot;Minimum&amp;amp;quot; and &amp;amp;quot;Maximum&amp;amp;quot; values, while '''Normal (Gaussian) Distribution''' is defined by a &amp;amp;quot;Mean&amp;amp;quot; and &amp;amp;quot;Standard Deviation&amp;amp;quot;. You need to specify the &amp;amp;quot;Number of Samples&amp;amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;amp;quot;Define Sweep Variable Dialog&amp;amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete''' and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up''' and '''Move Down''' buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;amp;quot;fake&amp;amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. If you run a dry run while EM.Cube is in the mesh view mode, then the planar mesh of your structure is updated for each combination of the sweep variable samples during the dry run process. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Optimizing Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (Optional but Highly Recommended) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;amp;lt;, &amp;amp;lt;=, &amp;amp;gt; or &amp;amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;amp;quot;'''=='''&amp;amp;quot; are regarded a &amp;amp;quot;'''Goals'''&amp;amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;amp;quot;'''Target Value'''&amp;amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;amp;quot;(LHS - RHS) == 0&amp;amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;amp;quot;non-Equal&amp;amp;quot; logical operators are regarded a &amp;amp;quot;'''Constraints'''&amp;amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[File:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;amp;quot;=== (Equal To)&amp;amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit''' button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation Run Dialog''', and select the '''[[Optimization]]''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;amp;quot;'''[[Optimization]] Algorithm'''&amp;amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm''' and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size''' as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;amp;quot;Define [[Optimization]] Variable Dialog&amp;amp;quot; opens up, where you have to set the '''Minimum'''and '''Maximum'''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog to change those value. If you check the box labeled &amp;amp;quot;''' Update [[Variables]] with Optimal Values'''&amp;amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;amp;quot;saturated&amp;amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;amp;quot;'''Exit Local Min Trap'''&amp;amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;amp;quot;'''Error Function'''&amp;amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;amp;quot;'''Maximum Error'''&amp;amp;quot; value for the objective function, which terminates the process as &amp;amp;quot;converged&amp;amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals''' and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those cases, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute''' button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals''' or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
== Periodic Planar Structures &amp;amp;amp; Antenna Arrays ==&lt;br /&gt;
&lt;br /&gt;
=== Finite Arrays vs. Infinite Periodic Structures ===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that exhibits a repeated geometric pattern. It is made up of identical elements that are arranged in the form of a periodic lattice. The spacing between the elements is denoted by Sx along the X direction and Sy along the Y direction. The number of elements is denoted by Nx along the X direction and Ny along the Y direction (i.e. a total of Nx.Ny elements). If Nx and Ny are finite numbers, you have a finite-sized periodic structure, which is constructed using an &amp;amp;quot;'''Array Object'''&amp;amp;quot; in EM.Cube. If Nx and Ny are infinite, you have an infinite periodic structure with periods Sx and Sy along the X and Y directions, respectively. An infinite periodic structure in EM.Cube is represented by a &amp;amp;quot;'''Periodic Unit Cell'''&amp;amp;quot;. Periodic structures have many applications including phased array antennas, frequency selective surfaces (FSS), electromagnetic bandgap structures (EBG), metamaterial structures, etc. EM.Cube allows you to model both finite and infinite periodic structures.&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; Real practical periodic structures obviously have finite extents. You can easily and quickly construct finite-sized arrays of arbitrary complexity using EM.Cube's &amp;amp;quot;Array Tool&amp;amp;quot;. However, for large values of Nx and Ny, the size of the computational problem may rapidly get out of hand and become impractical. For very large periodic arrays, you can alternatively analyze a unit cell subject to the periodic boundary conditions and calculate the current distribtutions and far fields of the periodic unit cell. For their radiation patterns, you can multiply the &amp;amp;quot;Element Pattern&amp;amp;quot; by an &amp;amp;quot;Array Factor&amp;amp;quot; that captures the finite extents of the structure. In many cases, an approximation of this type works quite well. But in some other cases, the edge effects and particularly the field behavior at the corners of the finite-sized array cannot be modeled accurately. Periodic surfaces like FSS, EBG and metamaterials are also modeled as infinite periodic structures, for which one can define reflection and transmission coefficients. For this purpose, the periodic structure is excited using a plane wave source. Reflection and transmission coefficients are typically functions of the angles of incidence.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
The straightforward approach to the modeling of finite-sized antenna arrays is to use the full-wave method of moments (MoM). This requires building an array of radiating elements using EM.Cube's '''Array Tool''' and feeding the individual array elements using some type of excitation. For example, if the antenna elements are excited using a gap source or a probe source, you can assign a certain array weight distribution among the elements as well as phase progression among the elements along the X and Y directions. EM.Cube currently offers uniform, binomial, Chebyshev and (arbitrary) data file-based weight distribution types. The full-wave MoM approach is very accurate and takes into account all the inter-element coupling effects. At the end of a planar MoM simulation of the array structure, you can plot the radiation patterns and other far field characteristics of the antenna array just like any other planar structure.&lt;br /&gt;
&lt;br /&gt;
The radiation pattern of antenna arrays usually has a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' such as first null level and first null beam width. To have EM.Cube calculate all such parameters, you must check the relevant boxes in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. In particular, you can plot such data files at the end of a sweep simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM91.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
Another approach to modeling a finite-sized antenna array is to analyze one of its elements and use the &amp;amp;quot;Array Factor&amp;amp;quot; concept to calculate its radiation patterns. This method ignores any inter-element coupling effects. In other words, you can regard the structure in the project workspace as a single isolated radiating element. To define an array factor, open the '''Radiation Pattern Dialog''' of the project. In the section titled &amp;amp;quot;'''Impose Array Factor'''&amp;amp;quot;, you will see a default value of 1 for the '''Number of Elements''' along the X and Y directions. This implies a single radiator, representing the structure in the project workspace. There are also default zero values for the '''Element Spacing''' along the X and Y directions. You should change both the number of elements and element spacing in the X and Y directions to define a finite array lattice. For example, you can define a linear array by setting the number of elements to 1 in one direction and entering a larger value for the number of elements along the other direction. Keep in mind that when using an array factor for far field calculation, you cannot assign non-uniform amplitude or phase distributions to the array elements. For that purpose, you have to define an array object with a source array.&lt;br /&gt;
&lt;br /&gt;
=== Defining A Periodic Domain ===&lt;br /&gt;
&lt;br /&gt;
In general, a planar structure in EM.Cube's [[Planar Module]] is assumed to have open boundaries. This means that the structure has infinite dimensions along the X and Y directions. In other words, the layers of the background structure extend to infinity, while the traces and embedded object sets have finite sizes. Along the Z direction, a planar structure can be open-boundary, or it may be truncated by PEC ground planes from the top or bottom or both. You can define a planar structure to be infinitely periodic along the X and Y directions. In this case, you only need to define the periodic unit cell. EM.Cube automatically reproduces the unit cell infinitely and simulates it using a spectral domain periodic version of the Green's functions of your project's background structure.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, you must open [[Planar Module]]'s Periodicity Settings Dialog by right clicking the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Periodicity Settings...''' from the contextual menu or by selecting '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt; 'Computational Domain &amp;amp;gt; Periodicity Settings...''' from the Menu Bar. In the Periodicity Settings Dialog, check the box labeled '''Periodic Structure'''. This will enable the section titled''&amp;amp;quot;''Lattice Properties&amp;amp;quot;. You can define the periods along the X and Y axes using the boxes labeled '''Spacing'''. You can also define values for periodic '''Offset''' along the X and Y directions, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
In a periodic structure, the virtual domain is replaced by a default blue periodic domain that is always centered around the origin of coordinates. Keep in mind that the periodic unit cell must always be centered at the origin of coordinates. The relative position of the structure within this centered unit cell will change the phase of the results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM99.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Regular vs. Generalized Periodic Lattices ===&lt;br /&gt;
&lt;br /&gt;
Besides conventional rectangular lattices, EM.Cube's [[Planar Module]] can also handle complex non-rectangular periodic lattices. For example, many frequency selective surfaces have skewed grids. In order to simulate skewed-grid periodic structures, the definition of the grid has to be generalized. A periodic structure is a repetition of a basic structure (unit cell) at pre-determined locations. Let these locations be described by (x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;, y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;), where m and n are integers ranging from -8 to 8. For a general skewed grid, x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; and y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; can be described by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_{mn} = m\Delta x + n \Delta x'&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;y_{mn} = m\Delta y + n \Delta y'&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; is the primary offset in the X direction (X Spacing) controlled by index m and &amp;lt;math&amp;gt;\Delta x'&amp;lt;/math&amp;gt; is the secondary offset in the X direction (X Offset) controlled by index n. The meanings of &amp;lt;math&amp;gt;\Delta y&amp;lt;/math&amp;gt; (Y Spacing) and &amp;lt;math&amp;gt;\Delta y'&amp;lt;/math&amp;gt; (Y Offset) are similar with the roles of indices m and n interchanged. To illustrate how to use this definition, consider an example of an equilateral triangular grid with side length L as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:image121.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of an equilateral triangular periodic lattice.&lt;br /&gt;
&lt;br /&gt;
From the figure, it is obvious that the y coordinate of each row is fixed and identical, thus &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. While in each row the spacing between adjacent elements is L, there is an offset of L/2 between the consecutive rows. This results in &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;. To sum up, an equilateral triangular grid can be described by &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. In an EM.Cube [[Planar Module]] project, the secondary offsets are equal to zero by default, implying a rectangular lattice. You can change the values of the secondary offsets using the boxes labeled '''X Offset''' and '''Y Offset''' in the '''Periodicity Settings Dialog''', respectively. Triangular and Hexagonal lattices are popular special cases of the generalized lattice type. In a triangular lattice with alternating Rows, &amp;lt;math&amp;gt;\Delta x' = \Delta x/2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. A Hexagonal lattice (with alternating rows) is a special case of triangular lattice in which &amp;lt;math&amp;gt;\Delta y = \sqrt{3\Delta x / 2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Interconnectivity Among Unit Cells ===&lt;br /&gt;
&lt;br /&gt;
In many cases, your planar structure's traces or embedded objects are entirely enclosed inside the periodic unit cell and do not touch the boundary of the unit cell. In EM.Cube's [[Planar Module]], you can define periodic structures whose unit cells are interconnected. Interconnectivity applies only to PEC, PMC and conductive sheet traces, and embedded object sets are excluded. Note that in a periodic planar structure, your objects cannot cross the periodic domain. However, you can arrange objects with linear edges such as one or more flat edges line up with the domain's bounding box. In such cases, EM.Cube's planar MoM mesh generator will take into account the continuity of the currents across the adjacent connected unit cells and will create the connection basis functions at the right and top boundaries of the unit cell. It is clear that due to periodicity, the basis functions do not need to be extended at the left or bottom boundaries of the unit cell.&lt;br /&gt;
&lt;br /&gt;
As an example, consider the periodic structure in the figure below that shows a metallic screen or wire grid. The unit cell of this structure can be defined as a rectangular aperture in a PEC ground plane (marked as Unit Cell 1). In this case, the rectangle object is defined as a slot trace. Alternatively, you can define a unit cell in the form of a microstrip cross on a metal trace. In the latter case, however, the microstrip cross should extend across the unit cell and connect to the crosses in the neighboring cells in order to provide current continuity.&lt;br /&gt;
&lt;br /&gt;
[[File:image122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Modeling a periodic screen using two different types of unit cell.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per3_tn.png|400px]] [[File:pmom_per4_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The PMC aperture unit cell and its planar mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per5_tn.png|400px]] [[File:pmom_per6_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The PEC cross unit cell and its planar mesh. Notice the cell extensions at the unit cell's boundaries.&lt;br /&gt;
&lt;br /&gt;
=== Periodic MoM Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the case of an infinite periodic planar structure, the field equations can be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E(r) = E^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{H(r) = H^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM94.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J_{mn}(r) = J_{mn}}(x,y,z) = \mathbf{J_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{M_{mn}(r) = M_{mn}}(x,y,z) = \mathbf{M_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; -\infty &amp;lt; m, n &amp;lt; \infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM95(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, &amp;lt;math&amp;gt;\mathbf{J_{00}(r)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{M_{00}(r)}&amp;lt;/math&amp;gt; are the periodic unit cell's electric and magnetic currents that are repeated everywhere in space on a rectangular lattice with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. &amp;lt;math&amp;gt;k_{x00}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;k_{y00}&amp;lt;/math&amp;gt; are the periodic propagation constants along the X and Y directions, respectively, and they are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{x00} = k_0 \sin\theta \cos\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{y00} = k_0 \sin\theta \sin\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM96(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;theta; and &amp;amp;phi; are the beam scan angles in the case of periodic excitation of lumped sources, or they are the spherical angles of incidence in the case of a plane wave source illuminating the periodic structure. Using the infinite summations, one can define periodic dyadic Green's functions in the spectral domain in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ \overline{\overline{G}}_{\mu \nu}^{PER} (r|r') } =&lt;br /&gt;
\frac{1}{S_x S_y} \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\mathbf{ \tilde{\overline{\overline{G}}}_{\mu \nu} } (k_x, k_y, z|z')&lt;br /&gt;
e^{-j[k_{xm}(x-x') + k_{yn}(y-y')]}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
k_{xm} = k_{x00} + \frac{2\pi m}{S_x} \quad \text{and} \quad&lt;br /&gt;
k_{ym} = k_{y00} + \frac{2\pi m}{S_y}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM97.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above doubly infinite periodic Green's functions are said to be expressed in terms of &amp;amp;quot;Floquet Modes&amp;amp;quot;. The exact formulation involves an infinite set of these periodic Floquet modes. During the MoM matrix fill process for a periodic structure, a finite number of Floquet modes are calculated. By default, EM.Cube's planar MoM engine considers M&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; = M&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; = 25. This implies a total of 51 modes along the X direction and a total of 51 modes along the Y direction, or a grand total of 51&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 2,601 Floquet modes. You can increase the number of Floquet modes for your project from the Planar MoM Engine Settings Dialog. In the section titled &amp;amp;quot;Periodic Simulation&amp;amp;quot;, you can change the values of '''Number of Floquet Modes''' in the two boxes designated X and Y.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM98.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Changing the number of Floquet modes from the Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Phased Arrays ===&lt;br /&gt;
&lt;br /&gt;
Earlier, it was argued that you can calculate the radiation pattern of a finite antenna array by modeling a single isolated element and multiplying its &amp;amp;quot;Element Pattern&amp;amp;quot; by the &amp;amp;quot;Array Factor&amp;amp;quot;. This method gives acceptable results only when the inter-element coupling effects are negligible, as it does not take into account such effects. Planar antennas printed on dielectric substrates usually exhibit inter-element coupling effects due to the propagation of the substrate surface wave modes. If your finite-sized array is very large and you cannot afford a straightforward full-wave MoM simulation of it, you can alternatively model it as an infinite array represented by a periodic unit cell. In this case, you calculate the radiation pattern of the unit cell structure and use it as the &amp;amp;quot;Element Pattern&amp;amp;quot; in conjunction with the &amp;amp;quot;Array Factor&amp;amp;quot;. The periodic Green's functions, in this case, capture the inter-element coupling effects. What is missing from this picture is the finite edge effects and/or corner effects, if any.&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a gap or probe source, it acts like an infinite periodic phased array. All the periodic replicas of the unit cell structure are excited. You can even impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the gap or probe source. At the bottom of the '''Gap Source Dialog''' or '''Probe Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. You can enter desired values for '''Theta''' and '''Phi''' beam scan angles in degrees. The corresponding phase progressions are calculated and applied to the periodic Green's functions:&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM101.png]]&lt;br /&gt;
&lt;br /&gt;
Note that you have to define a finite-sized array factor in the Radiation Pattern dialog. You do this in the '''Impose Array Factor''' section of this dialog. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of '''Element Spacing''' along the X and Y directions are automatically set equal to the value of '''Periodic Lattice Spacing''' along those directions. You have to set the '''Number of Elements''' along the X and Y directions, which are both equal to one initially, representing a single radiator. If you forget to define an array factor, the radiation pattern of the unit cell structure will be displayed, which does not show beam scanning.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM100.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the periodic scan angles in [[Planar Module]]'s Gap Source dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per9_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The 3D radiation pattern of a beam-steered periodic printed dipole array.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Periodic Structures Using Plane Waves ===&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a plane wave source, it acts as a periodic surface that reflects or transmits the incident wave. You can model frequency selective surfaces, electromagnetic band-gap structures and metamaterials in this way. EM.Cube calculates the reflection and transmission coefficients of periodic surfaces or planar structures. If you run a single plane wave simulation, the reflection and transmission coefficients are reported in the Output Window at the end of the simulation. Note that these periodic characteristics depend on the polarization of the incident plane wave. You set the polarization (TMz or TEz) in the '''Plane Wave Dialog''' when defining your excitation source. In this dialog you also set the values of the incident '''Theta''' and '''Phi''' angles.&lt;br /&gt;
&lt;br /&gt;
At the end of the planar MoM simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. As a result, you can run an adaptive sweep of periodic structures with a plane wave source just like projects with gap or probe sources. The reflection and transmission (R/T) coefficients can be plotted in EM.Grid on 2D graphs similar to the S parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
{{Note|In the absence of any finite traces or embedded objects in the project workspace, EM.Cube computes the reflection and transmission coefficients of the layered background structure of your project.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM102.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A periodic planar layered structure with slot traces excited by a normally incident plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Characterizing Periodic Surfaces Using Angular Sweeps ===&lt;br /&gt;
&lt;br /&gt;
The reflection and transmission characteristics of a period surface as functions of the incidence angle are often of great interest. For that purpose, you can run an angular sweep of your periodic structure, where you normally fix the &amp;amp;phi; angle and sweep the &amp;amp;theta; angle from 180 to 90 degrees for one-sided surfaces and from 180 to 0 degrees for two-sided surface. To run an angular sweep, open the [[Planar Module]]'s '''Simulation Run Dialog''' and select the '''Angular Sweep''' option from its '''Simulation Mode''' dropdown list. This enables the '''Settings''' button, which opens up the '''Angle Settings Dialog'''. First, you must choose either Theta or Phi as the '''Sweep Angle'''. Then you can set the '''Start''' and '''End''' values of the selected incidence angle as well as the '''Number of Samples'''. At the end of an angular sweep simulation, you can plot the reflection and transmission coefficients from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The reflection and transmission coefficients of the structure are saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM103.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Structures Using Adaptive Frequency Sweeps ===&lt;br /&gt;
&lt;br /&gt;
You learned earlier how to use EM.Cube's powerful, adaptive frequency sweep utility to study the frequency response of a planar structure. Adaptive frequency sweep uses rational function interpolation to generate smooth curves of the scattering parameters with a relatively small number of full-wave simulation runs in a progressive manner. Therefore, you need a port definition in your planar structure to be able to run an adaptive frequency sweep. This is clear in the case of an infinite periodic phased array, where your periodic unit cell structure must be excited using either a gap source or a probe source. You run an adaptive frequency sweep of an infinite periodic phased array in exactly the same way to do for regular, aperiodic, planar structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar Modules also allows you to run an adaptive frequency sweep of periodic surfaces excited by a plane wave source. In this case, the planar MoM engine calculates the reflection and transmission coefficients of the periodic surface. Note that you can conceptually consider a periodic surface as a two-port network, where Port 1 is the top half-space and Port 2 is the bottom half-space. In that case, the reflection coefficient R is equivalent to S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter, while the transmission coefficient T is equivalent to S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameter. This is, of course, the case when the periodic surface is illuminated by the plane wave source from the top half-space, corresponding to 90°&amp;amp;lt; &amp;amp;theta; = 180°. You can also illuminate the periodic surface by the plane wave source from the bottom half-space, corresponding to 0° = &amp;amp;theta; &amp;amp;lt; 90°. In this case, the reflection coefficient R and transmission coefficient T are equivalent to S&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;12&amp;lt;/sub&amp;gt; parameters, respectively. Having these interpretations in mind, EM.Cube enables the &amp;amp;quot;'''Adaptive Frequency Sweep'''&amp;amp;quot; option of the '''Frequency Settings Dialog''' when your planar structure has a periodic domain together with a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite-Sized Periodic Arrays Using NCCBF Technique ===&lt;br /&gt;
&lt;br /&gt;
Previously, you saw how the concept of &amp;amp;quot;Array Factor&amp;amp;quot; is used to approximate the far field radiation pattern of a finite-sized array of radiators. The total radiation pattern can be expressed as the product of the array factor and the &amp;amp;quot;Element Pattern&amp;amp;quot;. The array factor captures the topology of the array lattice and depends on the number of elements along the X and Y directions as well as the element spacing along those directions. As for the choice of element pattern, you saw two extreme cases. In the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; option, you compute the radiation pattern of a single stand-alone radiator and completely ignore any coupling effects from the neighboring elements. This option is readily available in the Radiation Pattern Dialog of the Far Field observable. In the &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; option, you analyze a periodic version of the radiating element with periods equal to the element spacing. The computed radiation pattern of the periodic unit cell in this case captures the coupling effects from an infinite number of elements.&lt;br /&gt;
&lt;br /&gt;
The array factor approach works well when the inter-element coupling is negligible or when the array contains a very large number of elements. However, finite edge and corner effects cannot be modeled accurately using a simple array factor. A full-wave approach is needed where all the elements are discretized properly, and their interactions are incorporated into the final solution. EM.Cube's Planar MoM simulation engine lets you analyze finite-sized antenna arrays in a rigorous, full-wave manner. As you saw earlier, you can even introduce a source array with arbitrary (amplitude and phase) weights and realize a complex, non-uniformly excited, finite-sized antenna array. Note that if the array contains a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; . N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; elements, and each radiating element involves a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; vectorial basis functions, the numerical solution of the problem will produce a system of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;linear equations. As an example, consider a rectangular patch antenna element that involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. Now consider a not-so-large, 8 × 8 array of these patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. The resulting linear system will have an enormous size of N = 30,720. Keep in mind that, unlike the sparse matrices of the Finite Element Method (FEM), MoM linear systems are dense by nature and typically ill-conditioned. The inversion of dense matrices of such sizes or larger takes a significant amount of computation time even if you use fast iterative solvers.&lt;br /&gt;
&lt;br /&gt;
EMAG Technologies Inc. has recently developed a novel technique, called '''Numerically Constructed Characteristic Basis Functions (NCCBF)''', which generates physics-based entire-domain basis functions for the elements of a finite-sized array. These &amp;amp;quot;sophisticated&amp;amp;quot; basis functions are linear combinations of the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; solutions and &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; solutions. Unlike the array factor method, which is a post-processing calculation of far-field data, the NCCBF method generate a full-wave MoM solution with entire-domain basis functions. Considering the same example of the patch antenna array discussed earlier, the NCCBF method generates a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 4 entire-domain basis functions on each patch element: an isolated X-directed solution, a periodic X-directed solution, an isolated Y-directed solution, and a periodic Y-directed solution. The same approach applies equally well to triangular RWG basis functions and is not limited to rectangular cells. As a result, the new MoM linear system has a dimension of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = (4)(64) = 256. In other words, the NCCBF method compresses the original MoM matrix of size N = 30,720 to one of significantly reduced size N = 256 (i.e. a compression factor of 120x).&lt;br /&gt;
&lt;br /&gt;
=== Running a NCCBF Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the current release of EM.Cube's [[Planar Module]], the NCCBF MoM solver works with any number of distinct, finite-sized arrays if they are excited with one of the following three source types:&lt;br /&gt;
&lt;br /&gt;
# Gap Sources&lt;br /&gt;
# Probe Sources&lt;br /&gt;
# Plane Wave Sources&lt;br /&gt;
&lt;br /&gt;
Note that you can have several coexisting finite arrays with different element spacings (or different periodicities). You can also have regular (aperiodic) objects coexisting with your collection of finite arrays. In that case, the NCCBF process will create entire-domain basis functions for the elements of the finite arrays, while the regular method of moments will apply to the aperiodic portions of your planar structure. This flexibility makes NCCBF a very versatile and powerful technique.&lt;br /&gt;
&lt;br /&gt;
There are a few rules that must be followed and observed when planning a NCCBF simulation. '''Each finite-sized array must be constructed using an EM.Cube &amp;amp;quot;Array Object&amp;amp;quot;. Additionally, each array object must stand alone in a dedicated trace or embedded object set of its own.''' In other words, if an array object belongs to a trace or embedded object set that contains other objects, it will be excluded from the NCCBF process and will get a regular MoM treatment. Keep in mind that [[Planar Module]] allows you to define different traces located at the same Z-plane, although the objects belonging to these separate traces cannot be connected to one another according to the planar meshing rules. Similarly, you can define two or more PEC via sets hosted by the same substrate layer. Therefore, if your planar structure contains finite arrays and aperiodic objects, you have to group them into separate traces or embedded object sets.&lt;br /&gt;
&lt;br /&gt;
To run an NCCBF simulation, open the '''Simulation Run Dialog''', and then open the'''Planar MoM Engine Settings Dialog'''. In the &amp;amp;quot;'''Finite Array Simulation'''&amp;amp;quot; section of the latter dialog, check the box labeled &amp;amp;quot;'''NCCBF Matrix Compression'''&amp;amp;quot;. This box is unchecked by default. Checking it enables the NCCBF Settings button. Click this button to open the NCCBF Settings Dialog. The dialog features a &amp;amp;quot;List of Unit Cells Used for NCCBF Matrix Compression&amp;amp;quot;. This list initially empty. To add unit cells to it, click the '''Add''' button of the dialog to open the &amp;amp;quot;'''Add Unit Cell Dialog'''&amp;amp;quot;. This dialog has two tables: Available Unit Cells on the left side and Associated Unit Cells on the right side. The left table shows a list of all the available, legitimate array objects in your project workspace. Remember that for an array object to be eligible for NCCBF compression, it has to stand alone on a dedicated trace or embedded object set, whichever applies. Select an array object from the left table and use the right arrow button (--&amp;amp;gt;) to move it to the right table to associate it with the new NCCBF unit cell. You can associate more than one array object with the same NCCBF unit cell. In this case, the parent elements of all the associated array objects collectively constitute the NCCBF unit cell. The NCCBF unit cell is the planar structure that is analyzed separately, first, as a stand-alone isolated element, and next, as a periodic unit cell, to generate the NCCBF entire-domain basis function solutions. It is therefore very important that the array objects be positioned carefully with respect to the origin of coordinated and relative to one another to form the correct NCCBF unit cell. Once you move one or more array object names to the &amp;amp;quot;Associated&amp;amp;quot; table on the right, you can move them back to the &amp;amp;quot;Available&amp;amp;quot; table on the left using the left arrow (&amp;amp;lt;--) button. You can also instruct EM.Cube to use only the isolated element solution by unchecking the box labeled &amp;amp;quot;'''Include Periodic Solution of Unit Cell'''&amp;amp;quot;. Once you are satisfied with the definition of your NCCBF unit cell, close the dialog to return to the NCCBF Settings dialog. Here you see the name of the newly added NCCBF unit cell in the list along with the Number of Solutions and the names of all the associated array objects for each NCCBF unit cell. You can modify each row using the '''Edit''' button or remove it from the list using the '''Delete''' button. Close the NCCBF Settings dialog to return to the Planar MoM Engine Settings dialog, and close the latter to return to the Simulation Run dialog, where you can now start the NCCBF simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM163.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar MoM's NCCBF Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM162.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Planar MoM's &amp;amp;quot;Add Unit Cell&amp;amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
=== Symmetries, Array Objects &amp;amp;amp; Composite Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] treats array objects in a special way. That is why you need to use array objects with certain rules for NCCBF simulations. In general, if the mesh of your planar structure involves a total of N vectorial basis functions, the MoM matrix will contain a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; elements. Instead of computing the entire N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; basis interactions, the Planar MoM simulation engine takes advantage of the inherent symmetry properties of the dyadic Green's functions and camputes the diagonal elements of the matrix and all the elements below the diagonal. This amounts to N.(N+1)/2 basis interactions. In many cases, the MoM matrix is symmetric, and the elements above the diagonal are simply mirror-image of the below-diagonal elements. In planar structures that involve both metal and slot traces, there will be sign reversals for some interactions.&lt;br /&gt;
&lt;br /&gt;
In many cases, especially in the areas that contain sizable numbers of rectangular mesh cells, the basis functions are naturally grouped into distinct sets that are called domains. As you saw earlier in the discussion of planar mesh generation, uniform domains with identical rectangular cells bring significant savings during the matrix fill process. Using the concept of domains renders the MoM matrix as a block matrix, whose blocks represent the interactions among the domains. The diagonal blocks therefore correspond to self-domain interactions. By a similar argument, if your planar structure is made up of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; domains, then a total of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) are computed. An EM.Cube array object consists of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical geometrical elements. If the array object belongs to a trace that has other objects in it, then by the planar mesh generator's rules, the elements of the array object are merged with the other objects on the same trace using the &amp;amp;quot;Union&amp;amp;quot; Boolean operation. If some array elements possibly have connections with other objects, such connections are taken care of in the meshing process. '''However, if an array object stands alone in a dedicated trace, then only the parent (first) element is meshed, and it mesh is copied and cloned for all the other elements of the array.''' This produces a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical domains of vectorial basis functions. A direct consequence of this is identification of only N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; unique domain-pair interactions or matrix blocks. In the absence of these symmetries, a total of at least N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) must be computed. To better illustrate such matrix fill savings, let us consider the previous, not-so-large, 8 × 8 array of patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. It was previously assumed that each rectangular patch antenna element involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. The numerical solution of this structure produces a linear system of total size N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 30,720. The total number of complex-valued elements of this matrix is 9.44E+08. This is the total number of highly sophisticated multi-dimensional integrals that you need to compute during a brute-force matrix fill process. For the sake of generality of the argument, here we ignore the huge additional savings that rectangular cells offer, and we assume that each unique domain-pair interaction involves N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 230,400 elements, except for the self-domain interaction which requires N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 115,440 integral computations. This amounts to a total of (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; -1) . N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 1.46E+07 integral computations, which is roughly N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;(64) times fewer and faster than a brute-force matrix fill process.&lt;br /&gt;
&lt;br /&gt;
To remedy the limitation that stand-alone array objects on dedicated traces cannot be connected to anything and therefore would severely limit the geometrical complexity of individual elements, EM.Cube allows you to build arrays of composite objects. A &amp;amp;quot;'''Composite Object'''&amp;amp;quot; in EM.Cube is a group of objects that are tied together only for the purpose of organization. As a result, the mesh of a composite object is the same as that of its constituent member objects (including any possible connections), had they not been grouped together. In a similar manner to simpler array objects, if a composite array stands alone in a dedicated trace or embedded object set, then only the parent composite object is meshed, and its mesh is copied and cloned for all the other composite elements of the array object. Furthermore, all the unique domain-pair interactions are identified during the matrix fill process, and lead to a major saving in computation time. '''Note that you can assign gap or probe sources to composite arrays in a similar way as you excite simpler array objects.''' If your planar structure involves a composite array, whose composite parent element has constituent members: Object1, Object2, ..., then the Gap Source dialog or Probe Source dialog will include the names of all the eligible constituent members (rectangle strips or PEC via objects) that can host the respective source types. '''Complex composite arrays hosting gap or probe source arrays or illuminated by plane wave sources are great candidates for NCCBF simulation.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM165.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Assigning gap sources to the elements of a composite array object.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Picasso</id>
		<title>EM.Picasso</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Picasso"/>
				<updated>2013-06-14T15:19:03Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Planar Module's Output Simulation Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Picasso® is a versatile planar structure simulator for modeling and design of printed antennas, planar microwave circuits, and layered periodic structures. EM.Picasso's simulation engine is based on a 2.5-D full-wave Method of Moments (MoM) formulation that provides the ultimate modeling accuracy and computational speed for open-boundary multilayer structures. It can handle planar structures with arbitrary numbers of metal layouts, slot traces, vertical interconnects and lumped elements interspersed among different substrate layers. You can use EM.Picasso to model large finite-sized antenna arrays as well as infinite periodic structures such as frequency selective surfaces.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Picasso has been successfully used by numerous users around the globe in industry, academia and government. The new EM.Picasso 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has introduced far more powerful CAD utilities, greater geometrical variety, and a vast array of capabilities like parametric sweep, optimization, data visualization and post-processing computations. The new foundation also facilitates import and export of many popular CAD formats and provides a seamless interface with our other simulation tools.&lt;br /&gt;
&lt;br /&gt;
== A Planar Method Of Moments Primer ==&lt;br /&gt;
&lt;br /&gt;
The Method of Moments (MoM) is a rigorous, full-wave numerical technique for solving open boundary electromagnetic problems. Using this technique, you can analyze electromagnetic radiation, scattering and wave propagation problems with relatively short computation times and modest computing resources. The method of moments is an integral equation technique; it solves the integral form of Maxwell’s equations as opposed to their differential forms that are used in the finite element or finite difference time domain methods.&lt;br /&gt;
&lt;br /&gt;
In a planar MoM simulation, the background structure is usually a layered planar structure that consists of one or more laterally infinite material layers. In EM.Cube’s [[Planar Module]], the layered structure is stacked along the Z axis. In other words, the dimensions of the layers are infinite along the X and Y axes. Metallic traces are placed at the boundaries between the substrate or superstrate layers. These are modeled by perfect electric conductor (PEC) traces or conductive sheet traces of finite thickness and finite conductivity. Some layers might be separated by infinite perfectly conducting ground planes. The two sides of a ground plane can be electromagnetically coupled through one or several slots or apertures. Such slots or apertures are modeled by magnetic currents and are realized and represented by perfectly magnetic conductor (PMC) traces. Furthermore, the metallic traces can be interconnected or connected to ground planes using embedded objects. Such objects can be used to model circuit vias, plated-through holes or dielectric inserts. These are modeled as volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
The currents in a planar MoM simulation are discretized as a collection of elementary currents with small finite spatial extents. These elementary currents are called basis functions and obviously have a vectorial nature. The total currents (solution of the problem) are summations of these elementary currents. The basis functions are well defined and easy to calculate; however, their amplitudes are initially unknown in a MoM problem. Through the planar MoM solution, you find these unknown amplitudes. Once the total currents are known, you can calculate the fields everywhere in the structure.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Green’s Functions ===&lt;br /&gt;
&lt;br /&gt;
The Green’s functions are the solutions of boundary value problems when they are excited by an elementary source. This is usually assumed to be an infinitesimally small vectorial point source. In order for Green’s functions to be computationally useful, they must have analytical closed forms like a mathematical expression, or one should be able to compute them using a recursive process. It turns out that only very few boundary value problems have closed-form Green’s functions. Planar layered structures with laterally infinite extents are one of those few cases, which can be represented by recursive dyadic Green's functions.&lt;br /&gt;
&lt;br /&gt;
In general, a structure may support both electric ('''J''') and magnetic ('''M''') currents. The total electric ('''E''') and magnetic ('''H''') fields can be expressed in terms of the electric and magnetic currents in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;E = E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;H = H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''GH&amp;lt;sub&amp;gt;M&amp;lt;/sub&amp;gt;''' are the dyadic Green’s functions for the electric and magnetic currents due to electric and magnetic current source, respectively, and '''E&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' and '''H&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' are the incident or impressed electric and magnetic fields, respectively. In these equations, '''r''' is the position vector of the observation point and '''r'''' is the position vector of the source point. V is the volume that contains all the sources and the volume integration is performed with respect to the primed coordinates. The incident or impressed fields provide the excitation of the structure. They may come from an incident plane wave or a gap source on a microstrip line, a short dipole, etc. The complexity of the Green’s functions depends on what is considered as the background structure. If you remove all the unknown currents from the structure, you are left with the background structure.&lt;br /&gt;
&lt;br /&gt;
=== Planar Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
To derive a system of integral equations, we enforce the boundary conditions on the integral definitions of the '''E''' and '''H''' fields as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_E(E) = L_E \bigg\{ E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_H(H) = L_H \bigg\{ H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM4(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' is the boundary value operator for the electric field and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' is the boundary value operator for the magnetic field. For example, '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E'''field vanish on perfect conductors:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = 0, \quad \mathbf{r} \in PEC &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM65.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E''' and '''H''' fields be continuous across an aperture in a perfect ground plane:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{E}^+ - \mathbf{E}^-) = 0 \\&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{H}^+ - \mathbf{H}^-) = 0&lt;br /&gt;
\end{cases} &lt;br /&gt;
\quad \Rightarrow \quad&lt;br /&gt;
\mathbf{M}^+(r) = \mathbf{M}^-(r), \quad r \in PMC&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM66(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the fact that the dyadic Green’s functions and the incident or impressed fields are all known, one can solve the above system of integral equations to find the unknown currents '''J''' and '''M'''.&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE's [[Planar Module|Planar module]], magnetic currents are always surface current with units of V/m. Electric currents, however, can be surface currents with units of A/m as in the case of metallic traces like microstrip lines, or they can be volume currents with units of A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; as in the case of perfectly conducting vias. Dielectric inserts are modeled as volume polarization currents that are related to the electric field '''E''' in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J}_p(r) = jk_0 Y_0(\varepsilon_r - \varepsilon_b)\mathbf{E}(r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant, &amp;lt;math&amp;gt;Y_0 = \tfrac{1}{Z_0} = \tfrac{1}{120\pi}&amp;lt;/math&amp;gt; is the free space intrinsic admittance, &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is the permittivity of the dielectric insert, and &amp;amp;epsilon;&amp;lt;sub&amp;gt;b&amp;lt;/sub&amp;gt; is the permittivity of its background layer. In a 2.5-D formulation, it is assumed that the volume currents have only a vertical component along the Z direction, and their circumferential components are negligible.&lt;br /&gt;
&lt;br /&gt;
=== Numerical Solution Of Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
The planar integral equations derived earlier can be solved numerically by discretizing the unknown currents using a proper meshing scheme. The original functional equations are reduced to discretized linear algebraic equations over elementary cells. The unknown quantities are found by solving this system of linear equations, and many other parameters can be computed thereafter. This method of numerical solution of integral equations is known as the Method of Moments (MoM). In this method, the unknown electric and magnetic currents are represented by expansions of basis functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;J(r) = \sum_{n=1}^N I_n^{(J)} f_n^{(J)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;M(r) = \sum_{k=1}^K V_k^{(M)} f_k^{(M)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_k^{(M)}&amp;lt;/math&amp;gt; are the generalized vector basis functions for the expansion of electric and magnetic currents, respectively, and &amp;lt;math&amp;gt;I_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;V_k^{(M)}&amp;lt;/math&amp;gt; are the unknown amplitudes of these basis functions, which have to be determined. Substituting these expansions into the integral equations generates a set of discretized integral equations, which can further be converted to a system of linear algebraic equations. This is accomplished by testing the discretized integral equations using the a set of test functions. In the method of moments, the Galerkin technique is typically used, which chooses the expansion basis functions as test functions. This leads to the following linear system:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
Z^{(EJ)} &amp;amp; T^{(EM)} \\&lt;br /&gt;
U^{(HJ)} &amp;amp; Y^{(HM)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
\cdot&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
I^{(J)} \\&lt;br /&gt;
V^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
=&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
V^{(E)} \\&lt;br /&gt;
I^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(EJ)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot &lt;br /&gt;
\iiint\limits_{V_j} dv' \overline{\overline{G}}_{EJ}(r|r') \cdot f_i^{(J)}(r')&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_i^{(E)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot E^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_i^{(H)} = \iiint\limits_{V_i} dv f_i^{(M)}(r) \cdot H^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similar expressions can be derived for the T&amp;lt;sup&amp;gt;(EM)&amp;lt;/sup&amp;gt;, U&amp;lt;sup&amp;gt;(HJ)&amp;lt;/sup&amp;gt; and Y&amp;lt;sup&amp;gt;(HM)&amp;lt;/sup&amp;gt;elements of the MoM matrix.&lt;br /&gt;
&lt;br /&gt;
=== Discretization Of Electric &amp;amp;amp; Magnetic Currents ===&lt;br /&gt;
&lt;br /&gt;
The right choice of the basis functions to represent the elementary currents is very important. It will determine the accuracy and computational efficiency of the resulting numerical solution. Rooftop basis functions are one of the most popular types of basis functions used in a variety of MoM formulations. The surface currents (whether electric or magnetic) are discretized using 2D rooftop basis functions shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image055_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Rooftop or RWG basis functions built over two rectangular, triangular or mixed cells.&lt;br /&gt;
&lt;br /&gt;
The rooftop basis functions are defined over two adjacent cells with a common edge of length. If the two cells are triangular, then the so-called RWG functions are obtained. It is also possible to define rooftop functions over two adjacent rectangular cells or two adjacent rectangular and triangular cells with a common edge. On a rectangular cell, the function is defined as having a (descending or ascending) linear profile in one direction and a constant profile in the other perpendicular direction.&lt;br /&gt;
&lt;br /&gt;
The volume polarization currents in 2.5-D MoM have a vertical direction along the Z-axis. These are discretized using prismatic basis functions that have either a rectangular or triangular base with a constant profile along the Z-axis.&lt;br /&gt;
&lt;br /&gt;
[[File:image065_tn.png]][[File:image066_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Prismatic basis functions built over single triangular and rectangular cells.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Planar Structure ==&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM14.png|thumb|350px|A typical planar layered structure]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] is intended for constructing and modeling planar layered structures. By a planar structure we mean one that contains a background substrate of laterally infinite extents, made up of one or more material layers all stacked up vertically along the Z axis. Objects of finite size are then interspersed among these substrate layers. This is somehow different than EM.Cube's other computational modules, which are geared for handling arbitrary 3D structures.&lt;br /&gt;
&lt;br /&gt;
In [[Planar Module]], the background structure, called &amp;amp;quot;'''Layer Stack-up'''&amp;amp;quot;, may involve one or more material layers of infinite extents along the X and Y axes but of finite thickness along the Z axis. When you start a new project, the background structure has a single vacuum layer. The layer stack-up is always terminated from the top and bottom by two infinite half-spaces. The terminating half-spaces might be the free space, or a perfect conductor (PEC ground), or any material medium. Most planar structures used in RF and microwave applications such as microstrip-based components have a PEC ground at their bottom. EM.Cube's default stack-up has a vacuum top half-space and a PEC bottom half-space. Some structures like stripline components require two bounding PEC grounds at both top and bottom.&lt;br /&gt;
&lt;br /&gt;
The finite-sized objects of a planar structure may include metal traces, slots and apertures, vertical vias and interconnects, or dielectric inserts including air voids inside the substrate layers. Metal traces are modeled as electric surface currents. These are planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on metal (PEC) traces and placed at the boundary (interface) plane between two substrate layers. Slots and apertures are modeled as magnetic surface currents on the surface of an infinite PEC plane and provide electromagnetic coupling between its top and bottom sides. These, too, are constructed using planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on slot (PMC) traces and placed at the boundary (interface) plane between two substrate layers. EM.Cube's [[Planar Module]] also allows prismatic objects that can be modeled by electric volume currents. These include vertical vias and dielectric inserts, and are called embedded object sets. [[Planar Module|Planar module]] does not allow construction of 3D CAD objects. Instead, you draw the cross section of prismatic objects as planar [[Surface Objects|surface objects]] parallel to the XY plane. EM.Cube then automatically extrudes these cross sections and constructs and displays 3D prisms over them. The prisms extend all the way across the thickness of the host substrate layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:PMOM14.png]]&lt;br /&gt;
Figure 1: A typical planar layered structure.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Defining Layer Stack-Up ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube’s [[Planar Module]], there is always a default background structure that consists of a finite vacuum layer sandwiched between a vacuum top half-space and a PEC bottom half-space. Every time you enter the [[Planar Module|Planar module]], the '''Stack-up Settings Dialog''' opens up. This is where you define the entire background structure. Once you close this dialog, you can open it again by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Layer Stack-up Settings...''' from the contextual menu. Or alternatively, you can select the menu item '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Layer Stack-up Settings...'''&lt;br /&gt;
&lt;br /&gt;
The Stack-up Settings dialog has two tabs: '''Layer Hierarchy''' and '''Embedded Sets'''. The Layer Hierarchy tab has a table that shows all the background layers in hierarchical order from the top half-space to the bottom half-space. It also lists the material label of each layer, Z-coordinate of the bottom of each layer, its thickness (in project units) and material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). There is also a column that lists the names of embedded object sets inside each substrate layer, if any.&lt;br /&gt;
&lt;br /&gt;
You can add new layers to your project's stack-up or delete its layers, or move layers up or down and thus change the layer hierarchy. To add a new background layer, click the arrow symbol on the '''Insert...'''button at the bottom of the dialog and select '''Substrate Layer''' from the button's dropdown list. A new dialog opens up where you can enter a label for the new layer and values for its material properties and thickness in project units.&lt;br /&gt;
&lt;br /&gt;
You can delete a layer by selecting its row in the table and clicking the '''Delete''' button. To move a layer up and down, click on its row to select and highlight it. Then click either the '''Move Up''' or '''Move Down''' buttons consecutively to move the selected layer to the desired location in the stack-up. Note that you cannot delete or move the top or bottom half-spaces.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM8(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Editing Substrate Layers ===&lt;br /&gt;
After creating a substrate layer, you can always edit its properties in the Layer Stack-up Settings dialog. Click on any layer's row in the table to select and highlight it and then click the '''Edit''' button. The substrate layer dialog opens up, where you can change the layer's label and assigned color. In the material properties section of the dialog, you can change the name of the material and its properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). To define electrical losses, you can either assign a value for electric conductivity (s), or alternatively, define a loss tangent for the material. In the latter case, check the box labeled &amp;amp;quot;'''Specify Loss Tangent'''&amp;amp;quot; and enter a value for it. In this case, the electric conductivity field becomes greyed out and reflects the corresponding s value at the center frequency of the project.&lt;br /&gt;
&lt;br /&gt;
You can also set the thickness of the substrate layer in the project units. Note that you cannot change the thickness of the top and bottom half-spaces. You can only change their material properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM9.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Substrate Layer dialog.&lt;br /&gt;
&lt;br /&gt;
You can also use EM.Cube's Material List to define the material properties of a substrate layer. In the Substrate Layer Dialog, click the '''Material''' button to open the '''Material List'''. In the Material List Dialog, pick any material or type the first letter of a material to highlight it. Then click the '''OK''' button or simply hit the '''Enter''' key of your keyboard to close the list and return to the substrate layer dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM10.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Materials dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Object Types ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] groups objects by their material and electromagnetic properties. Each object group shares the same color and same position in the layer stack-up. All the planar objects belonging to the same trace are located on the same substrate layer boundary. All the prismatic objects belonging to the same embedded set lie inside the same substrate layer and have the same material composition. Theoretically speaking, all the objects belonging to a group are governed by the same boundary conditions. EM.Cube’s [[Planar Module]] currently provides the following types of objects for building a planar layered structure:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC) Traces:''' These represent infinitesimally thin metallic objects that are deposited or metallized on or between substrate layers. PEC objects are modeled by surface electric currents that satisfy the PEC boundary condition.&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC) Traces:''' These are used to model slots and apertures in infinite PEC ground planes. PMC objects are always assumed to lie on an infinite horizontal PEC ground plane with zero thickness. They are modeled by surface magnetic currents, enforcing the continuity of tangential fields across the slots or apertures.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metals. They have a finite conductivity and a very small thickness. A surface impedance boundary condition is enforced on the surface of such traces.&lt;br /&gt;
# '''PEC Via Sets:''' These are metallic objects such as shorting pins, interconnect vias, plated-through holes, etc. that are grouped together as prismatic object sets. The embedded objects are modeled as vertical volume conduction currents.&lt;br /&gt;
# '''Embedded Dielectric Sets:''' These are prismatic dielectric objects inserted inside a substrate layer. You can define a finite permittivity and conductivity for such objects, but their height is always the same as the height of their host layer. The embedded dielectric objects are modeled as vertical volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
=== Defining Traces &amp;amp;amp; Object Sets ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]], the project workspace looks empty, and there are no finite objects in it. However, a default background structure is always assumed to exist by default. Objects are defined as part of traces or embedded sets. Once defined, you can see a list of project objects in the '''Physical Structure''' section of the Navigation Tree. Traces and object sets can be defined either from Layer Stack-up Settings dialog or from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
In the '''Layer Stack-up Settings''' dialog, you can add a new trace to the stack-up by clicking the arrow symbol on the '''Insert''' button of the dialog. You have to choose from '''Metal (PEC)''', '''Slot (PMC)''' or '''Conductive Sheet''' options. A respective dialog opens up, where you can enter a label and assign a color other than default ones. Once a new trace is defined, it is added, by default, to the top of the stack-up table underneath the top half-space. From here, you can move the trace down to the desired location on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Every time you define a new trace, it is also added under the respective category in the Navigation Tree. Alternatively, you can define a new trace from the Navigation Tree by right clicking on one of the trace type names and selecting '''Insert New PEC Trace...'''or '''Insert New PMC Trace...'''or '''Insert New Conductive Sheet Trace...'''A respective dialog opens up for setting the trace properties. Once you close this dialog, it takes you directly to the Layer Stack-up Settings dialog so that you can set the right position of the trace on the stack-up.&lt;br /&gt;
&lt;br /&gt;
=== Drawing Planar Objects ===&lt;br /&gt;
&lt;br /&gt;
As soon as you start drawing geometrical objects in the project workspace, the Physical Structure section of the Navigation Tree gets populated. The names of traces are added under their respective trace type category, and the names of objects appear under their respective trace group. At any time, one and only one trace is active in the project workspace. An active trace is where all the new objects you draw belong to. When you define a new trace, it is set as active and you can immediately start drawing new objects on that trace. You can also set any trace active at any time by right clicking its name on the Navigation Tree and selecting '''Activate''' from the contextual menu. The name of the active trace is always displayed in bold letter in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM13.png]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] has a special feature that makes construction of planar structures quite easy and straightforward. '''The active work plane of the project workspace is always set at the plane of the active trace.''' In EM.Cube's other modules, all objects are drawn in the XY plane (z = 0) by default. In [[Planar Module]], all new objects are drawn on a horizontal plane that is located at the Z-coordinate of the currently active trace. As you change the active trace or add a new trace, you will also change the active work plane.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Metallic Traces ===&lt;br /&gt;
&lt;br /&gt;
A trace is a group of finite-sized planar objects that have the same conductive properties and same Z-coordinate. In other words, they are located on the same horizontal plane, or at the same vertical level on the layer stack-up. You can define two types of metallic traces in the [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
# '''PEC Traces:''' These represent perfect conductor objects that have zero thickness and no editable material properties.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metal objects. They have a very small finite thickness t and a finite conductivity s.&lt;br /&gt;
&lt;br /&gt;
The conductive sheet traces are modeled using the surface impedance boundary condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = -Z_s\mathbf{J_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM17(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;Z_s&amp;lt;/math&amp;gt; is the surface impedance of the conductive sheet. If the thickness of the sheet is greater than the skin depth of the metal at the project frequency, then the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1+j}{\sigma \delta}, \quad \delta = \sqrt{\dfrac{2}{k_0 Z_0 \sigma}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM18.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the thickness t of the sheet is less than the skin depth, then the conductive sheet transition boundary condition is used instead, and the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1}{[j k_0 Y_0 (\varepsilon_r - 1) + \sigma] \tau} = \dfrac{1}{\sigma_{tot} \tau} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM19(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]] with no traces defined, if you simply draw a new object, a default PEC trace is created and added to the Navigation Tree to hold that object. Alternatively, you can define your own new traces from the Layer Stack-up Settings dialog or directly from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
NOTE: Two or more PEC and conductive sheet traces can coexist at the same Z-coordinate. In this case, the Layer Stack-up Settings dialog shows these trace rows stacked up on top of each other between their common top and bottom substrate layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM15.png]] [[File:PMOM16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PEC and Conductive Sheet Trace dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Slot Traces ===&lt;br /&gt;
&lt;br /&gt;
Slots and apertures are cut-out and removed metal in an infinite perfectly conducting (PEC) ground plane. When a slot is excited, tangential electric fields are formed on the aperture, which can be modeled as finite magnetic surface currents confined to the area of the slot. Therefore, instead of modeling the electric surface currents on the PEC ground around the slot, one can alternatively model the finite-extent magnetic surface currents on PMC traces. In EM.Cube's [[Planar Module]], you define slot objects under PMC traces. A PMC trace at a certain Z-plane implies the presence of an infinite PEC plane at that Z-coordinate. Therefore, you do not need to define an additional PEC plane at that location on the layer stack-up. The slot (PMC) objects provide the electromagnetic coupling between the two sides of this infinite ground plane. By the same token, you cannot place a PEC trace and a PMC trace at the same Z-level, as the latter's ground will short the former. However, you can define two or more PMC traces at the same Z-plane. In this case, all the slot objects lie on the same infinite PEC ground plane. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM20.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PMC Trace dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Embedded Object Sets ===&lt;br /&gt;
&lt;br /&gt;
Embedded object sets represent short material insertions inside substrate layers. They can be metal or dielectric. Metallic embedded objects can be used to model vias, plated-through holes, shorting pins and interconnects. These are called PEC via sets. Embedded dielectric objects can be used to model air voids, thin films and material inserts in metamaterial structures. Embedded magnetic object are not currently supported by EM.Cube’s [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Embedded objects can be defined either from the Layer Stack-up Settings dialog or directly from the Navigation Tree. In the former case, open the &amp;amp;quot;Embedded Sets&amp;amp;quot; tab of the stack-up dialog. This tab has a table that lists all the embedded object sets along with their material type, the host substrate layer, the host material and their height. &lt;br /&gt;
&lt;br /&gt;
{{Note|The height of an embedded object is always identical to the thickness of its host substrate layer.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up dialog showing the Embedded Sets tab.&lt;br /&gt;
&lt;br /&gt;
To add a new object set, click the arrow symbol on the '''Insert''' button of the dialog and select one of the two options, '''PEC Via Set''' or '''Embedded Dielectric Set''', from the dropdown list. This opens up a new dialog where first you have to set the host layer of the new object set. A dropdown list labeled &amp;amp;quot;'''Host Layer'''&amp;amp;quot; gives a list of all the available finite substrate layers. You can also set the properties of the embedded object set, including its label, color and material properties. Keep in mind that you cannot control the height of embedded objects. Moreover, you cannot assign material properties to PEC via sets, while you can set values for the '''Permittivity'''(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity'''(&amp;amp;sigma;) of embedded dielectric sets. Vacuum is the default material choice. You may use EM.Cube's Material List for this purpose, which can be opened up by clicking the '''Material''' button. Once embedded object sets are added to the Embedded Sets table, you can edit their properties at any time by selecting their row and clicking the '''Edit''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM21.png]] [[File:PMOM22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The [[Planar Module]]'s PEC Via Set and Embedded Dielectric Set dialogs.&lt;br /&gt;
&lt;br /&gt;
To define an embedded set from the Navigation Tree, right click on the '''Embedded Object Sets''' item in the '''Physical Structure''' section of the Navigation Tree and select either '''Insert New PEC Via Set...''' or '''Insert New Embedded Dielectric Set...''' The respective New Embedded Object Set dialog opens up, where you set the properties of the new object set. As soon as you close this dialog, it takes you to the Layer Stack-up Settings dialog, where you can examine the location of the new object set on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
After a new embedded object set has been defined and added to the Navigation Tree, it becomes the active trace. You are now ready to create geometrical objects in the new active trace. Remember that [[Planar Module]] does not allow you to draw 3D objects. The solid object buttons in the '''Object Toolbar''' are disabled to prevent you from doing so. Instead, you draw planar [[Surface Objects|surface objects]] as the cross section of embedded sets. EM.Cube extends these planar objects across their host layer automatically and displays them as wire-frame, 3D extruded objects. Extrusion of embedded object sets happen after meshing and before every simulation. You can enforce this extrusion manually by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Update Planar Structure...''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Rules &amp;amp;amp; Limitations ===&lt;br /&gt;
&lt;br /&gt;
# Terminating PEC ground planes at the top or bottom of a planar structure are defined as PEC top or bottom half-spaces, respectively.&lt;br /&gt;
# A PEC ground plane placed in the middle of a substrate stack-up requires at least one slot object to provide electromagnetic coupling between its top and bottom sides. In this case, a PMC trace is rather introduced at the given Z-plane, which implies the presence of an infinite PEC ground although it is not explicitly indicated in the Navigation Tree.&lt;br /&gt;
# Metallic and slot traces cannot coexist on the same Z-plane. However, you can stack up multiple PEC and conductive sheet traces at the same Z-coordinate. Similarly, multiple PMC traces can be placed at the same Z-coordinate.&lt;br /&gt;
# Metallic and slot traces are strictly defined at the interface planes between substrate layers. To define a suspended metallic trace in a substrate layer (as in the case of the center conductor of a stripline), you must split the dielectric layer into two thinner layers and place your PEC trace at the interface between them.&lt;br /&gt;
# The current version of the Planar MoM simulation engine is based on a 2.5-D MoM formulation. Only vertical volume currents and no circumferential components are allowed on embedded objects. The 2.5-D assumption holds very well in two cases: (a) when embedded objects are very thin with a very small cross section (with lateral dimensions less than 2-5% of the material wavelength) or (b) when embedded objects are very short and sandwiched between two closely spaced PEC traces or grounds from the top and bottom.&lt;br /&gt;
# The current release of EM.Cube allows any number of PEC via sets collocated in the same substrate layer. However, you can define only one embedded dielectric object set per substrate layer, and no vias sets collocated in the same layer. Note that the single set can host an arbitrary number of embedded dielectric objects of the same material properties.&lt;br /&gt;
&lt;br /&gt;
=== Managing Objects, Traces &amp;amp;amp; Sets ===&lt;br /&gt;
&lt;br /&gt;
You can manage your project's layer hierarchy from the Layer Stack-up Settings dialog. You can add, delete and move around substrate layers, metallic and slot traces and embedded object sets. Metallic and slot traces can move among the interface planes between neighboring substrate layers. Embedded object sets including PEC vias and finite dielectric objects can move from substrate layer into another. When you delete a trace from the Layer Stack-up Settings dialog, all of its objects are deleted from the project workspace, too. You can also delete metallic and slot traces or embedded object sets from the Navigation Tree. To do so, right click on the name of the trace or object set in the Navigation Tree and select '''Delete''' from the contextual menu. You can also delete all the traces or object sets of the same type from the contextual menu of the respective type category in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
For better visualization of your planar structure, EM.Cube displays a virtual domain in a default orange color to represent part of the infinite background structure. The size of this virtual domain is a quarter wavelength offset from the largest bounding box that encompasses all the finite objects in the project workspace. You can change the size of the virtual domain or its display color from the Domain Settings dialog, which you can access either by clicking the '''Computational Domain''' [[File:domain_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Domain Settings...''' from the Simulate Menu or by right clicking the '''Virtual Domain''' item of the Navigation Tree and selecting '''Domain Settings...''' from the contextual menu, or using the keyboard shortcut '''Ctrl+A'''. But keep in mind that the virtual domain is only for visualization purpose and does not affect the MoM simulation. The virtual domain also shows the substrate layers in translucent colors. As you change the colors assigned to the substrate layers, you will see a multilayer virtual domain box surrounding your project structure.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_phys5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Virtual Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the last defined trace or embedded object set is active. You can activate any trace or embedded object set at any time for drawing new objects. You can move one or more selected objects from any trace or embedded object set to another group of the same type or of different type. First select an object in the project workspace or in the Navigation Tree. Then, right click on the highlighted selection and select '''Move To &amp;amp;gt;''' from the contextual menu. This opens another sub-menu containing '''Planar''' and a list of all the other EM.Cube modules that have already defined object groups. Select '''Planar''' or any other available module, and yet another sub-menu opens up with a list of all the available traces and embedded object sets already defined in your project. Select the desired group, and all the selected objects will move to that group. When selecting multiple objects from the Navigation Tree, make sure that you hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting a group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Discretizing Planar Structures ==&lt;br /&gt;
&lt;br /&gt;
=== The Planar MoM Mesh ===&lt;br /&gt;
&lt;br /&gt;
The method of moments (MoM) discretizes all the finite-sized objects of a planar structure (excluding the background structure) into a set of elementary cells. The planar integral equations are then solved approximately on these elementary cells. As this method does not require a discretization of the entire computational domain, it is often computationally much more efficient than differential-based techniques like FEM or FDTD, which mesh the whole domain. The accuracy of the MoM numerical solution depends greatly on the quality of the generated mesh. The mesh density gives a measure of how electrically small these elementary cells are. Low mesh resolutions compromise the accuracy of the numerical solution. On the other hand, very high mesh densities may lead to numerical instability of the method of moments. As a rule of thumb, a mesh density of about 20-30 cells per effective wavelength usually yields acceptable results. Yet, for structures with lots of fine geometrical details or for highly resonant structures, higher mesh densities may be required. Also, the particular simulation data that you seek in a project will also influence your choice of mesh resolution. For example, far field characteristics like radiation patterns are less sensitive to the mesh density than field distributions on a structure with a highly irregular shape and a rugged boundary.&lt;br /&gt;
&lt;br /&gt;
It is well known that any planar geometry with any degree of complexity can be reasonably discretized using a surface triangular mesh. EM.Cube's [[Planar Module]] provides a versatile triangular mesh generator for this purpose. This generates a regular mesh, in which most of the triangular cells have almost equal areas. The uniformity or regularity of mesh is an important factor in warranting a stable numerical solution. A highly incongruous mesh may even produce completely erroneous results. EM.Cube's [[Planar Module]] also offers another mesh generator that creates a &amp;amp;quot;Hubrid&amp;amp;quot; planar mesh combining triangular and rectangular cells. Although triangular cells are more versatile than rectangular cells in adapting to arbitrary geometries, many practical planar structures contain a large number of rectangular parts like patch antennas, microstrip lines and components, etc.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM32.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar hybrid and triangular meshes for rectangular patches.&lt;br /&gt;
&lt;br /&gt;
=== The Rectangular Mesh Advantage ===&lt;br /&gt;
&lt;br /&gt;
Rectangular cells offer a major advantage over triangular cells for numerical MoM simulation of planar structures. This is due to the fact that the dyadic Green's functions of planar layered background structures are space-invariant on the transverse plane. Recall that the elements of the moment matrix are given by the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(\mu \nu)} = \iiint_{V_i} d\nu f_i^{(\mu)}(r) \cdot \iiint_{V_j}d\nu ' \overline{\overline{G}}_{\mu \nu}(r|r') \cdot f_j^{(v)}(r') &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM24(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the spatial-domain dyadic Green's functions are a function of the observation and source coordinates, '''r'''and '''r' '''. The MoM matrix elements can indeed be interpreted as interactions between two elementary basis functions '''f&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;(r)''' and '''f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;(r')''' on that particular background structure. The spatial-domain dyadic Green's functions can themselves be expressed in terms of the spectral-domain dyadic Green's functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\overline{\overline{G}}_{\mu \nu}(r|r') = \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{\overline{\overline{G}}}_{\mu \nu} (k_p, z|z') e^{-j[k_x(x-x')+k_y(y-y')]} \, dk_x \, dk_y ,&lt;br /&gt;
\quad {k_p}^2 = {k_x}^2 + {k_y}^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM26.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the doubly infinite integration is performed with respect to the spectral [[variables]] k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;. As can be seen from the above expression, the spatial-domain dyadic Green's functions are functions of z, z', as well as (x-x') and (y-y'). The MoM matrix elements can now be transformed into the spectral domain as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
Z_{ij}^{(\mu \nu)} = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{f}_i^{(\mu)} (k_x, k_y) \cdot \tilde{\overline{\overline{G}}}_{\mu \nu} (k_{\rho}, z|z') \cdot&lt;br /&gt;
\tilde{f}_j^{(\nu)} (k_x, k_y) \, dk_x \, dk_y&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM27.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the tilde symbol signifies the Fourier transform of a function defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\tilde{f}(k_x, k_y) = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
f(x,y) e^{j(k_x x + k_y y)} \, dx \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM28(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rectangular cells have simple Fourier transforms. The rooftop basis functions are triangular functions in the direction of current flow and constant in the perpendicular direction. This means that their Fourier transform is a product of a sinc-squared function along one spectral direction and a sinc function along the other. You can see from the figure below that if one deals with a rectangular mesh of identical cells (all equal and parallel), then the interactions among the rooftop basis functions become a functions of the index differences and not the absolute indices:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{(i,k)|(j,l)} = Z \Big\langle f_{i,k}(x,y)| f_{j,l}(x', y') \Big\rangle = Z_{(i-j)|(k-l)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM29.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equation, the vectorial rooftop basis functions have explicit, double indices: i and k along the local X and Y directions, respectively, for the test (observation) basis function, and j and l along the local X and Y directions, respectively, for the expansion (source) basis function. Thus, uniform rectangular cells, i.e. structured rectangular cells of identical size aligned in the same direction, can speed up the planar MoM simulation significantly due to these symmetry and the invariance properties. For example, all the self-interactions are identical regardless of the location of a rooftop basis function. This reduces the matrix fill process for a total of N rooftop basis functions from an N2 process to one of order N.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Pairs of rooftop basis functions that have identical MoM interactions.&lt;br /&gt;
&lt;br /&gt;
=== Generating A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
The planar MoM mesh generation process involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties&lt;br /&gt;
# Creating and viewing the mesh&lt;br /&gt;
# Verifying the mesh for integrity&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] offers two mesh generation algorithms for discretizing planar structures: Hybrid and Triangular. The hybrid mesh consists of both rectangular and triangular cells. The hybrid mesh generator creates a kind of “object-centric” mesh that depends on the geometry of each object. It tries to discretize rectangular objects with rectangular cells as much as possible. In certain connection areas, a few triangular cells might be inserted to provide the mesh transition for current continuity. All the non-rectangular objects (circular, polygonal, etc.) are discretized using triangular cells. The triangular mesh generator, on the other hand, discretizes the planar objects with all triangular cells regardless of their shape. The only exceptions are feed lines that contain gap sources or lumped elements, which are always meshed with rectangular cells.&lt;br /&gt;
&lt;br /&gt;
You can generate and view a planar mesh by clicking the '''Show Mesh''' [[File:mesh_tool.png]] button of the '''Simulate Toolbar''' or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' or using the keyboard shortcut '''Ctrl+M'''. When the mesh of the planar structure is displayed in EM.Cube’s project workspace, its &amp;amp;quot;Mesh View&amp;amp;quot; mode is enabled. In this mode you can perform view operations like rotate view, pan or zoom, but you cannot create new objects or edit existing ones. To exit the mesh view mode, press the keyboard's '''Esc Key''' or click the '''Show Mesh''' [[File:mesh_tool.png]] button once again.&lt;br /&gt;
&lt;br /&gt;
Once a mesh is generated, it stays in the memory until the structure is changed or the mesh density or other settings are modified. Every time you view mesh, the one in the memory is displayed. You can force EM.Cube to create a new mesh from the ground up by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''Planar Mesh''' item in the '''Discretization''' section of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Mesh Density ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, generates a hybrid mesh of your planar structure with a mesh density of 20 cells per effective wavelength. It is important to understand the concept of mesh density (either hybrid or triangular) as used by [[Planar Module]]. It gives a measure of the number of cells per effective wavelength that are placed in various regions of your planar structure. The higher the mesh density, the more cells are created on the geometrical objects. Keep in mind that only the finite-sized objects of your structure are discretized. No mesh is generated for the substrate layers of your background structure. The free-space wavelength is defined as &amp;lt;math&amp;gt;\lambda_0 = \tfrac{2\pi f}{c}&amp;lt;/math&amp;gt;, where f is the center frequency of your project and c is the speed of light in the free space. The effective wavelength is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where e&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity.&lt;br /&gt;
&lt;br /&gt;
The effective permittivity is defined differently for different types of traces and embedded object sets. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivity of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivity of the two substrate layers just above and below the metallic trace. These definitions of effective permittivity are consistent with the effective propagation constant of transmission lines realized on such trace types. For embedded object sets, the effective permittivity is defined as the largest of the permittivities of all the substrate layers and embedded dielectric sets. In all cases, for the purpose of calculating the effective wavelength, only the real part of the permittivities are considered. The reason for using an effective wavelength so defined for determination of mesh resolution is to make sure that enough cells are placed in areas that might feature higher field concentration.&lt;br /&gt;
&lt;br /&gt;
Due to the different definitions of effective wavelength in different parts of your planar structure, you will see different mesh resolutions. For example, if you structure has several substrate layers with different permittivities, the mesh of metal traces on layers with a higher permittivity value will feature more cells than the mesh of metal traces on layers with a lower permittivity value even though the mesh density value is the same for the whole structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM30.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of two rectangular patches at two different planes. The lower substrate layer has a higher permittivity.&lt;br /&gt;
&lt;br /&gt;
=== Customizing A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the planar mesh including the mesh type and density from the planar Mesh Settings Dialog. You can also change these settings while in the mesh view mode, and you can update the changes to view the new mesh. To open the mesh settings dialog, either click the '''Mesh Settings''' [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Mesh Settings...''', or by right click on the '''Planar 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 mesh algorithm from the dropdown list labeled '''Mesh Type''', which offers two options: '''Hybrid''' and '''Triangular'''. You can also enter a different value for '''Mesh Density''' in cells per effective wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;). For each value of mesh density, the dialog also shows the average &amp;amp;quot;Cell Edge Length&amp;amp;quot; in the free space. To get an idea of the size of mesh cells on the traces and embedded object sets, divide this edge length by the square root of the effective permittivity a particular trace or set. Click the '''Apply''' button to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM31.png]]&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Of Connected Trace Objects ===&lt;br /&gt;
&lt;br /&gt;
Using the generated mesh of a planar structure, EM.Cube creates a set of vectorial basis functions that are passed to the input file of the Planar MoM simulation engine. This engine requires edge-based basis functions. The common edges between adjacent cells are used to define edge-based rooftop or RWG basis functions. These elementary basis functions indeed provide the current flow and warrant the continuity among the mesh cells. Therefore, when two objects overlap or share a common edge, the connection between them must be translated into &amp;amp;quot;bridge&amp;amp;quot; basis functions, which carry the information about current flow to the simulation engine.&lt;br /&gt;
&lt;br /&gt;
'''The most important rule of object connections in EM.Cube's [[Planar Module]] is that only objects belonging to the same trace can be connected to one another.''' For example, if two objects reside on the same Z-plane and geometrically have a common edge which you can clearly see in the project workspace, but organizationally they belong to two different metal traces, then the bridge basis functions will not be generated between them, and the simulation engine will see them disconnected. If two objects belong to the same trace and have a common overlap area, EM.Cube first merges the two objects using the &amp;amp;quot;Boolean Union&amp;amp;quot; operation and converts them into a single object for the purpose of meshing. The mesh of &amp;amp;quot;unioned&amp;amp;quot; areas is usually made up of triangular cells. If two objects reside on the same Z-plane and geometrically overlap with each other but organizationally belong to two different trace groups, incongruous, overlapped cells will be generated that will either blow up the linear system or produce completely wrong simulation results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM36.png|250px]] [[File:PMOM38.png|250px]] [[File:PMOM37.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Two overlapping planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
When two planar objects belonging to the same trace are connected via a common edge, it is critical to generate a consistent mesh at the connection area and properly transition and merge the meshes of the individual objects. EM.Cube's triangular planar mesh generator simply &amp;amp;quot;unions&amp;amp;quot; the two objects and generates a connected mesh. EM.Cube's hybrid planar mesh generator, however, behave differently when it comes to the connection between rectangular objects. The rule in this case is the following:&lt;br /&gt;
&lt;br /&gt;
* If the two connected rectangular objects have the same side dimensions along the common linear edge with perfect alignment, a rectangular bridge mesh is produced.&lt;br /&gt;
* If the two connected rectangular objects have different side dimensions along the common linear edge or have edge offset, a set of triangular cells is generated along the edge of the object with the large side.&lt;br /&gt;
* Rectangular objects that contain gap source or lumped elements, always have a rectangular mesh around the gap area.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM33.png|250px]] [[File:PMOM35.png|250px]] [[File:PMOM34.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edge-connected rectangular planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
=== Mesh of Embedded Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] models embedded objects as vertical volume currents. The vectorial basis functions in this case are Z-directed prisms as opposed to rooftop basis functions. If an embedded object is located under or above a metallic trace or connected from both top and bottom, it is critical to create mesh continuity between the embedded object and its connected metallic traces. In other words, the generated mesh must ensure current continuity between the vertical volume currents and horizontal surface currents. EM.Cube’s planar mesh generator automatically handles situations of this kind and generates all the required connection meshes.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that EM.Cube’s Planar MoM engine uses a 2.5-D approximation, whereby only vertical volume currents are assumed inside embedded objects. When the height of an embedded object is small (as should typically be under the 2.5-D assumption), one prismatic cell is placed across the object along the Z-axis. Long PEC vias with a very small radius do also satisfy the 2.5-D assumption. In this case, the long via objects are discretized further along the Z direction and generate multiple stacked cells. Several prismatic cells along the Z-axis may increase the simulation time drastically. This is due to the fact that the host layer is effectively subdivided into a number of sub-layers and the stacked cells are treated as stacked vias embedded inside these sub-layers. As a result, the simulation engine needs to compute all the dyadic Green’s functions accounting for the interactions between all such sub-layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM39.png|400px]] [[File:PMOM40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of a vertical PEC via connecting two horizontal metallic strips. The shorter via has one prismatic cell along the Z direction, while the longer via is discretized into several stacked cells.&lt;br /&gt;
&lt;br /&gt;
=== Refining Mesh At Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
It is very important to apply the right mesh density to capture all the geometrical details of your planar structure. This is especially true for &amp;amp;quot;field discontinuity&amp;amp;quot; regions such as junction areas between objects of different side dimensions, where larger current concentrations are usually observed at sharp corners, or at the connection areas between metallic traces and PEC vias, as well as the areas around gap sources and lumped elements, as these create voltage or current discontinuities. For large planar structures, using a higher mesh density may not always be a practical option since it will quickly lead to a very large MoM matrix and thus growing the size of the numerical problem. Sometimes a slightly non-uniform mesh still produces stable numerical results. In other words, you may choose to increase the mesh resolution around the discontinuity regions only.&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh around geometrical and field discontinuities. You can check the check box labeled &amp;amp;quot;'''Refine Mesh at Junctions'''&amp;amp;quot;, which increases the mesh resolution at the connection area between rectangular objects. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Gap Locations'''&amp;amp;quot;, which may prove particularly useful when gap sources or lumped elements are placed on a short transmission line connected from both ends. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Vias'''&amp;amp;quot;, which increases the mesh resolution on the cross section of embedded object sets and by extension at the connection regions of the metallic objects connected to them. EM.Cube typically doubles the mesh resolution locally at the discontinuity areas when the respective boxes are checked.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM41.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Refining the planar mesh at the via and surrounding area.&lt;br /&gt;
&lt;br /&gt;
=== Checking Mesh Integrity ===&lt;br /&gt;
&lt;br /&gt;
You should always visually inspect EM.Cube's default generated mesh to see if the current mesh settings have produced an acceptable mesh. You may often need to change the mesh density or other parameters and regenerate the mesh. The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, highly incongruous meshes should always be avoided. Sometimes EM.Cube's default mesh may contain very narrow triangular cells due to very small angles between two edges. In some rare cases, extremely small triangular cells may be generated, whose area is a small fraction of the average mesh cell. These cases typically happen at the junctions and other discontinuity regions or at the boundary of highly irregular geometries with extremely fine details. In such cases, increasing or decreasing the mesh density by one or few cells per effective wavelength often resolves that problem and eliminates those defective cells. Nonetheless, EM.Cube's planar mesh generator offers an option to identify the defective triangular cells and either delete them or cure them. By curing we mean removing a narrow triangular cell and merging its two closely spaced nodes to fill the crack left behind.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM44.png|400px]] [[File:PMOM42.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Deleting or curing defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
EM.Cube by default deletes or cures all the triangular cells that have angles less than 10º. Sometimes removing defective cells may inadvertently cause worse problems in the mesh. You may choose to disable this feature and uncheck the box labeled &amp;amp;quot;'''Remove Defective Triangular Cells'''&amp;amp;quot; in the Planar Mesh Settings dialog. You can also change the value of the minimum allowable cell angle.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM43(1).png]]&lt;br /&gt;
&lt;br /&gt;
Setting the minimum allowable angle for non-defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
=== Locking Mesh Of Object Groups ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides different ways of controlling the mesh of a planar structure locally. Earlier you saw how to increase the mesh resolution at the discontinuity regions without affecting the mesh of uniform or regular areas of a planar structure. Another way of local mesh control is to lock the mesh density of certain traces or object sets. The mesh density that you specify in the Planar Mesh Settings dialog is a global parameter and applies to all the traces and embedded object sets in your project. However, you can lock the mesh of individual PEC, PMC and conductive sheet traces or embedded objects sets. In that case, the locked mesh density takes precedence over the global density. Note that locking mesh of object groups, in principle, is different than refining the mesh at discontinuities. In the latter case, the mesh of connection areas is affected. However, objects belonging to different traces cannot be connected to one another. Therefore, locking mesh can be useful primarily for isolated object groups that may require a higher (or lower) mesh resolution.&lt;br /&gt;
&lt;br /&gt;
You can lock the local mesh density by accessing the property dialog of a specific trace or embedded object set and checking the box labeled '''Lock Mesh'''. This will enable the '''Mesh Density''' box, where you can accept the default global value or set any desired new value.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM45.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of an object group from its property dialog.&lt;br /&gt;
&lt;br /&gt;
=== Local Mesh Control Using Polymesh Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to manually and individually mesh geometrical objects using the concept of polymesh. The Polymesh tool converts a planar surface object to a set of interconnected triangular cells, which is basically identical to its triangular surface mesh. Simply select an object and click the '''Polymesh Tool''' [[File:polymesh_tool_tn.png]] button of '''Tools Toolbar''', or select '''Menu &amp;amp;gt; Tools &amp;amp;gt; Polymesh''', or use the keyboard shortcut '''P'''. You can also right click on a selected object and select '''Polymesh''' from the contextual menu. From the Polymesh Dialog, you can control the mesh resolution through the '''Edge Length''' parameter, which is expressed in project units. Note that unlike the planar mesh generator which uses a frequency-dependent mesh density to drive the mesh resolution, the ploymesh's edge length is fixed and purely geometrical and does not change with the project frequency. '''EM.Cube's mesh generator considers a polymesh object as a &amp;amp;quot;final&amp;amp;quot; mesh and reproduces it &amp;amp;quot;As Is&amp;amp;quot; during the meshing process.'''&lt;br /&gt;
&lt;br /&gt;
You have access to every single node of a polymesh object and you can change its coordinates arbitrarily. You do this by opening the property dialog of a polymesh object and selecting a certain node index in the box labeled '''Active Node'''. You can also select a node by hovering the mouse over the node to highlight it and then click to select it. A red ball appears on the current active node. You can delete the nodes arbitrarily using the '''Delete''' button of the dialog, which results in lowering the mesh resolution at the location of the deleted node. Or you can insert new nodes in the faces of a polymesh object. To insert a node, first you have to select a face. Change the '''Mode''' option by selecting the '''Face''' radio button and then select the right '''Active Face''' index. A red triangular border appears around the selected face. You can also simply click on the surface of a face and select it using the mouse. With the desired face selected, click the '''Insert''' button of the dialog to create a new node at the centroid of the selected face. You can adjust the coordinates of the newly inserted node from the three X, Y and Z '''Coordinate''' boxes. Note that immediately after the insertion of a new node, the label of these coordinate boxes changes to &amp;amp;quot;'''New Node'''&amp;amp;quot; and they show the relative local X, Y and Z offsets with respect to the original node position. Once you close the Polymesh Dialog, the new node is added to the existing node list and can be edited later like the other polymesh nodes. By inserting a new node, you increase the mesh resolution locally and selectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM46(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Discretizing a planar surface object using EM.Cube's Polymesh tool.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that since a polymesh object it considered a final mesh, its mesh cannot be connected to other objects. In other words, bridge basis functions are not generated if even some of the polymesh edges may coincide with other objects' edges. A polymesh object is treated by the mesh generator as an isolated mesh. However, EM.Cube allows you to connect polymesh objects manually. To do so, bring two or more polymesh objects close to each other so that they have one or more common edges. No face overlaps are allowed in this case. Select the polymesh objects and click the '''Merge Tool'''[[File:merge_tool_tn.png]] button of '''Tools Toolbar''' to merge the polymesh objects into a single polymesh object. The new merged polymesh object will provide all the necessary bridge basis functions among the original, separate polymesh objects.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
In a typical electromagnetic simulation in EM.Cube's [[Planar Module]], you define a planar structure that consists of a layered background structure with a number of finite-sized metal and slot traces and possibly embedded metal or dielectric objects interspersed among the substrate layers. The planar structure is then excited by some sort of a signal source that induces electric currents on metal parts and magnetic currents on slot traces. The method of moments (MoM) solver computes these unknown electric and magnetic currents by discretizing the finite-sized objects. The induced currents, in turn, produce their own electric and magnetic fields which coexist (are superposed) with the impressed electric and magnetic fields of the signal source. From a knowledge of the near fields, EM.Cube calculates the port characteristics of the planar structure, if any ports have been defined. From a knowledge of the far fields, EM.Cube calculates the radiation or scattering characteristics of the planar structure.&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure in a number of different ways. The excitation source you choose depends on the observables you seek in your project. [[Planar Module]] provides the following source for exciting planar structures:&lt;br /&gt;
&lt;br /&gt;
* Lumped Sources with three varieties: [[#Gap Sources|Gap Sources]], [[#De-embedded Sources|De-embedded Sources]] and [[#Probe Sources|Probe Sources]]&lt;br /&gt;
* [[#Plane Wave Sources|Plane Wave Sources]]&lt;br /&gt;
* [[#Short Dipole Sources|Short Dipole Sources]]&lt;br /&gt;
* [[#Huygens Sources|Huygens Sources]]&lt;br /&gt;
&lt;br /&gt;
For antennas and planar circuits, where you typically define one or more ports, you usually use lumped sources. A lumped source is indeed a gap discontinuity that is placed on the path of an electric or magnetic current flow, where a voltage or current source is connected to inject a signal. Gap sources are placed across metal or slot traces. Probe sources are placed across vertical PEC vias. A de-embedded source is a special type of gap source that is placed near the open end of an elongated metal or slot trace to create a standing wave pattern, from which the scattering parameters can be calculated accurately. To calculate the scattering characteristics of a planar structure, e.g. its radar cross section (RCS), you excite it with a plane wave source. Short dipole sources are used to explore propagation of points sources along a layered structure. Huygens sources are virtual equivalent sources that capture the radiated electric and magnetic fields from another structure possibly in another EM.Cube computational module and bring them as a new source to excite your planar structure.&lt;br /&gt;
&lt;br /&gt;
=== Gap Sources ===&lt;br /&gt;
&lt;br /&gt;
A gap is an infinitesimally narrow discontinuity that is placed on the path of current flow on a feed line. In planar structures, feed lines are typically in the form of a microstrip, stripline, slotline or coplanar waveguide (CPW). You use rectangle strip objects to construct such feed lines. A gap source can be placed on any rectangle strip object on a PEC, PMC or conductive sheet trace. Depending on the type of the trace on which a gap source is placed, it will have a different physical interpretation.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PEC or conductive sheet trace can be regarded as a strip transmission line that carries electric currents along its length (local X direction). The characteristic impedance of the line is a function of its width (local Y direction). A gap source is placed somewhere along the length and across the width of such a rectangle strip object, thus creating an infinitesimally narrow gap at its location. In this case, the gap source represents an ideal voltage source in series with a lumped impedance that is connected across the gap to excite the strip transmission line. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the gap. The source pumps electric current into the line. If the voltage source is shorted (having a zero amplitude), then the gap acts like a series lumped element on the transmission line.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PMC trace can be regarded as a slot transmission line on an infinite PEC ground plane that carries a magnetic current along its length (local X direction). The characteristic impedance of the slot line is a function of its width (local Y direction). A slot gap source is placed somewhere along the length and across the width of the rectangle strip object on a PMC trace and creates an infinitesimally narrow gap at its location. In this case, the slot gap source represents an ideal current source with a shunt lumped admittance that is connected across the slot to excite the slot transmission line. When the admittance is zero, the gap acts like an ideal current filament, which creates electric fields across the slot, equivalent to a magnetic current flowing into the slot line. If the current source is open (having a zero amplitude), then the gap acts like a shunt (parallel) lumped element on the slot line. As you will see later, a coplanar waveguide (CPW) can be realized using two parallel slot lines with two aligned, collocated gap sources.&lt;br /&gt;
&lt;br /&gt;
To define a gap source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Gap Source Dialog by right clicking on the '''Gap Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' available in the project workspace. Select the desired host rectangle strip object. The box labeled '''Direction''' shows the direction or polarity of the new gap source on its host rectangle strip object. You have the option to select either the positive or negative direction for the source polarity.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the gap source from the start point of the rectangle strip feed line. The value of '''Offset''' by default is initially set to the center of the line. As you change the offset value, you can see the gap move on its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of a gap on a slot trace) and '''Phase''' in degrees.&lt;br /&gt;
* You can also change the default label as well as the default color of the gap source using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM47.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Gap Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Probe Sources ===&lt;br /&gt;
&lt;br /&gt;
Another way of exciting a planar structure is by placing a gap on the path of a vertical current on a PEC via. This represents a filament source, which is used to model coaxial probe excitation. A probe source can be placed only on a PEC via object. Most planar transmission lines are fed using SMA connectors. The outer conductor of the coaxial line is connected to the ground and its inner conductor is extended across the substrate layer and connected to a metallic line. EM.Cube's [[Planar Module]] models a coaxial probe as an infinitesimal gap discontinuity placed across a thin via, representing an ideal voltage source in series with a lumped impedance. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the via. The source pumps vertical electric current into the probe. If the voltage source is shorted (having a zero amplitude), then the gap acts like a shunt lumped element across the via.&lt;br /&gt;
&lt;br /&gt;
To define a probe source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Probe Source Dialog by right clicking on the '''Probe Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, in the dropdown list labeled '''Embedded Objects''', you will find a list of all the PEC via objects available in the project workspace. Select the desired host PEC via object. The box labeled '''Direction''' shows the direction or polarity of the new probe source on its host PEC via object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the probe source from the bottom of the via object. The value of '''Offset''' by default is initially set to the center of the via.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and '''Phase''' in degrees.&lt;br /&gt;
&lt;br /&gt;
Unlike gap sources, whose offset parameter determines their exact location on their host line, the offset parameter of a probe source is not relevant except for long host vias. In the case of a short via that is discretized using a single prismatic element across its host substrate layer, the probe gap is always placed at the middle of its height. Longer vias may have a mesh that consists of two or more stacked prismatic elements. In this case, the probe source's offset determines which prismatic element will host the probe gap discontinuity at its middle.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Probe Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Source Arrays ===&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects, the array object will also be listed as an eligible object for gap source placement. A gap source will then be placed on each element of the array. All the gap sources will have identical direction and offset. Similarly, if the project workspace contains an array of PEC via objects, the embedded array object will also be listed as an eligible object for probe source placement. A probe source will then be placed on each via object of the array. All the probe sources will have identical direction and offset.&lt;br /&gt;
&lt;br /&gt;
However, you can prescribe certain amplitude and/or phase distribution over the array of gap or probe sources. By default, all the gap or probe sources have identical amplitudes of 1V (or 1A for the slot case) and zero phase. The available amplitude distributions to choose from include '''Uniform''', '''Binomial''' and '''Chebyshev''' and '''Date File'''. In the Chebyshev case, you need to set a value for minimum side lobe level ('''SLL''') in dB. You can also define '''Phase Progression''' in degrees along all three principal axes. You can view the amplitude and phase of individual sources by right clicking on the top '''Sources''' item in the Navigation Tree and selecting '''Show Source Label''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM49.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining gap sources on an array of rectangle strip objects with a Chebyshev amplitude distribution.&lt;br /&gt;
&lt;br /&gt;
In the data file option, the complex amplitude are directly read in from a data file using a real - imaginary format. When this option is selected, you can either improvise the complex array weights or import them from an existing file. In the former case click the '''New Data File''' button. This opens up the Windows Notepad with default formatted data file that has a list of all the array element indices with default 1+j0 amplitudes for all of them. You can replace the default complex values with new one and save the Notepad data file, which brings you back to the Gap Source dialog. To import the array weights, click the '''Open Data File''' button, which opens the standard Windows Open dialog. You can then select the right data file from the one of your folders. It is important to note that the data file must have the correct format to be read by EM.Cube. For this reason, it is recommended that you first create a new data file with the right format using Notepad as described earlier and then save it for later use.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining gap source array weights using a data file.&lt;br /&gt;
&lt;br /&gt;
=== Defining Ports ===&lt;br /&gt;
&lt;br /&gt;
Ports are used in a planar structure to order and index the sources for calculation of circuit parameters such as scattering (S), impedance (Z) and admittance (Y) parameters. In EM.Cube's [[Planar Module]], you can use the following types of sources to define ports:&lt;br /&gt;
&lt;br /&gt;
* Gap Sources&lt;br /&gt;
* Probe Sources&lt;br /&gt;
* Active Lumped Elements&lt;br /&gt;
* De-Embedded Sources&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your planar structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree. Note that your project can have mixed gap and probes sources as well as active lumped element sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
'''You can define any number of ports equal to or less than the total number of sources in your project.''' The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50S by default. You can delete any port by selecting it from the Port List and clicking the '''Delete''' button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment and make sure that is what you intend. You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit''' button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM53.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edit Port dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Coupled Ports ===&lt;br /&gt;
&lt;br /&gt;
Sources can be coupled to each other to model coupled strip lines (CPS) on metal traces or coplanar waveguides (CPW) on slot traces. Similarly, probe sources may be coupled to each other. Coupling two or more sources does not change the way they excite a planar structure. It is intended only for the purpose of S parameter calculation. The feed lines or vias which host the coupled sources are usually parallel and aligned with one another and they are all grouped together as a single transmission line represented by a single port. This single &amp;amp;quot;coupled&amp;amp;quot; port then interacts with other coupled or uncoupled ports.&lt;br /&gt;
&lt;br /&gt;
You couple two or more sources using the '''Port Definition Dialog'''. To do so, you need to change the default port assignments. First, delete all the ports that are to be coupled from the Port List of the dialog. Then, define a new port by clicking the '''Add''' button of the dialog. This opens up the Add Port dialog, which consists of two tables: '''Available''' sources on the left and '''Associated''' sources on the right. A right arrow ('''--&amp;amp;gt;''') button and a left arrow ('''&amp;amp;lt;--''') button let you move the sources freely between these two tables. You will see in the &amp;amp;quot;Available&amp;amp;quot; table a list of all the sources that you deleted earlier. You may even see more available sources. Select all the sources that you want to couple and move them to the &amp;amp;quot;Associated&amp;amp;quot; table on the right. You can make multiple selections using the keyboard's '''Shift''' and '''Ctrl''' keys. Closing the Add Port dialog returns you to the Port Definition dialog, where you will now see the names of all the coupled sources next to the name of the newly added port.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is your responsibility to set up coupled ports and coupled transmission lines properly. For example, to excite the desirable odd mode of a coplanar waveguide (CPW), you need to create two rectangular slots parallel to and aligned with each other and place two gap sources on them with the same offsets and opposite polarities. To excite the even mode of the CPW, you use the same polarity for the two collocated gap sources. Whether you define a coupled port for the CPW or not, the right definition of sources will excite the proper mode. The couple ports are needed only for correct calculation of the port characteristics.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM51(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Coupling gap sources in the Port Definition dialog by associating more than one source with a single port.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Port Characteristics At Gap Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
A gap source on a metal trace and a probe source on a PEC via behave like a series voltage source with a prescribed strength (of 1V and zero phase by default) that creates a localized discontinuity on the path of electric current flow. At the end of a planar MoM simulation, the electric current passing through the voltage source is computed and integrated to find the total input current. From this one can calculate the input admittance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_W \hat{y} \cdot \mathbf{J_s} \, dy} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM54(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for gap sources on metal traces, where the line integration is performed across the width of the metal strip, and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_S \hat{z} \cdot \mathbf{J_p} \, ds} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM55.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for probe sources on PEC vias, where the surface integration is performed over the cross section of the via. On the other hand, a gap source on a slot trace behaves like a shunt current source with a prescribed strength (of 1A and zero phase by default) that creates a localized discontinuity on the path of magnetic current flow. At the end of a planar MoM simulation, the magnetic current passing through the current source is computed and integrated to find the total input voltage across the current filament. From this one can calculate the input impedance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{in} = \frac{V_{in}}{I_s} = \frac{\int_W \hat{y} \cdot \mathbf{M_s} \,dy} {V_s} = \frac{\int_W E_y \, dy}{V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM56.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the input admittance or impedance defined at a gap source port is referenced to the two terminals of the voltage source connected across the gap as shown in the figure below. This is different than the input admittance or impedance that one may normally define for a microstrip port, which is referenced to the substrate's ground.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM59(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Definition of different input impedances at the gap location.&lt;br /&gt;
&lt;br /&gt;
To resolve this problem, you can place a gap source on a metal strip line by a distance of a quarter guide wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/4) away from its open end. Note that (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; = 2p/ß), where ß is the propagation constant of the metallic transmission line. As show in the figure below, the impedance looking into an open quarter-wave line segment is zero, which effectively shorts the gap source to the planar structure's ground. The gap admittance or impedance in this case is identical to the input admittance or impedance of the planar structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM60(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing a gap source a quarter guide wavelength away from the open end of a feed line to effectively short it to the ground at the gap location.&lt;br /&gt;
&lt;br /&gt;
The same principle applies to the gap sources on slot traces. The figure below shows how to place two gap sources with opposite polarities a quarter guide wavelength away from their shorted ends to calculate the correct input impedance of the CPW line looking to the left of the gap sources. Note that in this case, you deal with shunt filament current sources across the two slot lines and that the slot line carry magnetic currents. The end of the slot lines look open to the magnetic currents, but in reality they short the electric field. The quarter-wave CPW line acts as an open circuit to the current sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM61(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing two oppositely polarized gap sources a quarter guide wavelength away from the short end of a CPW line to effectively create an open circuit beyond the gap location.&lt;br /&gt;
&lt;br /&gt;
The case of a probe source placed on a PEC via that is connected to a ground plane is more straightforward. In this case, the probe source's gap discontinuity is placed at the middle plane of the PEC via. If the via is short, it is meshed using a single prismatic element, which is connected to the ground from one side and to the metal strip line from the other. Therefore, the probe admittance or impedance is equal to that of the structure at a reference plane that passed through the host via.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM62(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Input impedance of a probe source on a PEC via connected to a ground plane.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Multiport Structures Using Linear Superposition ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure has two or more sources, but you have not defined any ports, all the lumped sources excite the structure locally and contribute to the excitation vector needed for the MoM solution of the problem. However, when you assign N ports to the sources, then you have a multiport structure that is characterized by an N×N admittance matrix (instead of a single Y&amp;lt;sub&amp;gt;in&amp;lt;/sub&amp;gt; parameter), or an N×N impedance matrix, or an N×N scattering matrix. To calculate these matrices, EM.Cube uses a binary excitation scheme in conjunction with the principle of linear superposition. In this binary scheme, the structure is analyzed N times. Each time one of the N port-assigned sources is excited, and all the other port-assigned sources are turned off.&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on metal traces and probe sources on PEC vias, turning a source off means shorting a series voltage source. The electric currents passing through these sources are then found at each port location, and the admittance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_m = \sum_{n=1}^N Y_{mn} V_n, \quad \quad Y_{mn} = \frac{I_m}{V_n} \bigg|_{V_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM57.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on slot traces, turning a source off means opening a shunt filament current source. The magnetic currents passing through the source locations, and thus the voltages across them, are then found at all ports, and the impedance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_m = \sum_{n=1}^N Z_{mn} I_n, \quad \quad Z_{mn} = \frac{V_m}{I_n} \bigg|_{I_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM58.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The N solution vectors that are generated through the N binary excitation analyses are finally superposed to produce the actual solution to the problem. However, in this process, EM.Cube also calculates all the port characteristics. Keep in mind that the impedance (Z) and admittance (Y) matrices are inverse of each other. From the impedance matrix, the scattering matrix is calculated using the following relation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM63.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Lumped Elements In Planar MoM ===&lt;br /&gt;
&lt;br /&gt;
Lumped elements are components, devices, or circuits whose overall dimensions are very small compared to the wavelength. As a result, they are considered to be dimensionless compared to the dimensions of a mesh cell. In fact, a lumped element is equivalent to an infinitesimally narrow gap that is placed in the path of current flow, across which the device's governing equations are enforced. Using Kirkhoff's laws, these device equations normally establish a relationship between the currents and voltages across the device or circuit. Crossing the bridge to Maxwell's domain, the device equations must now be cast into a from o boundary conditions that relate the electric and magnetic currents and fields. EM.Cube's [[Planar Module]] allows you to define passive circuit elements: '''Resistors'''(R), C'''apacitors'''(C), I'''nductors'''(L), and series and parallel combinations of them as shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image106.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A series-parallel RLC combination that can be modeled as a lumped circuit in [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Lumped elements are conceptualized in a similar way as gap or probe sources. They are indeed considered as infinitesimally narrow gaps placed in the path of current flow, across which Ohm's law is enforced. If a lumped element is placed on a PEC or conductive sheet trace, it is treated as a series connection. The boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; &lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{x}\cdot \mathbf{E_{gap}} \, dx = Z_L \int_W \hat{y} \cdot \mathbf{J_s} \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM67.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Z&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total impedance across the two terminals of the series element. If the lumped element is placed on a slot trace, it is treated as a shunt connection that creates a current discontinuity. In this case, the magnetic current across the gap is continuous, and the boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_{gap} = Y_L V_{in} \quad\quad \int_{\delta} J_Y^{fila} \, dx = Y_L \int_W E_y \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \int_{\delta} \hat{x}\cdot\hat{n} \times (\mathbf{H_{gap}^+ - H_{gap}^-}) \, dx = Y_L \int_W \hat{y}\cdot\mathbf{M_s} \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM70(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Y&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total admittance across the two terminals of the shunt element. If a lumped element is placed on a PEC via that is connected to a metal strip from one side and to a PEC ground plane from the other end, it is indeed as a series connection across a gap discontinuity at the middle plane of the via. If the via is short, it is meshed using a single prismatic element. In that case, the lumped element in effect shunts the metal strip to the ground. The boundary condition at the location of the lumped element across the PEC via is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{z}\cdot \mathbf{E_{gap}} \, dz = Z_L \int_S \hat{z} \cdot \mathbf{J_p} \, ds&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM68.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM69.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Using a shunt lumped element on a PEC via to terminate a metallic strip line.&lt;br /&gt;
&lt;br /&gt;
=== Defining Lumped Circuits ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM64.png|thumb|400px|Lumped Element dialog]]&lt;br /&gt;
To define a lumped RLC circuit in your planar structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Lumped Element Dialog by right clicking on the '''Lumped Elements''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Gap Topology''' section of the dialog, select one of the two options: '''Gap on Line''' and '''Gap on Via'''.&lt;br /&gt;
* In the '''Lumped Circuit Type''' section of the dialog, select one of the two options: '''Passive RLC''' and '''Active with Gap Source'''.&lt;br /&gt;
* Depending on your choice of gap topology, in the '''Lumped Circuit Location''' section of the dialog, you will find either a list of all the '''Rectangle Strip Objects''' or a list of all the '''PEC Via Objects''' available in the project workspace. Select the desired rectangle strip or embedded PEC via object.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the rectangle strip line or from the bottom of the via object, whichever the case. The value of '''Offset''' by default is initially set to the center of the line or via.&lt;br /&gt;
* In the '''Load Properties''' section, the series and shunt resistance values Rs and Rp are specified in Ohms, the series and shunt inductance values Ls and Lp are specified in nH (nanohenry), and the series and shunt capacitance values Cs and Cp are specified in pF (picofarad). Only the checked elements are taken into account in the total impedance calculation. By default, only the series resistor is checked with a value of 50S, and all other circuit elements are initially greyed out.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] allows you to define a voltage source in series with a series-parallel RLC combination and place them across the gap. This is called an active lumped element. If you choose the '''Active with Gap Source''' option of the '''Lumped Circuit Type''' section of the dialog, the right section of the dialog entitled '''Source Properties''' becomes enabled, where you can you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of PMC traces) and the '''Phase''' in degrees. Also, the box labeled '''Direction''' becomes relevant in this case which contains a gap source. Otherwise, a passive RLC circuit does not have polarity.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects or PEC via objects, the array object will also be listed as an eligible object for lumped element placement. A lumped element will then be placed on each element of the array. All the lumped elements will have identical direction, offset, resistance, inductance and capacitance values. If you define an active lumped element, you can prescribe certain amplitude and/or phase distribution to the gap sources just like in the case of gap and probe sources. The available amplitude distributions include '''Uniform''', '''Binomial'''''', Chebyshev''' and '''Data File'''.&lt;br /&gt;
&lt;br /&gt;
{{Note|The impedance of the lumped circuit is calculated at the operating frequency of the project using the specified R, L and C values. As you change the frequency, the value of the impedance that is passed to the Planar MoM engine will change.}}&lt;br /&gt;
&lt;br /&gt;
=== Calculating Scattering Parameters Using Prony's Method ===&lt;br /&gt;
&lt;br /&gt;
The calculation of the scattering (S) parameters is usually an important objective of modeling planar structures especially for planar circuits like filters, couplers, etc. As you saw earlier, you can use lumped sources like gaps and probes and even active lumped elements to calculate the circuit characteristics of planar structures. The admittance / impedance calculations based on the gap voltages and currents are accurate at RF and lower microwave frequencies or when the port transmission lines are narrow. In such cases, the electric or magnetic current distributions across the width of the port line are usually smooth, and quite uniform current or voltage profiles can easily be realized. At higher frequencies, however, a more robust method is needed for calculating the port parameters.&lt;br /&gt;
&lt;br /&gt;
One can calculate the scattering parameters of a planar structure directly by analyzing the current distribution patterns on the port transmission lines. The discontinuity at the end of a port line typically gives rise to a standing wave pattern that can clearly be discerned in the line's current distribution. From the location of the current minima and maxima and their relative levels, one can determine the reflection coefficient at the discontinuity, i.e. the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter. A more robust technique is Prony’s method, which is used for exponential approximation of functions. A complex function f(x) can be expanded as a sum of complex exponentials in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f(x) \approx \sum_{n=1}^N c_i e^{-j\gamma_i x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM73.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are complex coefficients and &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are, in general, complex exponents. From the physics of transmission lines, we know that lossless lines may support one or more propagating modes with pure real propagation constants (real &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents). Moreover, line discontinuities generate evanescent modes with pure imaginary propagation constants (imaginary &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents) that decay along the line as you move away from the location of such discontinuities.&lt;br /&gt;
&lt;br /&gt;
In practical planar structures for which you want to calculate the scattering parameters, each port line normally supports one, and only one, dominant propagating mode. Multi-mode transmission lines are seldom used for practical RF and microwave applications. Nonetheless, each port line carries a superposition of incident and reflected dominant-mode propagating signals. An incident signal, by convention, is one that propagates along the line towards the discontinuity, where the phase reference plane is usually established. A reflected signal is one that propagates away from the port plane. Prony's method can be used to extract the incident and reflected propagating and evanescent exponential waves from the standing wave data. From a knowledge of the amplitudes (expansion coefficients) of the incident and reflected dominant propagating modes at all ports, the scattering matrix of the multi-port structure is then calculated. In Prony's method, the quality of the S parameter extraction results depends on the quality of the current samples and whether the port lines exhibit a dominant single-mode behavior. Clean current samples can be drawn in a region far from sources or discontinuities, typically a quarter wavelength away from the two ends of a feed line.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM71.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Minimum and maximum current locations of the standing wave pattern on a microstrip line feeding a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== De-Embedded Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM74.png|thumb|300px|The [[Planar Module]]'s De-embedded Source dialog]]&lt;br /&gt;
EM.Cube's [[Planar Module]] provides de-embedded sources for the exclusive purpose of accurate S parameter calculation based on Prony's method. A de-embedded source is indeed a gap source that is placed close to an open end of a feed line. The other end of the line is typically connected to a planar structure of interest. Like gap sources, de-embedded sources can be placed only on rectangle strip objects. '''During mesh generation, EM.Cube automatically extends the length of a port line that hosts a de-embedded source to about two effective wavelengths.''' This is done to provide enough length for formation of a clean standing wave current pattern. The effective wavelength of a transmission line for length extension purposes is calculated in a similar manner as for the planar mesh resolution. It is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where &amp;amp;epsilon;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivities of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivities of the two substrate layers just above and below the metallic trace. The host port line must always be open from one end to allow for its length extension. You have to make sure that there are no objects standing on the way of the extended port line to avoid any unwanted overlaps.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM72.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The mesh of a patch antenna excited with a de-embedded source. Note the feed line extension in the mesh view.&lt;br /&gt;
&lt;br /&gt;
You can define de-embedded source on metal (PEC), slot (PMC) and conductive sheet traces. To define a de-embedded source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the De-Embedded Source Dialog by right clicking on the '''De-Embedded Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' or arrays of such objects that are available in the project workspace. The box labeled '''Direction''' shows the direction the phase reference plane for S parameter calculation and determines which end of the host line to place the source at. You have the option to select either the positive or negative direction to bounce the source between the two ends of the line.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the phase reference plane from the end of the feed line object. The value of '''Offset''' by default is initially set to zero, meaning that the S parameters are calculated at the plane passing through the end of the feed line. Type in a new offset value or use the spin buttons to move the source arrow along the line away from its end. As you change the offset value, you can see the source arrow move along its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of slot traces) and '''Phase''' in degrees.&lt;br /&gt;
* In the '''Prony Mode Extraction''' section, you can specify the '''Number of Prony Modes''', which refers to the number of positive-negative exponential pairs that are extracted from the standing wave current data. The default value is 1 and represents the dominant quasi-TEM incident/reflected signal pair.&lt;br /&gt;
&lt;br /&gt;
In a planar project with de-embedded sources, if you do not define any ports, the feed lines will simply be extended, and the exciting gap sources will be placed at the open ends of these extended lines. Note that if you define a de-embedded source along with a port definition in your project, then all the other port-assigned sources of your project must be of the same de-embedded type. You can define de-embedded sources for coplanar waveguides (CPW) on slot traces. To do so, you need to place two collocated, de-embedded sources with identical offsets (same phase reference plane), same source amplitudes but 180° phase difference. Note that for CPW structures, setting the number of Prony modes to 2 can get you more accurate results. In this case, the two extracted Prony modes will include the incident and reflected, odd and even, propagating modes of the CPW.&lt;br /&gt;
&lt;br /&gt;
=== Using the Line Calculator ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides a simple calculator for analyzing planar transmission lines. It is based on the frequency domain finite difference (FDFD) technique. You can find the characteristic impedance, effective permittivity and guide wavelength of a TEM or quasi-TEM transmission line defined based on your project's background structure. Therefore, any arbitrary stack-up configuration with any number of substrate layers can be considered.&lt;br /&gt;
&lt;br /&gt;
To access the Line Calculator, first you have to select a metal (PEC) trace or a slot (PMC) trace in the Navigation Tree. Right click on the name of a trace and select '''Line Calc...''' from the contextual menu to open the Line Calc Dialog. You can analyze a metal strip line on any PEC trace or a coplanar waveguide (coupled slot lines) on any PMC trace. The 2D line structure to be analyzed by the FDFD method consists of the background structure of your project with a metal strip or CPW located at the Z-plane of your selected trace. Depending on whether your open the Line Calc dialog from a metal trace or a slot trace, a picture of a microstrip line or a CPW line appear at the top of the dialog, respectively. In the former case, you have to specify '''Strip Width''' in the project units. In the latter case, you have to specify '''Slot Width''', too. Keep in mind that the strip width is equal to the spacing between the two slot lines minus the width of individual slot lines. Clicking the Analyze button of the dialog evokes the FDTD simulator, and calculated results are reflected in the boxes labeled '''Zo''', '''Effective Permittivity''' and '''Guide Wavelength'''.&lt;br /&gt;
&lt;br /&gt;
When your background structure involves a slot (PMC) trace, then there is an infinite PEC ground plane at the plane of the slot trace. In that case, when you analyze a strip line on a metal trace, you must keep in mind that your stack-up configuration will be truncated by the slot's ground plane just for purpose of Z&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; calculation. A typical case of this type is a slot-coupled patch antenna fed by a microstrip line underneath the slot. From the point of view of the Line Calculator, the microstrip line lies on a substrate layer that is backed by the slot's ground plane and it does not see the substrate layer lying above the slot plane.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM75.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Analyzing a metal strip line using the line calculator.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM76.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Analyzing a coplanar waveguide using the line calculator.&lt;br /&gt;
&lt;br /&gt;
=== Short Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM110.png|thumb|250px|Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A short dipole is the simplest type of radiator, which consists of a short current element of length &amp;amp;amp;DELTA;l, aligned along a unit vector û and carrying a current of I Amperes. The product I&amp;amp;amp;DELTA;l is often called the dipole moment and gives a measure of the radiator's strength. A short dipole in the free space generates an azimuth-symmetric, almost omni-directional, far field. However, the radiated fields of a short dipole above a layered planar background structure are greatly altered by the presence of the substrate layers. Note that the electric and magnetic field radiated by a short dipole in the presence of a layered background structure are indeed nothing but the dyadic Green's functions of that structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{EJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{HJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM109(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To define a short dipole source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Short Dipoles''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' The Short Dipole Dialog opens up.&lt;br /&gt;
* In the section titled '''Source Location''', enter values for the X, Y and Z coordinates of the dipole's center. By default, a new dipole is placed at the origin of coordinates. As you change the coordinates using the spin buttons, you will see the dipole move in the project workspace.&lt;br /&gt;
* In the section titled '''Source Properties''', you can change the values of the dipole's '''Amplitude''' (in A), '''Phase''' (in degrees) and '''Length''' in the project's length units. A new dipole, by default, is Z-directed. You can change its orientation by entering the components of its unit vector in the three boxes labeled '''Direction Unit Vector'''.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM77.png|thumb|300px|[[Planar Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure with an incident plane wave to explore its scattering characteristics such as radar cross section (RCS). Exciting an antenna structure with an incident plane wave is equivalent to operating it in the &amp;amp;quot;receive&amp;amp;quot; mode. Plane wave excitation in the [[Planar Module]] is particularly useful for calculation of reflection and transmission coefficients of periodic surfaces. Note that the incident plane wave in your project bounces off the layered background structure and part of it also penetrates the substrate layers. The total incident field that is used to calculate the excitation vector of the MoM linear system is a superposition of the incident, reflected and transmitted plane waves at various regions of your planar structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{inc}(r)} = E_0 (\mathbf{\hat{e}_1} e^{ -jk_0 \mathbf{\hat{k}_1\cdot r} } + &lt;br /&gt;
R \mathbf{\hat{e}_2} e^{ -jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{inc}(r)} = \frac{E_0}{\eta_0} ( \mathbf{\hat{k}_1 \times \hat{e}_1} e^{-jk_0 \mathbf{\hat{k}_1 \cdot r} } + &lt;br /&gt;
R \mathbf{\hat{k}_2 \times \hat{e}_2} e^{-jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi&amp;lt;/math&amp;gt; is the characteristic impedance of the free space, '''k&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the unit propagation vectors of the incident plane wave and the wave reflected off the topmost substrate layer, respectively, and '''ê&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''ê&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the polarization vectors corresponding to the electric field of those waves. R is the reflection coefficient at the interface between the top half-space and the topmost substrate layer and has different values for the TM and TE polarizations.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the theta and phi angles of the propagation vector in the spherical coordinate system. The default values are &amp;amp;theta; = 180° and &amp;amp;phi; = 0°, representing a normally incident plane wave propagating along the -Z direction with a +X-polarized electric field vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization cases, the magnetic and electric fields are parallel to the XY plane, respectively. The left-hand (LCP) and right-hand (RCP) circular polarization cases are restricted to normal incidences only (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the '''Amplitude''' of the incident electric field in V/m and '''Phase''' in degrees. The default field Amplitude is 1 V/m, with a zero Phase.&lt;br /&gt;
* The direction of the Plane Wave is determined by the incident '''Theta''' and '''Phi''' angles expressed in the spherical coordinate system in degrees. You have to choose the '''Polarization''' of the plane wave from the four options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''and '''RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''. The components of the unit propagation vector are shown based on your choice of the angles of incidence. The components of the normalized E- and H-field vectors are also displayed based on your choice of polarization.&lt;br /&gt;
&lt;br /&gt;
== Running Planar MoM Simulations ==&lt;br /&gt;
&lt;br /&gt;
The first step of planning a planar MoM simulation is defining your planar structure. This consists of the background structure plus all the finite-sized metal and slot trace objects and possibly embedded metal or dielectric objects that are interspersed among the substrate layers. The background stack-up is defined in the Layer Stack-up dialog, which automatically opens up as soon as you enter the [[Planar Module]]. The metal and slot traces and embedded object sets are listed in the Navigation Tree, which also shows all the geometrical (CAD) objects you draw in the project workspace under each object group at different Z-planes.&lt;br /&gt;
&lt;br /&gt;
The next step is to decide on the excitation scheme. If your planar structure has one or more ports and you seek to calculate its port characteristics, then you have to choose one of the lumped source types or a de-embedded source. If you are interested in the scattering characteristics of your planar structure, then you must define a plane wave source. Before you can run a planar MoM simulation, you also need to decide on the project's observables. These are the simulation data that you expect EM.Cube to generate as the outcome of the numerical simulation. EM.Cube's [[Planar Module]] offers the following observables:&lt;br /&gt;
&lt;br /&gt;
* Current Distribution&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Far Fields (Radiation Patterns or Radar Cross Section)&lt;br /&gt;
* Huygens Surfaces&lt;br /&gt;
* Port Characteristics&lt;br /&gt;
* Periodic Characteristics&lt;br /&gt;
&lt;br /&gt;
If you run a simulation without having defined any observables, no data will be generated at the end of the simulation. Some observables require a certain type of excitation source. For example, port characteristics will be calculated only if the project contains a port definition, which in turn requires the existence of at least one gap or probe or de-embedded source. The periodic characteristics (reflection and transmission coefficients) are calculated only if the structure has a periodic domain and excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Simulation Modes ===&lt;br /&gt;
&lt;br /&gt;
The simplest simulation type in EM.Cube is an analysis. In this mode, the planar structure in your project workspace is meshed at the center frequency of the project. EM.Cube generates an input file at this single frequency, and the Planar MoM simulation engine is run once. Upon completion of the planar MoM simulation, a number of data files are generated depending on the observables you have defined in your project. An analysis is a single-run simulation.&lt;br /&gt;
&lt;br /&gt;
EM.Cube offers a number of multi-run simulation modes. In such cases, the Planar MoM simulation engine is run multiple times. At each engine run, certain parameters are varied and a collection of simulation data are generated. At the end of a multi-run simulation, you can graph the simulation results in EM.Grid or you can animate the 3D simulation data from the Navigation Tree. For example, in a frequency sweep, the frequency of the project is varied over its specified bandwidth. Port characteristics are usually plotted vs. frequency, representing your planar structure's frequency response. In an angular sweep, the &amp;amp;theta; or &amp;amp;phi; angle of incidence of a plane wave source is varied over their respective ranges. EM.Cube's [[Planar Module]] currently provides the following types of multi-run simulation modes:&lt;br /&gt;
&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
* Angular Sweep&lt;br /&gt;
* R/T Macromodel&lt;br /&gt;
* Huygens Sweep&lt;br /&gt;
* [[Optimization]]&lt;br /&gt;
* HDMR&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting a simulation mode in [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
To run a planar MoM analysis of your project structure, open the Run Simulation Dialog by clicking the '''Run''' [[File:run_icon.png]] button on the '''Simulate Toolbar''' or select '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt;''' '''Run''' or use the keyboard shortcut '''Ctrl+R'''. The '''Analysis''' option of the '''Simulation Mode''' dropdown list is selected by default. Once you click the '''Run''' button, the simulation starts. A new window, called the '''Output Window''', opens up that reports the different stages of simulation and the percentage of the tasks completed at any time. After the simulation is successfully completed, a message pops up and reports the end of simulation. In certain cases like calculating scattering parameters of a circuit or reflection / transmission characteristics of a periodic surface, some results are also reported in the Output Window. At the end of a simulation, you need to click the '''Close''' button of the Output Window to return to the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM78.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Stages Of A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar MoM simulation engine uses a particular formulation of the method of moments called mixed potential integral equation (MPIE). Due to high-order singularities, the dyadic Green's functions for electric fields generated by electric currents as well as the dyadic Green's functions for magnetic fields generated by magnetic currents have very slow convergence behaviors. Instead of using these slowly converging dyadic Green's function, the MPIE formulation uses vector and scalar potentials. These include vector electric potential '''A(r)''', scalar electric potential K&amp;lt;sup&amp;gt;&amp;amp;Phi;&amp;lt;/sup&amp;gt;'''(r)''', vector magnetic potential '''F(r)''' and scalar magnetic potential K&amp;lt;sup&amp;gt;&amp;amp;Psi;&amp;lt;/sup&amp;gt;'''(r)'''. These potentials have singularities of lower orders. As a result, they coverage relatively faster. The speed of their convergence is further increased drastically using special singularity extraction techniques.&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation consists of two major stages: matrix fill and linear system inversion. In the first stage, the moment matrix and excitation vector are calculated. In the second stage, the MoM system of linear equations is inverted using one of the several available matrix solvers to find the unknown coefficients of all the basis functions. The unknown electric and magnetic currents are linear superpositions of all these elementary solutions. These can be visualized in EM.Cube using the current distribution observables. Having determined all the electric and magnetic currents in your planar structure, EM.Cube can then calculate the near fields on prescribed planes. These are introduced as field sensor observables. The near-zone electric and magnetic fields are calculated using a spectral domain formulation of the dyadic Green's functions. Finally the far fields of the planar structure are calculated in the spherical coordinate system. These calculations are performed using the asymptotic form of the dyadic Green's functions using the &amp;amp;quot;stationary phase method&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Setting Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation involves a number of numerical parameters that take preset default values unless you change them. You can access these parameters and change their values by clicking the '''Settings''' button next to the '''Select Engine''' dropdown list in the [[Planar Module]]'s Simulation Run dialog. In most cases, you do not need to open this dialog and you can leave all the default numerical parameter values intact. However, it is useful to familiarize yourself with these parameters, as they may affect the accuracy of your numerical results.&lt;br /&gt;
&lt;br /&gt;
The Planar MoM Engine Settings Dialog is organized in a number of sections. Here we describe some of the numerical parameters. The &amp;amp;quot;'''Matrix Fill'''&amp;amp;quot; section of the dialog deals with the operations involving the dyadic Green's functions. You can set a value for the '''Convergence Rate for Integration''', which is 1E-5 by default. This is used for the convergence test of all the infinite integrals in the calculation of the Hankel transform of spectral-domain dyadic Green's functions. When the substrate is lossy, the surface wave poles are captured in the complex integration plane using contour deformation. You can change the maximum number of iterations involved in this deformed contour integration, whose default value is 20. When the substrate is very thin with respect to the wavelength, the dyadic Green's functions exhibit numerical instability. Additional singularity extraction measures are taken to avoid numerical instability but at the expense of increased computation time. By default, a thin substrate layer is defined to a have a thickness less than 0.01&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;, where &amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective wavelength. You can modify the definition of &amp;amp;quot;Thin Substrate&amp;amp;quot; by entering a value for '''Thin Substrate Threshold''' different than the default 0.01. The parameter '''Max Coupling Range''' determines the distance threshold in wavelength between the observation and source points after which the Green's interactions are neglected. This distance by default is set to 1,000 wavelengths. For electrically small structures, the phase variation across the structure may be negligible. In such cases, a fast quasi-static analysis can be carried out. You can set this threshold in wavelengths in the box labeled '''Max Dimensions for Quasi-Static Analysis'''.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Spectral Domain Integration&amp;amp;quot; section of the dialog, you can set a value to '''Max Spectral Radius in k0''', which has a default value of 30. This means that the infinite spectral-domain integrals in the spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; are pre-calculated and tabulated up to a limit of 30k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant. These integrals may converge much faster based on the specified Convergence Rate for Integration described earlier. However, in certain cases involving highly oscillatory integrands, much larger integration limits like 100k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; might be needed to warrant adequate convergence. For spectral-domain integration along the real k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; axis, the interval [0, Nk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;] is subdivided into a large number of sub-intervals, within each an 8-point Gauss-Legendre quadrature is applied. The next parameter, '''No. Radial Integration Divisions per k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;''', determines how small these intervals should be. By default, 2 divisions are used for the interval [0, k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;]. In other words, the length of each integration sub-interval is k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/2. You can increase the resolution of integration by increasing this value above 2. Finally, instead of 2D Cartesian integration in the spectral domain, a polar integration is performed. You can set the '''No. of Angular Integration Points''', which has a default value of 100.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM79.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Linear System Solvers ===&lt;br /&gt;
&lt;br /&gt;
After the MoM impedance matrix '''[Z]''' (not to be confused with the impedance parameters) and excitation vector '''[V]''' have been computed through the matrix fill process, the planar MoM simulation engine is ready to solve the system of linear equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[Z]}_{N\times N} \cdot \mathbf{[I]}_{N\times 1} = \mathbf{[V]}_{N\times 1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM81.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''[I]''' is the solution vector, which contains the unknown amplitudes of all the basis functions that represent the unknown electric and magnetic currents of finite extents in your planar structure. In the above equation, N is the dimension of the linear system and equal to the total number of basis functions in the planar mesh. EM.Cube's linear solvers compute the solution vector'''[I]''' of the above system. You can instruct EM.Cube to write the MoM matrix and excitation and solution vectors into output data files for your examination. To do so, check the box labeled &amp;amp;quot;'''Output MoM Matrix and Vectors'''&amp;amp;quot; in the Matrix Fill section of the Planar MoM Engine Settings dialog. These are written into three files called mom.dat1, exc.dat1 and soln.dat1, respectively.&lt;br /&gt;
&lt;br /&gt;
There are a large number of numerical methods for solving systems of linear equations. These methods are generally divided into two groups: direct solvers and iterative solvers. Iterative solvers are usually based on matrix-vector multiplications. Direct solvers typically work faster for matrices of smal to medium size (N&amp;amp;lt;3,000). EM.Cube's [[Planar Module]] offers five linear solvers:&lt;br /&gt;
&lt;br /&gt;
# LU Decomposition Method&lt;br /&gt;
# Biconjugate Gradient Method (BiCG)&lt;br /&gt;
# Preconditioned Stabilized Biconjugate Gradient Method (BCG-STAB)&lt;br /&gt;
# Generalized Minimal Residual Method (GMRES)&lt;br /&gt;
# Transpose-Free Quasi-Minimum Residual Method (TFQMR)&lt;br /&gt;
&lt;br /&gt;
Of the above list, LU is a direct solver, while the rest are iterative solvers. BiCG is a relatively fast iterative solver, but it works only for symmetric matrices. You cannot use BiCG for periodic structures or planar structures that contain both metal and slot traces at different planes, as their MoM matrices are not symmetric. The three solvers BCG-STAB, GMRES and TtFQMR work well for both symmetric and asymmetric matrices and they also belong to a class of solvers called '''Krylov Sub-space Methods'''. In particular, the GMRES method always provides guaranteed unconditional convergence.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, provides a &amp;amp;quot;'''Automatic'''&amp;amp;quot; solver option that picks the best method based on the settings and size of the numerical problem. For linear systems with a size less than N = 3,000, the LU solver is used. For larger systems, BiCG is used when dealing with symmetric matrices, and GMRES is used for asymmetric matrices. If the size of the linear system exceeds N = 15,000, the sparse version of the iterative solvers is used, utilizing a row-indexed sparse storage scheme. You can override the automatic solver option and manually set you own solver type. This is done using the '''Solver Type''' dropdown list in the &amp;amp;quot;'''Linear System Solver'''&amp;amp;quot; section of the Planar MoM Engine Settings dialog. There are also a number of other parameters related to the solvers. The default value of '''Tolerance of Iterative Solver''' is 1E-3, which can be increased for more ill-conditioned systems. The maximum number of iterations is usually expressed as a multiple of the systems size. The default value of '''Max No. of Solver Iterations / System Size''' is 3. For extremely large systems, sparse versions of iterative solvers are used. In this case, the elements of the matrix are thresholded with respect to the larges element. The default value of '''Threshold for Sparse Solver''' is 1E-6, meaning that all the matrix elements whose magnitude is less than 1E-6 times the large matrix elements are set equal to zero. There are two more parameters that are related to the Automatic Solver option. These are &amp;amp;quot;''' User Iterative Solver When System Size &amp;amp;gt;'''&amp;amp;quot; with a default value of 3,000 and &amp;amp;quot;''' Use SParse Storage When System Size &amp;amp;gt;''' &amp;amp;quot; with a default value of 15,000. In other words, you control the automatic solver when to switch between direct and iterative solvers and when to switch to the sparse version of iterative solvers.&lt;br /&gt;
&lt;br /&gt;
If your computer has an Intel CPU, then EM.Cube offers special versions of all the above linear solvers that have been optimized for Intel CPU platforms. These optimal solvers usually work 2-3 time faster than their generic counterparts. When you install EM.Cube, the option to use Intel-optimized solvers is already enabled. However, you can disable this option (e.g. if your computer has a non-Intel CPU). To do that, open the EM.Cube's Preferences Dialog from '''Menu &amp;amp;gt; Edit &amp;amp;gt; Preferences''' or using the keyboard shortcut '''Ctrl+H'''. Select the Advanced tab of the dialog and uncheck the box labeled &amp;amp;quot;''' Use Optimized Solvers for Intel CPU'''&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM82.png]]&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
Electric and magnetic currents are the fundamental output data of a planar MoM simulation. After the numerical solution of the MoM linear system, they are found using the solution vector '''[I]''' and the definitions of the electric and magnetic vectorial basis functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{[I]}_{N\times 1} = &lt;br /&gt;
\begin{bmatrix} I^{(J)} \\ \\ V^{(M)} \end{bmatrix} \quad \Rightarrow \quad&lt;br /&gt;
&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\mathbf{J(r)} = \sum_{n=1}^N I_n^{(J)} \mathbf{f_n^{(J)} (r)} \\&lt;br /&gt;
\\&lt;br /&gt;
\mathbf{M(r)} = \sum_{k=1}^K V_k^{(M)} \mathbf{f_k^{(M)} (r)}&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that currents are complex vector quantities. Each electric or magnetic current has three X, Y and Z components, and each complex component has a magnitude and phase. You can visualize the surface electric currents on metal (PEC) and conductive sheet traces, surface magnetic currents on slot (PMC) traces and vertical volume currents on the PEV vias and embedded dielectric objects. 3D color-coded intensity plots of electric and magnetic current distributions are visualized in the project workspace, superimposed on the surface of physical objects.&lt;br /&gt;
&lt;br /&gt;
In order to view the current distributions, you must first define them as observables before running the planar MoM simulation. To do that, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. At the top of the dialog and in the section titled '''Active Trace / Set''', you can select a trace or embedded object set where you want to observe the current distribution. You can also select the current map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for current amplitude and phase, while the latter generates a 3D vector plot.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM84.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Current Distribution dialog.&lt;br /&gt;
&lt;br /&gt;
Once you close the current distribution dialog, the label of the selected trace or object set is added under the '''Current Distributions''' node of the Navigation Tree. &lt;br /&gt;
&lt;br /&gt;
{{Note|You have to define a separate current distribution observable for each individual trace or embedded object set.}}&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the current distribution nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''J''') and magnetic ('''M''') currents as well as the total electric and magnetic currents defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{J_{tot}} | = \sqrt{|J_x|^2 + |J_y|^2 + |J_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{M_{tot}} | = \sqrt{|M_x|^2 + |M_y|^2 + |M_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can click on any current plot to visualize it in the project workspace. A legend box at the upper right corner of the screen shows the color map scale as well as the minimum, maximum, mean and standard deviation of the current data and its units. To exit the 3D plot view and return to EM.Cube's normal view, hit the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM85(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The current distribution map of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM86(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Vectorial (cone) visualization of the current distribution on a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
Once all the current distributions are known in a planar structure, the electric and magnetic fields can be calculated everywhere in that structure using the dyadic Greens's functions of the background structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{EJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{EM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{HJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{HM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM92(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above equations can be cast into the spectral domain as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{EJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{EM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{HJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{HM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM93(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Calculation of the near-zone fields (fields at the vicinity of the unknown currents) is done at the post-processing stage and in a Cartesian coordinate systems. These calculations involve doubly infinite spectral-domain integrals, which are computed numerically. As was mentioned earlier, EM.Cube's planar MoM engine rather uses a polar integration scheme, where the radial spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; is integrated over the interval [0, Mk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;], M being a large enough number to represent infinity, and the angular spectral variable t is integrated over the interval [0, 2&amp;amp;pi;]. You also saw some of the numerical parameters related to this spectral-domain integration scheme.&lt;br /&gt;
&lt;br /&gt;
{{Note|When the observation plane is placed very close to the radiating J and M currents, the Green's functions exhibit singularities, which translate to very slow convergence or divergence of the integrals. You need to be careful to place field sensors at adequate distances from these radiating sources.}}&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|300px|[[Planar Module]]'s Field Sensor dialog]]&lt;br /&gt;
In order to view the near field distributions, you must first define field sensor observables before running the planar MoM simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of near field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear.&lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.&lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a planar MoM simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{E_{tot}}| = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{H_{tot}}| = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules, near field calculations in the [[Planar Module]] usually takes substantial time. This is due to the fact that at the end of a planar MoM simulation, the fields are not available anywhere (as opposed to the [[FDTD Module]]), and their computation requires integration of complex dyadic Green's functions (as opposed to [[MoM3D Module]]'s free space Green's functions).&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM116.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone electric field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone magnetic field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
Unlike differential-based methods, MoM simulators do not need a radiation box to calculate the far field data. The far-zone fields are calculated directly by integrating the currents on the traces and across the embedded objects using the asymptotic form of the background structure’s dyadic Green's functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{ff}(r)} = \iiint_V \mathbf{ \overline{\overline{G}}_{EJ,ff}(r|r') \cdot J(r') } \, d\nu ' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM,ff}(r|r') \cdot M(r') } \, d\nu '&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \dfrac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; is the characteristic impedance of the free space. As can be seen from the above equations, the far fields have the form of a TEM wave propagating in the radial direction away from the origin of coordinates. This means that the far-field magnetic field is always perpendicular to the electric field and the propagation vector, which in this case happens to be the radial unit vector in the spherical coordinate system. In other words, one only needs to know the far-zone electric field and can easily calculate the far-zone magnetic field from it. In EM.Cube's mixed potential integral equation formulation, the far-zone electric field can be expressed in terms of the asymptotic form of the vector electric and magnetic potentials '''A''' and '''F''':&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{E^{ff}}(x,y,z) = j k_0 \eta_0 \hat{r} \times [\hat{r} \times \mathbf{A}(r \to \infty)] +&lt;br /&gt;
j k_0 \hat{r} \times \mathbf{F}(r \to \infty)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The asymptotic form of these vector potentials are calculated using the &amp;amp;quot;'''Method of Stationary Phase'''&amp;amp;quot; when k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;rarr; &amp;amp;infin;. In that case, one can use the approximation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_0 |\mathbf{r-r'}| \approx k_0 (r - \mathbf{\hat{r} \cdot r'}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM115.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After applying the stationary phase method, one can extract the spherical wave factor exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/r from the far-zone electric field, leaving the rest as functions of the spherical angles &amp;amp;theta; and &amp;amp;phi;. In other words, the far field is normalized to r, the distance from the field observation point to the origin. It is customary to express the far fields in spherical components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;. Note that the outward propagating, TEM-type, far fields do not have radial components, i.e. E&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 0.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\theta}}(\theta, \phi) = \cos\theta \cos\phi E_x + \cos\theta \sin\phi E_y - \sin\theta E_z &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\phi}}(\theta, \phi) = -\sin\phi E_x + \cos\phi E_y &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM114.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM118.png|thumb|300px|[[Planar Module]]'s Radiation Pattern dialog]]&lt;br /&gt;
Even though the planar MoM engine does not need a radiation box, you still have to define a &amp;amp;quot;Far Field&amp;amp;quot; observable for radiation pattern calculation. This is because far field calculations take time and you have to instruct EM.Cube to perform these calculations. To define a far field, right click the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...'''. The Radiation Pattern Dialog opens up. You may accept the default settings, or you can change the value of '''Angle Increment''', which is expressed in degrees. You can also choose to '''Normalize 2D Patterns'''. In that case, the maximum value of a 2D paten graph will have a value of 1; otherwise, the actual far field values in V/m will be used on the graph.&lt;br /&gt;
&lt;br /&gt;
Once a planar MoM simulation is finished, three far field items are added under the Far Field item in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the &amp;amp;quot;Total&amp;amp;quot; far field. The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the whole structure or parts of it. In a 3D radiation pattern plot, the fields are always normalized to the maximum value of the total far field for visualization purpose:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM89.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM119.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D polar radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM120.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D vectorial (cone) radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
The 2D radiation pattern graphs can be plotted from EM.Cube's '''Data Manager'''. A total of eight 2D radiation pattern graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section of Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM124.png|thumb|300px|Planar Module's Radar Cross Section dialog]]&lt;br /&gt;
&lt;br /&gt;
When a planar structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields of that planar structure. EM.Cube can also calculate the radar cross section (RCS) of a planar target:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{|E_{\theta}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{|E_{\phi}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{|E_{tot}^{scat}|^2}{|E^{inc}|^2} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM123.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note that in this case the RCS is defined for a finite-sized target in the presence of an infinite background structure.''' The scattered &amp;amp;theta; and &amp;amp;phi; components of the far-zone electric field are indeed what you see in the 3D far field visualization of radiation (scattering) patterns. Instead of radiation or scattering patterns, you can instruct EM.Cube to plot 3D visualizations of &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and the total RCS. To do so, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* At the end of a planar MoM simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This fourth plane cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D mono-static radar cross section plot of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Running a Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
In a frequency sweep, the operating frequency of a planar structure is varied during each sweep run. EM.Cube's [[Planar Module]] offers two types of frequency sweep: Uniform and Adaptive. In a uniform frequency sweep, the frequency range and the number of frequency samples are specified. The samples are equally spaced over the frequency range. At the end of each individual frequency run, the output data are collected and stored. At the end of the frequency sweep, the 3D data can be visualized and/or animated, and the 2D data can be graphed in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
To run a uniform frequency sweep, open the '''Simulation Run Dialog''', and select the '''Frequency Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the frequency sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Frequency Settings''' dialog. The '''Frequency Range'''is initially set equal to your project's center frequency minus and plus half bandwidth. But you can change the values of '''Start Frequency'''and '''End Frequency''' as well as the '''Number of Samples'''. The dialog offers two options for '''Frequency Sweep Type''': '''Uniform''' or '''Adaptive'''. Select the former type. It is very important to note that in a MoM simulation, changing the frequency results in a change of the mesh of the structure, too. This is because the mesh density is defined in terms of the number of cells per effective wavelength. By default, during a frequency sweep, EM.Cube fixes the mesh density at the highest frequency, i.e., at the &amp;amp;quot;End Frequency&amp;amp;quot;. This usually results in a smoother frequency response. You have the option to fix the mesh at the center frequency of the project or let EM.Cube &amp;amp;quot;remesh&amp;amp;quot; the planar structure at each frequency sample during a frequency sweep. You can make one of these three choices using the radio button in the '''Mesh Settings''' section of the dialog. Closing the Frequency Settings dialog returns you to the Simulation Run dialog, where you can start the planar MoM frequency sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Frequency Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Adaptive Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
Frequency sweeps are often performed to study the frequency response of a planar structure. In particular, the variation of scattering parameters like S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; (return loss) and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; (insertion loss) with frequency are of utmost interest. When analyzing resonant structures like patch antennas or planar filters over large frequency ranges, you may have to sweep a large number of frequency samples to capture their behavior with adequate details. The resonant peaks or notches are often missed due to the lack of enough resolution. EM.Cube's [[Planar Module]] offers a powerful adaptive frequency sweep option for this purpose. It is based on the fact that the frequency response of a physical, causal, multiport network can be represented mathematically using a rational function approximation. In other words, the S parameters of a circuit exhibit a finite number of poles and zeros over a given frequency range. EM.Cube first starts with very few frequency samples and tries to fit rational functions of low orders to the scattering parameters. Then, it increases the number of samples gradually by inserting intermediate frequency samples in a progressive manner. At each iteration cycle, all the possible rational functions of higher orders are tried out. The process continues until adding new intermediate frequency samples does not improve the resolution of the &amp;amp;quot;S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;&amp;amp;quot; curves over the given frequency range. In that case, the curves are considered as having converged.&lt;br /&gt;
&lt;br /&gt;
You must have defined one or more ports for your planar structure run an adaptive frequency sweep. Open the Frequency Settings dialog from the Simulation Run dialog and select the '''Adaptive''' option of '''Frequency Sweep Type'''. You have to set values for '''Minimum Number of Samples''' and '''Maximum Number of Samples'''. Their default values are 3 and 9, respectively. You also set a value for the '''Convergence Criterion''', which has a default value of 0.1. At each iteration cycle, all the S parameters are calculated at the newly inserted frequency samples, and their average deviation from the curves of the last cycle is measured as an error. When this error falls below the specified convergence criterion, the iteration is ended. If EM.Cube reaches the specified maximum number of iterations and the convergence criterion has not yet been met, the program will ask you whether to continue the process or exit it and stop.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large frequency ranges, you may have to increase both the minimum and maximum number of samples. Moreover, remeshing the planar structure at each frequency may prove more practical than fixing the mesh at the highest frequency.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Settings adaptive frequency sweep parameters in [[Planar Module]]'s Frequency Settings Dialog.&lt;br /&gt;
&lt;br /&gt;
=== Examining Port Characteristics ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure is excited by gap sources or probe sources or de-embedded sources, and one or more ports have been defined, the planar MoM engine calculates the scattering, impedance and admittance (S/Z/Y) parameters of the designated ports. The scattering parameters are defined based on the port impedances specified in the project's Port Definition dialog. If more than one port has been defined in the project, the S/Z/Y matrices of the multiport network are calculated. Note that the S/Z/Y matrices of an N-port structure are related to each other through the following equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM121.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively, and &amp;lt;math&amp;gt;\mathbf{[\sqrt{Z_0}]}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM122.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the values of S/Z/Y parameters and VSWR data are calculated and reported in the output message window. The S, Z and Y parameters are written into output ASCII data files of complex type with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Every file begins with a header consisting of a few comment lines that start with the &amp;amp;quot;#&amp;amp;quot; symbol. The complex values are arranged into two columns for the real and imaginary parts. In the case of multiport structures, every single element of the S/Z/Y matrices is written into a separate complex data file. For example, you will have data files like S11.CPX, S21.CPX, ..., Z11.CPX, Z21.CPX, etc. The VSWR data are saved to an ASCII data file of real type with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension called, VSWR.DAT.&lt;br /&gt;
&lt;br /&gt;
If you run an analysis, the port characteristics have single complex values, which you can view using EM.Cube's data manager. However, there are no curves to graph. You can plot the S/Z/Y parameters and VSWR data when you have data sets, which are generated at the end of any type of sweep including a frequency sweep. In that case, the &amp;amp;quot;.CPX&amp;amp;quot; files have multiple rows corresponding to each value of the sweep parameter (e.g. frequency). EM.Cube's 2D graph data are plotted in EM.Grid, a versatile graphing utility. You can plot the port characteristics directly from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting port characteristics data to plot from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
You can also see a list of all the port characteristics data files in EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. By default, the S parameters are plotted as double magnitude-phase graphs, while the Y and Z parameters are plotted as double real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You can change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM129.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Data Manager showing a list of the port characteristics data files.&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it in the Data Manager and click its '''Edit''' button. In the Edit File Dialog, choose one of the options provided in the dropdown list labeled '''Graph Type'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM130.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Changing the graph type by editing a data file's properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM134.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plotted on a Smith Chart graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
=== Rational Interpolation Of Scattering Parameters ===&lt;br /&gt;
&lt;br /&gt;
The adaptive frequency sweep described earlier is an iterative process, whereby the Planar MoM simulation engine is run at a certain number of frequency samples at each iteration cycle. The frequency samples are progressively built up, and rational fits for these data are found at each iteration cycle. A decision is then made whether to continue more iterations. At the end of the whole process, a total number of scattering parameter data samples have been generated, and new smooth data corresponding to the best rational fits are written into new data files for graphing. EM.Cube's [[planar Module]] also allows you to generate a rational fit for all or any existing scattering parameter data as a post-processing operation without a need to run additional simulation engine runs.&lt;br /&gt;
&lt;br /&gt;
You can interpolate all the scattering parameters together or select individual parameters. You do this post-processing operation from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select Smart Fit. At the top of the Smart Fit Dialog, there is a dropdown list labeled '''Interpolate''', which gives a list of all the available S parameter data for rational interpolation. The default option is &amp;amp;quot;All Available Parameters&amp;amp;quot;. Then you see a box labeled '''Number of Available Samples''', whose value is read from the data content of the selected complex .CPX data file. Based on the number of available data samples, the dialog reports the '''Maximum Interpolant Order'''. You can choose any integer number for '''Interpolant Order''', from 1 to the maximum allowed. &lt;br /&gt;
&lt;br /&gt;
{{Note|Interpolant order more than 15 will suffer from numerical instabilities even if you have a very large number of data samples.}}&lt;br /&gt;
&lt;br /&gt;
You can use the '''Update''' button of the dialog to generate the interpolated data for a given order. The new data are written to a complex data file with the same name as the selected S parameter and a &amp;amp;quot;'''_RationalFit'''&amp;amp;quot; suffix. While this dialog is still open, you can plot the new data either directly from the Navigation Tree or from the Data Manager. If you are not satisfied with the results, you can return to the Smart Fit dialog and try a higher or lower interpolant order and compare the new data.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM131.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Smart Fit dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM133(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of a two-port structure in magnitude-phase format.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM132(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The smoothed version of the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of the two-port structure using EM.Cube's Smart Fit.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Output Simulation Data ===&lt;br /&gt;
&lt;br /&gt;
Depending on the source type and the types of observables defined in a project, a number of output data are generated at the end of a planar MoM simulation. Some of these data are 2D by nature and some are 3D. The output simulation data generated by EM.Cube's [[Planar Module]] can be categorized into the following groups:&lt;br /&gt;
&lt;br /&gt;
* '''Port Characteristics''': S, Z and Y Parameters and Voltage Standing Wave Ratio (VSWR)&lt;br /&gt;
* '''Radiation Characteristics''': Radiation Patterns, Directivity, Total Radiated Power, Axial Ratio, Main Beam Theta and Phi, Radiation Efficiency, Half Power Beam Width (HPBW), Maximum Side Lobe Level (SLL), First Null Level (FNL), Front-to-Back Ratio (FBR), etc.&lt;br /&gt;
* '''Scattering Characteristics''': Bi-static and Mono-static Radar Cross Section (RCS)&lt;br /&gt;
* '''Periodic Characteristics''': Reflection and Transmission Coefficients&lt;br /&gt;
* '''Current Distributions''': Electric and magnetic current amplitude and phase on all metal and slot traces and embedded objects&lt;br /&gt;
* '''Near-Field Distributions''': Electric and magnetic field amplitude and phase on specified planes and their central axes&lt;br /&gt;
&lt;br /&gt;
At the end of an analysis, the 2D quantities usually have a single value that is written into an ASCII data file. Complex-valued quantities are written into complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Real-valued quantities are written into real data files with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension. Polar 2D radiation pattern data and some other radiation characteristics are written into angular data files with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; extension. In this latter file type, polar data are stored as functions of an angle expressed in degrees. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). If a sweep simulation involves N sweep [[variables]], then the first N columns of the output data files show the samples of those sweep [[variables]]. All the 2D data files are listed in the '''2D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
3D output data, on the other hand, are defined as functions of the space coordinates and are usually of vectorial nature. Cartesian-type and mesh-type data such as current distributions and near-field field distributions are expressed as functions of the Cartesian (X, Y, Z) coordinates. Spherical-type data like far-field radiation patterns and RCS are expressed as functions of the spherical angles (&amp;amp;theta;, &amp;amp;phi;). The 3D radiation patterns are written into a file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension. This file contains the complex values of the &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field (E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;) as well as the total far field magnitude as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The 3D RCS patterns are written into a file with a &amp;amp;quot;'''.RCS'''&amp;amp;quot; extension. This file contains the real values of the &amp;amp;theta;- and &amp;amp;phi;-polarized RCS values as well as the total RCS as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The current distributions are written into data files with a &amp;amp;quot;'''.CUR'''&amp;amp;quot; extension. They contain the real and imaginary parts of the X, Y and Z components of electric ('''J''') and magnetic ('''M''') current on each cells together with the definition of all the node coordinates and node indices of the cells. The near-field distributions are written into data files with a &amp;amp;quot;'''.SEN'''&amp;amp;quot; extension. They contain the amplitude and phase of the X, Y and Z components of electric ('''E''') and magnetic ('''H''') fields as functions of the coordinates of sampling points. All the 3D data files are listed in the '''3D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The 3D Data Files tab of EM.Cube's Data Manager.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM139.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Viewing the contents of a mesh-type 3D data file in Data Manager.&lt;br /&gt;
&lt;br /&gt;
=== Standard vs. Custom Output ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a number of computed quantities are designated as &amp;amp;quot;Standard Output&amp;amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[File:functions_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Functions...'''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[File:custom_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Custom Output...'''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add''' button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit''' button, or you can delete any parameter from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
=== Viewing &amp;amp;amp; Visualizing Various Output Data Types ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a variety of 2D and 3D output data are generated. Some of these can be visualized or graphed directly from the Navigation Tree, while the others can only be accessed from the Data Manager. All of EM.Cube's simulation data are always written into ASCII data files that you can open and inspect or edit. Lists of these 2D and 3D data files appear under Data Manager's various tabs. The generated data also include all of [[Planar Module]]'s legitimate standard outputs that the simulation engine can compute given the specified source and observable types as well as all of your own previously defined custom output parameters. Note that in this release of EM.Cube, all the custom outputs are real-type data. Each custom output is written into a separate real data file with the same name as the parameter's given label and a &amp;amp;quot;'''.DAT'''&amp;amp;quot; file extension. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot its graph in '''EM.Grid'''. You can also view the contents of a data file by selecting its row in th file list and clicking the '''View''' button of the dialog or by simply double-clicking the highlighted row. This opens up a new window containing a convenient spreadsheet that gives a tabular view of the contents of the selected data file. There are a large number of data operations and manipulations that you can perform on the data content including matrix, calculus and statistical calculations as well as computing and plotting new datasets using the &amp;amp;quot;Compute&amp;amp;quot; feature of the spreadsheet. You can make multiple file selection using the keyboard's '''Ctrl''' and '''Shift''' keys.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing an angular file selected and highlighted for further action.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Data Manager's spreadsheet showing the contents of an angular data file.&lt;br /&gt;
&lt;br /&gt;
The 2D output data include real or complex quantities like various port, radiation, scattering and periodic characteristics. At the end of an analysis, most .CPX and .DAT data files have a single complex or real value, respectively. in other words, there are no curves to plot. Exceptions are Cartesian 2D radiation pattern or RCS data files along the principal and user define phi-cut planes, as well as polar 2D radiation pattern or RCS data files of angular type with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; file extension. These files contain the radiation pattern or RCS data as a function of some relevant angle in the specified plane. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). You can plot graphs of the 2D output data files that contain more than one row in '''EM.Grid'''. Each data file has a default graph type. Real data are plotted on EM.Grid's Cartesian graphs. Complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension are plotted on double Cartesian graphs of &amp;amp;quot;'''Magnitude-Phase'''&amp;amp;quot; type, showing the magnitude in dB and phase in radians. You can change the complex data's graph type to the &amp;amp;quot;'''Real-Imaginary'''&amp;amp;quot; or &amp;amp;quot;'''Smith Chart'''&amp;amp;quot; by selecting its entry in the Data Manager and clicking the '''Edit'''button to open the &amp;amp;quot;Edit File Properties Dialog&amp;amp;quot;. Angular data files like polar 2D radiation patterns or RCS, by default, are plotted on EM.Grid's &amp;amp;quot;'''Polar'''&amp;amp;quot; graphs. Note that real data can be graphed on bar charts, too, just as angular can alternatively be graphed on polar stem charts.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A 2D radiation pattern polar graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's 3D output simulation data usually have a vectorial nature and are defined as functions of the Cartesian or spherical space coordinates. At the end of a planar MoM simulation, you can view 3D visualizations of the vectorial output data such as current distributions, near-field field distributions, far-field radiation patterns and RCS in EM.Cube's project workspace by clicking on the corresponding observable entries in the Navigation Tree. When you run a sweep simulation of some sort, multiple 3D plots appear on the Navigation Tree representing all the sweep variable samples. You can animate these 3D visualization plots very conveniently from the Navigation Tree. To do so, right click on an observable's name in the Navigation Tree and select the '''Animation''' item from the contextual menu. Make sure that you right click on the observable's parent node, not on one of its child components corresponding to the sweep variable samples. The 3D plot in the project workspace starts to animate and continues forever until to stop it. A new window called &amp;amp;quot;''' Animation Controls Dialog'''&amp;amp;quot; opens up at the lower right corner of the EM.Cube desktop. This dialog allows you to control the animation speed using a box labeled '''Rate''', whose value multiplied by 100 milliseconds indeed gives the frame duration. You can speed up the animation or slow it down from the default rate of one frame per 300ms. The box labeled '''Sample''' show the current frame's plot label at any time. You can pause the animation, rewind it to the first frame, fast-forward it to the last frame or manually step it through back and forth using the movement buttons marked with the symbols |&amp;amp;lt;, &amp;amp;lt;&amp;amp;lt;, ||, &amp;amp;gt;&amp;amp;gt;,&amp;amp;gt;|.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM135.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Animating 3D radiation patterns as the send of a frequency sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM136.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep ===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the planar MoM simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweep, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed later, parametric sweeps are simple and straightforward and do not required careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;amp;quot;expression&amp;amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;amp;quot;formal&amp;amp;quot; option, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[File:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; [[Variables]]...'''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;amp;quot;Add Variable Dialog&amp;amp;quot;. Choose a '''Name''' for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;amp;quot;Variable List&amp;amp;quot;. You can also see the '''Current Value''' of every variable at any time in the Variable as dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit''' button or indirectly during a parametric sweep. In the former case, you have to click the '''Update''' button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, trace and object set dialogs, stack-up dialog or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;amp;quot;Variable List&amp;amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;amp;quot;current Value&amp;amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;amp;quot;Independent&amp;amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete''' and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;amp;quot;Start&amp;amp;quot; and &amp;amp;quot;End&amp;amp;quot; value and is incremented by a predetermined &amp;amp;quot;Step&amp;amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution''' is defined by &amp;amp;quot;Minimum&amp;amp;quot; and &amp;amp;quot;Maximum&amp;amp;quot; values, while '''Normal (Gaussian) Distribution''' is defined by a &amp;amp;quot;Mean&amp;amp;quot; and &amp;amp;quot;Standard Deviation&amp;amp;quot;. You need to specify the &amp;amp;quot;Number of Samples&amp;amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;amp;quot;Define Sweep Variable Dialog&amp;amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete''' and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up''' and '''Move Down''' buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;amp;quot;fake&amp;amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. If you run a dry run while EM.Cube is in the mesh view mode, then the planar mesh of your structure is updated for each combination of the sweep variable samples during the dry run process. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Optimizing Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (Optional but Highly Recommended) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;amp;lt;, &amp;amp;lt;=, &amp;amp;gt; or &amp;amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;amp;quot;'''=='''&amp;amp;quot; are regarded a &amp;amp;quot;'''Goals'''&amp;amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;amp;quot;'''Target Value'''&amp;amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;amp;quot;(LHS - RHS) == 0&amp;amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;amp;quot;non-Equal&amp;amp;quot; logical operators are regarded a &amp;amp;quot;'''Constraints'''&amp;amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[File:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;amp;quot;=== (Equal To)&amp;amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit''' button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation Run Dialog''', and select the '''[[Optimization]]''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;amp;quot;'''[[Optimization]] Algorithm'''&amp;amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm''' and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size''' as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;amp;quot;Define [[Optimization]] Variable Dialog&amp;amp;quot; opens up, where you have to set the '''Minimum'''and '''Maximum'''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog to change those value. If you check the box labeled &amp;amp;quot;''' Update [[Variables]] with Optimal Values'''&amp;amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;amp;quot;saturated&amp;amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;amp;quot;'''Exit Local Min Trap'''&amp;amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;amp;quot;'''Error Function'''&amp;amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;amp;quot;'''Maximum Error'''&amp;amp;quot; value for the objective function, which terminates the process as &amp;amp;quot;converged&amp;amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals''' and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those cases, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute''' button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals''' or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
== Periodic Planar Structures &amp;amp;amp; Antenna Arrays ==&lt;br /&gt;
&lt;br /&gt;
=== Finite Arrays vs. Infinite Periodic Structures ===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that exhibits a repeated geometric pattern. It is made up of identical elements that are arranged in the form of a periodic lattice. The spacing between the elements is denoted by Sx along the X direction and Sy along the Y direction. The number of elements is denoted by Nx along the X direction and Ny along the Y direction (i.e. a total of Nx.Ny elements). If Nx and Ny are finite numbers, you have a finite-sized periodic structure, which is constructed using an &amp;amp;quot;'''Array Object'''&amp;amp;quot; in EM.Cube. If Nx and Ny are infinite, you have an infinite periodic structure with periods Sx and Sy along the X and Y directions, respectively. An infinite periodic structure in EM.Cube is represented by a &amp;amp;quot;'''Periodic Unit Cell'''&amp;amp;quot;. Periodic structures have many applications including phased array antennas, frequency selective surfaces (FSS), electromagnetic bandgap structures (EBG), metamaterial structures, etc. EM.Cube allows you to model both finite and infinite periodic structures.&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; Real practical periodic structures obviously have finite extents. You can easily and quickly construct finite-sized arrays of arbitrary complexity using EM.Cube's &amp;amp;quot;Array Tool&amp;amp;quot;. However, for large values of Nx and Ny, the size of the computational problem may rapidly get out of hand and become impractical. For very large periodic arrays, you can alternatively analyze a unit cell subject to the periodic boundary conditions and calculate the current distribtutions and far fields of the periodic unit cell. For their radiation patterns, you can multiply the &amp;amp;quot;Element Pattern&amp;amp;quot; by an &amp;amp;quot;Array Factor&amp;amp;quot; that captures the finite extents of the structure. In many cases, an approximation of this type works quite well. But in some other cases, the edge effects and particularly the field behavior at the corners of the finite-sized array cannot be modeled accurately. Periodic surfaces like FSS, EBG and metamaterials are also modeled as infinite periodic structures, for which one can define reflection and transmission coefficients. For this purpose, the periodic structure is excited using a plane wave source. Reflection and transmission coefficients are typically functions of the angles of incidence.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
The straightforward approach to the modeling of finite-sized antenna arrays is to use the full-wave method of moments (MoM). This requires building an array of radiating elements using EM.Cube's '''Array Tool''' and feeding the individual array elements using some type of excitation. For example, if the antenna elements are excited using a gap source or a probe source, you can assign a certain array weight distribution among the elements as well as phase progression among the elements along the X and Y directions. EM.Cube currently offers uniform, binomial, Chebyshev and (arbitrary) data file-based weight distribution types. The full-wave MoM approach is very accurate and takes into account all the inter-element coupling effects. At the end of a planar MoM simulation of the array structure, you can plot the radiation patterns and other far field characteristics of the antenna array just like any other planar structure.&lt;br /&gt;
&lt;br /&gt;
The radiation pattern of antenna arrays usually has a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' such as first null level and first null beam width. To have EM.Cube calculate all such parameters, you must check the relevant boxes in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. In particular, you can plot such data files at the end of a sweep simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM91.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
Another approach to modeling a finite-sized antenna array is to analyze one of its elements and use the &amp;amp;quot;Array Factor&amp;amp;quot; concept to calculate its radiation patterns. This method ignores any inter-element coupling effects. In other words, you can regard the structure in the project workspace as a single isolated radiating element. To define an array factor, open the '''Radiation Pattern Dialog''' of the project. In the section titled &amp;amp;quot;'''Impose Array Factor'''&amp;amp;quot;, you will see a default value of 1 for the '''Number of Elements''' along the X and Y directions. This implies a single radiator, representing the structure in the project workspace. There are also default zero values for the '''Element Spacing''' along the X and Y directions. You should change both the number of elements and element spacing in the X and Y directions to define a finite array lattice. For example, you can define a linear array by setting the number of elements to 1 in one direction and entering a larger value for the number of elements along the other direction. Keep in mind that when using an array factor for far field calculation, you cannot assign non-uniform amplitude or phase distributions to the array elements. For that purpose, you have to define an array object with a source array.&lt;br /&gt;
&lt;br /&gt;
=== Defining A Periodic Domain ===&lt;br /&gt;
&lt;br /&gt;
In general, a planar structure in EM.Cube's [[Planar Module]] is assumed to have open boundaries. This means that the structure has infinite dimensions along the X and Y directions. In other words, the layers of the background structure extend to infinity, while the traces and embedded object sets have finite sizes. Along the Z direction, a planar structure can be open-boundary, or it may be truncated by PEC ground planes from the top or bottom or both. You can define a planar structure to be infinitely periodic along the X and Y directions. In this case, you only need to define the periodic unit cell. EM.Cube automatically reproduces the unit cell infinitely and simulates it using a spectral domain periodic version of the Green's functions of your project's background structure.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, you must open [[Planar Module]]'s Periodicity Settings Dialog by right clicking the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Periodicity Settings...''' from the contextual menu or by selecting '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt; 'Computational Domain &amp;amp;gt; Periodicity Settings...''' from the Menu Bar. In the Periodicity Settings Dialog, check the box labeled '''Periodic Structure'''. This will enable the section titled''&amp;amp;quot;''Lattice Properties&amp;amp;quot;. You can define the periods along the X and Y axes using the boxes labeled '''Spacing'''. You can also define values for periodic '''Offset''' along the X and Y directions, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
In a periodic structure, the virtual domain is replaced by a default blue periodic domain that is always centered around the origin of coordinates. Keep in mind that the periodic unit cell must always be centered at the origin of coordinates. The relative position of the structure within this centered unit cell will change the phase of the results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM99.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Regular vs. Generalized Periodic Lattices ===&lt;br /&gt;
&lt;br /&gt;
Besides conventional rectangular lattices, EM.Cube's [[Planar Module]] can also handle complex non-rectangular periodic lattices. For example, many frequency selective surfaces have skewed grids. In order to simulate skewed-grid periodic structures, the definition of the grid has to be generalized. A periodic structure is a repetition of a basic structure (unit cell) at pre-determined locations. Let these locations be described by (x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;, y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;), where m and n are integers ranging from -8 to 8. For a general skewed grid, x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; and y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; can be described by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_{mn} = m\Delta x + n \Delta x'&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;y_{mn} = m\Delta y + n \Delta y'&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; is the primary offset in the X direction (X Spacing) controlled by index m and &amp;lt;math&amp;gt;\Delta x'&amp;lt;/math&amp;gt; is the secondary offset in the X direction (X Offset) controlled by index n. The meanings of &amp;lt;math&amp;gt;\Delta y&amp;lt;/math&amp;gt; (Y Spacing) and &amp;lt;math&amp;gt;\Delta y'&amp;lt;/math&amp;gt; (Y Offset) are similar with the roles of indices m and n interchanged. To illustrate how to use this definition, consider an example of an equilateral triangular grid with side length L as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:image121.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of an equilateral triangular periodic lattice.&lt;br /&gt;
&lt;br /&gt;
From the figure, it is obvious that the y coordinate of each row is fixed and identical, thus &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. While in each row the spacing between adjacent elements is L, there is an offset of L/2 between the consecutive rows. This results in &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;. To sum up, an equilateral triangular grid can be described by &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. In an EM.Cube [[Planar Module]] project, the secondary offsets are equal to zero by default, implying a rectangular lattice. You can change the values of the secondary offsets using the boxes labeled '''X Offset''' and '''Y Offset''' in the '''Periodicity Settings Dialog''', respectively. Triangular and Hexagonal lattices are popular special cases of the generalized lattice type. In a triangular lattice with alternating Rows, &amp;lt;math&amp;gt;\Delta x' = \Delta x/2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. A Hexagonal lattice (with alternating rows) is a special case of triangular lattice in which &amp;lt;math&amp;gt;\Delta y = \sqrt{3\Delta x / 2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Interconnectivity Among Unit Cells ===&lt;br /&gt;
&lt;br /&gt;
In many cases, your planar structure's traces or embedded objects are entirely enclosed inside the periodic unit cell and do not touch the boundary of the unit cell. In EM.Cube's [[Planar Module]], you can define periodic structures whose unit cells are interconnected. Interconnectivity applies only to PEC, PMC and conductive sheet traces, and embedded object sets are excluded. Note that in a periodic planar structure, your objects cannot cross the periodic domain. However, you can arrange objects with linear edges such as one or more flat edges line up with the domain's bounding box. In such cases, EM.Cube's planar MoM mesh generator will take into account the continuity of the currents across the adjacent connected unit cells and will create the connection basis functions at the right and top boundaries of the unit cell. It is clear that due to periodicity, the basis functions do not need to be extended at the left or bottom boundaries of the unit cell.&lt;br /&gt;
&lt;br /&gt;
As an example, consider the periodic structure in the figure below that shows a metallic screen or wire grid. The unit cell of this structure can be defined as a rectangular aperture in a PEC ground plane (marked as Unit Cell 1). In this case, the rectangle object is defined as a slot trace. Alternatively, you can define a unit cell in the form of a microstrip cross on a metal trace. In the latter case, however, the microstrip cross should extend across the unit cell and connect to the crosses in the neighboring cells in order to provide current continuity.&lt;br /&gt;
&lt;br /&gt;
[[File:image122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Modeling a periodic screen using two different types of unit cell.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per3_tn.png|400px]] [[File:pmom_per4_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The PMC aperture unit cell and its planar mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per5_tn.png|400px]] [[File:pmom_per6_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The PEC cross unit cell and its planar mesh. Notice the cell extensions at the unit cell's boundaries.&lt;br /&gt;
&lt;br /&gt;
=== Periodic MoM Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the case of an infinite periodic planar structure, the field equations can be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E(r) = E^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{H(r) = H^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM94.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J_{mn}(r) = J_{mn}}(x,y,z) = \mathbf{J_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{M_{mn}(r) = M_{mn}}(x,y,z) = \mathbf{M_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; -\infty &amp;lt; m, n &amp;lt; \infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM95(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, &amp;lt;math&amp;gt;\mathbf{J_{00}(r)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{M_{00}(r)}&amp;lt;/math&amp;gt; are the periodic unit cell's electric and magnetic currents that are repeated everywhere in space on a rectangular lattice with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. &amp;lt;math&amp;gt;k_{x00}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;k_{y00}&amp;lt;/math&amp;gt; are the periodic propagation constants along the X and Y directions, respectively, and they are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{x00} = k_0 \sin\theta \cos\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{y00} = k_0 \sin\theta \sin\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM96(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;theta; and &amp;amp;phi; are the beam scan angles in the case of periodic excitation of lumped sources, or they are the spherical angles of incidence in the case of a plane wave source illuminating the periodic structure. Using the infinite summations, one can define periodic dyadic Green's functions in the spectral domain in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ \overline{\overline{G}}_{\mu \nu}^{PER} (r|r') } =&lt;br /&gt;
\frac{1}{S_x S_y} \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\mathbf{ \tilde{\overline{\overline{G}}}_{\mu \nu} } (k_x, k_y, z|z')&lt;br /&gt;
e^{-j[k_{xm}(x-x') + k_{yn}(y-y')]}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
k_{xm} = k_{x00} + \frac{2\pi m}{S_x} \quad \text{and} \quad&lt;br /&gt;
k_{ym} = k_{y00} + \frac{2\pi m}{S_y}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM97.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above doubly infinite periodic Green's functions are said to be expressed in terms of &amp;amp;quot;Floquet Modes&amp;amp;quot;. The exact formulation involves an infinite set of these periodic Floquet modes. During the MoM matrix fill process for a periodic structure, a finite number of Floquet modes are calculated. By default, EM.Cube's planar MoM engine considers M&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; = M&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; = 25. This implies a total of 51 modes along the X direction and a total of 51 modes along the Y direction, or a grand total of 51&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 2,601 Floquet modes. You can increase the number of Floquet modes for your project from the Planar MoM Engine Settings Dialog. In the section titled &amp;amp;quot;Periodic Simulation&amp;amp;quot;, you can change the values of '''Number of Floquet Modes''' in the two boxes designated X and Y.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM98.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Changing the number of Floquet modes from the Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Phased Arrays ===&lt;br /&gt;
&lt;br /&gt;
Earlier, it was argued that you can calculate the radiation pattern of a finite antenna array by modeling a single isolated element and multiplying its &amp;amp;quot;Element Pattern&amp;amp;quot; by the &amp;amp;quot;Array Factor&amp;amp;quot;. This method gives acceptable results only when the inter-element coupling effects are negligible, as it does not take into account such effects. Planar antennas printed on dielectric substrates usually exhibit inter-element coupling effects due to the propagation of the substrate surface wave modes. If your finite-sized array is very large and you cannot afford a straightforward full-wave MoM simulation of it, you can alternatively model it as an infinite array represented by a periodic unit cell. In this case, you calculate the radiation pattern of the unit cell structure and use it as the &amp;amp;quot;Element Pattern&amp;amp;quot; in conjunction with the &amp;amp;quot;Array Factor&amp;amp;quot;. The periodic Green's functions, in this case, capture the inter-element coupling effects. What is missing from this picture is the finite edge effects and/or corner effects, if any.&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a gap or probe source, it acts like an infinite periodic phased array. All the periodic replicas of the unit cell structure are excited. You can even impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the gap or probe source. At the bottom of the '''Gap Source Dialog''' or '''Probe Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. You can enter desired values for '''Theta''' and '''Phi''' beam scan angles in degrees. The corresponding phase progressions are calculated and applied to the periodic Green's functions:&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM101.png]]&lt;br /&gt;
&lt;br /&gt;
Note that you have to define a finite-sized array factor in the Radiation Pattern dialog. You do this in the '''Impose Array Factor''' section of this dialog. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of '''Element Spacing''' along the X and Y directions are automatically set equal to the value of '''Periodic Lattice Spacing''' along those directions. You have to set the '''Number of Elements''' along the X and Y directions, which are both equal to one initially, representing a single radiator. If you forget to define an array factor, the radiation pattern of the unit cell structure will be displayed, which does not show beam scanning.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM100.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the periodic scan angles in [[Planar Module]]'s Gap Source dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per9_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The 3D radiation pattern of a beam-steered periodic printed dipole array.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Periodic Structures Using Plane Waves ===&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a plane wave source, it acts as a periodic surface that reflects or transmits the incident wave. You can model frequency selective surfaces, electromagnetic band-gap structures and metamaterials in this way. EM.Cube calculates the reflection and transmission coefficients of periodic surfaces or planar structures. If you run a single plane wave simulation, the reflection and transmission coefficients are reported in the Output Window at the end of the simulation. Note that these periodic characteristics depend on the polarization of the incident plane wave. You set the polarization (TMz or TEz) in the '''Plane Wave Dialog''' when defining your excitation source. In this dialog you also set the values of the incident '''Theta''' and '''Phi''' angles.&lt;br /&gt;
&lt;br /&gt;
At the end of the planar MoM simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. As a result, you can run an adaptive sweep of periodic structures with a plane wave source just like projects with gap or probe sources. The reflection and transmission (R/T) coefficients can be plotted in EM.Grid on 2D graphs similar to the S parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
{{Note|In the absence of any finite traces or embedded objects in the project workspace, EM.Cube computes the reflection and transmission coefficients of the layered background structure of your project.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM102.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A periodic planar layered structure with slot traces excited by a normally incident plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Characterizing Periodic Surfaces Using Angular Sweeps ===&lt;br /&gt;
&lt;br /&gt;
The reflection and transmission characteristics of a period surface as functions of the incidence angle are often of great interest. For that purpose, you can run an angular sweep of your periodic structure, where you normally fix the &amp;amp;phi; angle and sweep the &amp;amp;theta; angle from 180 to 90 degrees for one-sided surfaces and from 180 to 0 degrees for two-sided surface. To run an angular sweep, open the [[Planar Module]]'s '''Simulation Run Dialog''' and select the '''Angular Sweep''' option from its '''Simulation Mode''' dropdown list. This enables the '''Settings''' button, which opens up the '''Angle Settings Dialog'''. First, you must choose either Theta or Phi as the '''Sweep Angle'''. Then you can set the '''Start''' and '''End''' values of the selected incidence angle as well as the '''Number of Samples'''. At the end of an angular sweep simulation, you can plot the reflection and transmission coefficients from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The reflection and transmission coefficients of the structure are saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM103.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Structures Using Adaptive Frequency Sweeps ===&lt;br /&gt;
&lt;br /&gt;
You learned earlier how to use EM.Cube's powerful, adaptive frequency sweep utility to study the frequency response of a planar structure. Adaptive frequency sweep uses rational function interpolation to generate smooth curves of the scattering parameters with a relatively small number of full-wave simulation runs in a progressive manner. Therefore, you need a port definition in your planar structure to be able to run an adaptive frequency sweep. This is clear in the case of an infinite periodic phased array, where your periodic unit cell structure must be excited using either a gap source or a probe source. You run an adaptive frequency sweep of an infinite periodic phased array in exactly the same way to do for regular, aperiodic, planar structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar Modules also allows you to run an adaptive frequency sweep of periodic surfaces excited by a plane wave source. In this case, the planar MoM engine calculates the reflection and transmission coefficients of the periodic surface. Note that you can conceptually consider a periodic surface as a two-port network, where Port 1 is the top half-space and Port 2 is the bottom half-space. In that case, the reflection coefficient R is equivalent to S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter, while the transmission coefficient T is equivalent to S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameter. This is, of course, the case when the periodic surface is illuminated by the plane wave source from the top half-space, corresponding to 90°&amp;amp;lt; &amp;amp;theta; = 180°. You can also illuminate the periodic surface by the plane wave source from the bottom half-space, corresponding to 0° = &amp;amp;theta; &amp;amp;lt; 90°. In this case, the reflection coefficient R and transmission coefficient T are equivalent to S&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;12&amp;lt;/sub&amp;gt; parameters, respectively. Having these interpretations in mind, EM.Cube enables the &amp;amp;quot;'''Adaptive Frequency Sweep'''&amp;amp;quot; option of the '''Frequency Settings Dialog''' when your planar structure has a periodic domain together with a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite-Sized Periodic Arrays Using NCCBF Technique ===&lt;br /&gt;
&lt;br /&gt;
Previously, you saw how the concept of &amp;amp;quot;Array Factor&amp;amp;quot; is used to approximate the far field radiation pattern of a finite-sized array of radiators. The total radiation pattern can be expressed as the product of the array factor and the &amp;amp;quot;Element Pattern&amp;amp;quot;. The array factor captures the topology of the array lattice and depends on the number of elements along the X and Y directions as well as the element spacing along those directions. As for the choice of element pattern, you saw two extreme cases. In the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; option, you compute the radiation pattern of a single stand-alone radiator and completely ignore any coupling effects from the neighboring elements. This option is readily available in the Radiation Pattern Dialog of the Far Field observable. In the &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; option, you analyze a periodic version of the radiating element with periods equal to the element spacing. The computed radiation pattern of the periodic unit cell in this case captures the coupling effects from an infinite number of elements.&lt;br /&gt;
&lt;br /&gt;
The array factor approach works well when the inter-element coupling is negligible or when the array contains a very large number of elements. However, finite edge and corner effects cannot be modeled accurately using a simple array factor. A full-wave approach is needed where all the elements are discretized properly, and their interactions are incorporated into the final solution. EM.Cube's Planar MoM simulation engine lets you analyze finite-sized antenna arrays in a rigorous, full-wave manner. As you saw earlier, you can even introduce a source array with arbitrary (amplitude and phase) weights and realize a complex, non-uniformly excited, finite-sized antenna array. Note that if the array contains a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; . N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; elements, and each radiating element involves a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; vectorial basis functions, the numerical solution of the problem will produce a system of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;linear equations. As an example, consider a rectangular patch antenna element that involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. Now consider a not-so-large, 8 × 8 array of these patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. The resulting linear system will have an enormous size of N = 30,720. Keep in mind that, unlike the sparse matrices of the Finite Element Method (FEM), MoM linear systems are dense by nature and typically ill-conditioned. The inversion of dense matrices of such sizes or larger takes a significant amount of computation time even if you use fast iterative solvers.&lt;br /&gt;
&lt;br /&gt;
EMAG Technologies Inc. has recently developed a novel technique, called '''Numerically Constructed Characteristic Basis Functions (NCCBF)''', which generates physics-based entire-domain basis functions for the elements of a finite-sized array. These &amp;amp;quot;sophisticated&amp;amp;quot; basis functions are linear combinations of the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; solutions and &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; solutions. Unlike the array factor method, which is a post-processing calculation of far-field data, the NCCBF method generate a full-wave MoM solution with entire-domain basis functions. Considering the same example of the patch antenna array discussed earlier, the NCCBF method generates a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 4 entire-domain basis functions on each patch element: an isolated X-directed solution, a periodic X-directed solution, an isolated Y-directed solution, and a periodic Y-directed solution. The same approach applies equally well to triangular RWG basis functions and is not limited to rectangular cells. As a result, the new MoM linear system has a dimension of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = (4)(64) = 256. In other words, the NCCBF method compresses the original MoM matrix of size N = 30,720 to one of significantly reduced size N = 256 (i.e. a compression factor of 120x).&lt;br /&gt;
&lt;br /&gt;
=== Running a NCCBF Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the current release of EM.Cube's [[Planar Module]], the NCCBF MoM solver works with any number of distinct, finite-sized arrays if they are excited with one of the following three source types:&lt;br /&gt;
&lt;br /&gt;
# Gap Sources&lt;br /&gt;
# Probe Sources&lt;br /&gt;
# Plane Wave Sources&lt;br /&gt;
&lt;br /&gt;
Note that you can have several coexisting finite arrays with different element spacings (or different periodicities). You can also have regular (aperiodic) objects coexisting with your collection of finite arrays. In that case, the NCCBF process will create entire-domain basis functions for the elements of the finite arrays, while the regular method of moments will apply to the aperiodic portions of your planar structure. This flexibility makes NCCBF a very versatile and powerful technique.&lt;br /&gt;
&lt;br /&gt;
There are a few rules that must be followed and observed when planning a NCCBF simulation. '''Each finite-sized array must be constructed using an EM.Cube &amp;amp;quot;Array Object&amp;amp;quot;. Additionally, each array object must stand alone in a dedicated trace or embedded object set of its own.''' In other words, if an array object belongs to a trace or embedded object set that contains other objects, it will be excluded from the NCCBF process and will get a regular MoM treatment. Keep in mind that [[Planar Module]] allows you to define different traces located at the same Z-plane, although the objects belonging to these separate traces cannot be connected to one another according to the planar meshing rules. Similarly, you can define two or more PEC via sets hosted by the same substrate layer. Therefore, if your planar structure contains finite arrays and aperiodic objects, you have to group them into separate traces or embedded object sets.&lt;br /&gt;
&lt;br /&gt;
To run an NCCBF simulation, open the '''Simulation Run Dialog''', and then open the'''Planar MoM Engine Settings Dialog'''. In the &amp;amp;quot;'''Finite Array Simulation'''&amp;amp;quot; section of the latter dialog, check the box labeled &amp;amp;quot;'''NCCBF Matrix Compression'''&amp;amp;quot;. This box is unchecked by default. Checking it enables the NCCBF Settings button. Click this button to open the NCCBF Settings Dialog. The dialog features a &amp;amp;quot;List of Unit Cells Used for NCCBF Matrix Compression&amp;amp;quot;. This list initially empty. To add unit cells to it, click the '''Add''' button of the dialog to open the &amp;amp;quot;'''Add Unit Cell Dialog'''&amp;amp;quot;. This dialog has two tables: Available Unit Cells on the left side and Associated Unit Cells on the right side. The left table shows a list of all the available, legitimate array objects in your project workspace. Remember that for an array object to be eligible for NCCBF compression, it has to stand alone on a dedicated trace or embedded object set, whichever applies. Select an array object from the left table and use the right arrow button (--&amp;amp;gt;) to move it to the right table to associate it with the new NCCBF unit cell. You can associate more than one array object with the same NCCBF unit cell. In this case, the parent elements of all the associated array objects collectively constitute the NCCBF unit cell. The NCCBF unit cell is the planar structure that is analyzed separately, first, as a stand-alone isolated element, and next, as a periodic unit cell, to generate the NCCBF entire-domain basis function solutions. It is therefore very important that the array objects be positioned carefully with respect to the origin of coordinated and relative to one another to form the correct NCCBF unit cell. Once you move one or more array object names to the &amp;amp;quot;Associated&amp;amp;quot; table on the right, you can move them back to the &amp;amp;quot;Available&amp;amp;quot; table on the left using the left arrow (&amp;amp;lt;--) button. You can also instruct EM.Cube to use only the isolated element solution by unchecking the box labeled &amp;amp;quot;'''Include Periodic Solution of Unit Cell'''&amp;amp;quot;. Once you are satisfied with the definition of your NCCBF unit cell, close the dialog to return to the NCCBF Settings dialog. Here you see the name of the newly added NCCBF unit cell in the list along with the Number of Solutions and the names of all the associated array objects for each NCCBF unit cell. You can modify each row using the '''Edit''' button or remove it from the list using the '''Delete''' button. Close the NCCBF Settings dialog to return to the Planar MoM Engine Settings dialog, and close the latter to return to the Simulation Run dialog, where you can now start the NCCBF simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM163.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar MoM's NCCBF Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM162.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Planar MoM's &amp;amp;quot;Add Unit Cell&amp;amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
=== Symmetries, Array Objects &amp;amp;amp; Composite Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] treats array objects in a special way. That is why you need to use array objects with certain rules for NCCBF simulations. In general, if the mesh of your planar structure involves a total of N vectorial basis functions, the MoM matrix will contain a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; elements. Instead of computing the entire N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; basis interactions, the Planar MoM simulation engine takes advantage of the inherent symmetry properties of the dyadic Green's functions and camputes the diagonal elements of the matrix and all the elements below the diagonal. This amounts to N.(N+1)/2 basis interactions. In many cases, the MoM matrix is symmetric, and the elements above the diagonal are simply mirror-image of the below-diagonal elements. In planar structures that involve both metal and slot traces, there will be sign reversals for some interactions.&lt;br /&gt;
&lt;br /&gt;
In many cases, especially in the areas that contain sizable numbers of rectangular mesh cells, the basis functions are naturally grouped into distinct sets that are called domains. As you saw earlier in the discussion of planar mesh generation, uniform domains with identical rectangular cells bring significant savings during the matrix fill process. Using the concept of domains renders the MoM matrix as a block matrix, whose blocks represent the interactions among the domains. The diagonal blocks therefore correspond to self-domain interactions. By a similar argument, if your planar structure is made up of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; domains, then a total of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) are computed. An EM.Cube array object consists of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical geometrical elements. If the array object belongs to a trace that has other objects in it, then by the planar mesh generator's rules, the elements of the array object are merged with the other objects on the same trace using the &amp;amp;quot;Union&amp;amp;quot; Boolean operation. If some array elements possibly have connections with other objects, such connections are taken care of in the meshing process. '''However, if an array object stands alone in a dedicated trace, then only the parent (first) element is meshed, and it mesh is copied and cloned for all the other elements of the array.''' This produces a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical domains of vectorial basis functions. A direct consequence of this is identification of only N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; unique domain-pair interactions or matrix blocks. In the absence of these symmetries, a total of at least N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) must be computed. To better illustrate such matrix fill savings, let us consider the previous, not-so-large, 8 × 8 array of patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. It was previously assumed that each rectangular patch antenna element involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. The numerical solution of this structure produces a linear system of total size N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 30,720. The total number of complex-valued elements of this matrix is 9.44E+08. This is the total number of highly sophisticated multi-dimensional integrals that you need to compute during a brute-force matrix fill process. For the sake of generality of the argument, here we ignore the huge additional savings that rectangular cells offer, and we assume that each unique domain-pair interaction involves N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 230,400 elements, except for the self-domain interaction which requires N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 115,440 integral computations. This amounts to a total of (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; -1) . N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 1.46E+07 integral computations, which is roughly N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;(64) times fewer and faster than a brute-force matrix fill process.&lt;br /&gt;
&lt;br /&gt;
To remedy the limitation that stand-alone array objects on dedicated traces cannot be connected to anything and therefore would severely limit the geometrical complexity of individual elements, EM.Cube allows you to build arrays of composite objects. A &amp;amp;quot;'''Composite Object'''&amp;amp;quot; in EM.Cube is a group of objects that are tied together only for the purpose of organization. As a result, the mesh of a composite object is the same as that of its constituent member objects (including any possible connections), had they not been grouped together. In a similar manner to simpler array objects, if a composite array stands alone in a dedicated trace or embedded object set, then only the parent composite object is meshed, and its mesh is copied and cloned for all the other composite elements of the array object. Furthermore, all the unique domain-pair interactions are identified during the matrix fill process, and lead to a major saving in computation time. '''Note that you can assign gap or probe sources to composite arrays in a similar way as you excite simpler array objects.''' If your planar structure involves a composite array, whose composite parent element has constituent members: Object1, Object2, ..., then the Gap Source dialog or Probe Source dialog will include the names of all the eligible constituent members (rectangle strips or PEC via objects) that can host the respective source types. '''Complex composite arrays hosting gap or probe source arrays or illuminated by plane wave sources are great candidates for NCCBF simulation.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM165.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Assigning gap sources to the elements of a composite array object.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Libera</id>
		<title>EM.Libera</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Libera"/>
				<updated>2013-06-14T15:09:44Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Modeling Lumped Circuits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Libera is a 3D free-space structure simulator for modeling metallic structures. It features a full-wave Method of Moments (MoM) engine for analyzing wire structures or wire-frame models of metallic surfaces and solids. Many RF systems utilize wire antennas like dipoles, monopoles, loops, or arrays of wire antennas. The 3D method of moments (MoM) based on Pocklington's integral equation can accurately model such antennas and their coupling effects. Moreover, in many applications, metallic surface or [[Solid Objects|solid objects]] can be approximately modeled as wire-frame structures. EM.Libera's Wire MoM simulator can provide an adequate numerical solution of wire-frame structures. Examples of this sort are wire antennas in the presence of large reflectors or scatterers. Wire-frame models also make a good approximation of metallic target structures for radar cross section (RCS) analysis.    &lt;br /&gt;
&lt;br /&gt;
EM.Libera's Wire MoM simulator is seamlessly interfaced with EM.CUBE's other simulation engines. The solution of a wire-frame structure can be imported to EM.Cube's other modules as a set of short dipole sources with proper amplitudes and phases.&lt;br /&gt;
&lt;br /&gt;
== A 3D Method Of Moments Primer ==&lt;br /&gt;
&lt;br /&gt;
The Method of Moments (MoM) is a rigorous, full-wave, numerical technique for solving open boundary electromagnetic problems. Using this technique, you can analyze electromagnetic radiation, scattering and wave propagation problems with relatively short computation times and modest computing resources. The method of moments is an integral equation technique; it solves the integral form of Maxwell’s equations as opposed to their differential forms used in the finite element or finite difference time domain methods.&lt;br /&gt;
&lt;br /&gt;
In a 3D MoM simulation, the currents or fields on the surface of a structure are the unknowns of the problem. The given structure is immersed in the free space. These currents or fields are discretized as a collection of elementary currents or fields with small finite spatial extents. Such elementary currents or fields are called basis functions. They obviously have a vectorial nature and must satisfy Maxwell's equations and relevant boundary conditions individually. The actual currents or fields on the surface of the given structure (the solution of the problem) are expressed as a superposition of these elementary currents or fields with initially unknown amplitudes. Through the MoM solution, you find these unknown amplitudes, from which you can then calculate the currents or fields everywhere in the structure.&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[MoM3D Module|MoM3D module]] offers two distinct 3D MoM simulation engine. The first one is a Wire MoM solver that can be used to simulate wireframe models of metallic structures. This solver is particularly useful for modeling wire-type antennas and arrays. The second engine features a powerful surface MoM solver. It can model metallic surfaces and solids as well as solid dielectric objects. The Surface MoM solver uses a surface integral equation formulation of Maxwell's equations. In the case of solid dielectric objects, equivalent electric and magnetic currents are assumed on the surface of the dielectric object to formulate the interior and exterior boundary value problems.&lt;br /&gt;
&lt;br /&gt;
===  Free Space Green’s Function === &lt;br /&gt;
&lt;br /&gt;
The Green’s functions are the analytical solutions of boundary value problems when they are excited by an elementary source. This is usually an infinitesimally small vectorial point source. In order for the Green’s functions to be computationally useful, they must have analytical closed forms. This can be a mathematical expression or a more complex recursive process. It is no surprise that only very few electromagnetic boundary value problems have closed-form Green’s functions. The total electric ('''E''') field can be expressed in terms of the electric current in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E = E^{inc}} + &lt;br /&gt;
\mathbf{\iiint_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') } d \nu' + &lt;br /&gt;
\mathbf{\iiint_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') } d \nu'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{H = H^{inc}} + &lt;br /&gt;
\mathbf{\iiint_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') } d \nu' + &lt;br /&gt;
\mathbf{\iiint_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') } d \nu'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where is the dyadic Green’s functions for electric fields due to electric current sources and '''E&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' is the incident or impressed electric field. The incident or impressed field provides the excitation of the structure. It may come from an incident plane wave or a gap source on a line, etc. The simplest background structure is the unbounded free space, which is represented by the following Green’s function:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ \overline{\overline{G}}_{EJ}(r|r') = (\overline{\overline{I}} + \nabla\nabla) } G_{\Lambda} (\mathbf{r|r'}), \quad&lt;br /&gt;
G_{\Lambda} (\mathbf{r|r'}) = \frac{ e^{-jk_0 \mathbf{|r-r'|}} }{ 4\pi \mathbf{|r-r'|} }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:03_freespace_tn.gif]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{\overline{\overline{I}}}&amp;lt;/math&amp;gt; is the unit dyad, &amp;lt;math&amp;gt;\nabla&amp;lt;/math&amp;gt; is the gradient operator, '''r''' and '''r'''' are the position vectors of the observation and source points, respectively, and k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space propagation constant. This implies that electromagnetic waves propagate in free space in a spherical form away from the source. Note that the Green’s function has a singularity at the source, i.e. when '''r''' = '''r''''. This singularity must be removed when solving the integral equations.&lt;br /&gt;
&lt;br /&gt;
===  3D Integral Equations === &lt;br /&gt;
&lt;br /&gt;
In the more general formulation of the field integration equations, both electric and magnetic currents are included. In that case, the total electric and magnetic fields are given by the following equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E = E^{i}} + &lt;br /&gt;
\mathbf{\iiint_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') } + &lt;br /&gt;
\mathbf{\iiint_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{H = H^{i}} + &lt;br /&gt;
\mathbf{\iiint_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') } + &lt;br /&gt;
\mathbf{\iiint_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:image001_tn.gif]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above coupled equations involve four types of dyadic Green's functions that represent the electric and magnetic field radiated by an electric or a magnetic current. The incident or impressed electric and magnetic fields Ei and Hi exist independently of the given structures and are related to each other depending on the type of excitation source. &lt;br /&gt;
&lt;br /&gt;
Enforcing the boundary conditions on the integral definitions of the '''E''' and '''H''' fields results in a system of integral equations as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{L}_E(E) = \mathcal{L}_E \left(&lt;br /&gt;
\mathbf{E = E^{i}} + &lt;br /&gt;
\mathbf{\iiint_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') } + &lt;br /&gt;
\mathbf{\iiint_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') } \right)&lt;br /&gt;
= 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{L}_H(H) = \mathcal{L}_H \left(&lt;br /&gt;
\mathbf{E = E^{i}} + &lt;br /&gt;
\mathbf{\iiint_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') } + &lt;br /&gt;
\mathbf{\iiint_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') } \right)&lt;br /&gt;
= 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:image016_tn.gif]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathcal{L}_E(E)&amp;lt;/math&amp;gt; is the boundary value operator for the electric field and &amp;lt;math&amp;gt;\mathcal{L}_H(H)&amp;lt;/math&amp;gt; is the boundary value operator for the magnetic field. For example, they may require that the tangential components the '''E''' field vanish on perfect electric conductors. Or they may require that the tangential components the '''E''' and '''H''' fields be continuous across an aperture in a perfect ground plane. Given the fact that the dyadic Green’s functions and the incident or impressed fields are all known, one can solve the above system of integral equations to find the unknown currents '''J''' and '''M'''. Therefore, through these relationships you can easily cast the above integral equations in terms of unknown '''E''' and '''H''' fields.&lt;br /&gt;
&lt;br /&gt;
===  Galerkin Testing === &lt;br /&gt;
&lt;br /&gt;
The integral equation derived in the previous section can be solved numerically by discretizing the computational domain using a proper meshing scheme. The original functional equation is reduced to a set of discretized linear algebraic equations over elementary cells. The unknown quantities are found by solving this system of linear equations, and many other parameters can be computed thereafter. This method of numerical solution of integral equations is known as the Method of Moments (MoM). In this method, the unknown electric current is represented by an expansion of basis functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = \sum_{n=1}^N {I_n}^{(J)} \mathbf{ {f_n}^{(J)}(r) }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:07_numerical-solutions_tn.gif]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{ {f_n}^{(J)} }&amp;lt;/math&amp;gt; are the generalized vector basis functions for the expansion of electric currents, and &amp;lt;math&amp;gt;{I_n}^{(J)}&amp;lt;/math&amp;gt; are the unknown complex amplitudes of these basis functions, which have to be determined. Substituting these expansions yields the following discretized integral equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathcal{L}_E \left( \mathbf{E^i} +\iiint_V \mathbf{ \overline{\overline{G}}_{EJ}(r|r') } &lt;br /&gt;
\cdot \sum_{n=1}^N {I_n}^{(J)} \mathbf{ {f_n}^{(J)}(r') } \, d\nu' \right) = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:10_numerical-solution_tn.gif]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to solve the above equation, the method of moments uses Galerkin's technique to turn it into a set of linear algebraic equations. This is accomplished by testing the above equations using the basis functions, leading to the following linear system:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{[Z] \cdot [I] = [V]}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:11_numerical-solution_tn.gif]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
Z_{ij} = \iiint_{V_i} \mathbf{ {f_i}^{(J)}(r) } \, d\nu \cdot &lt;br /&gt;
\iiint_{V_j} \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot {f_j}^{(J)}(r') } \, d\nu'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:12_numerical-solution_tn.gif]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_i = \iiint_{V_i} \mathbf{ {f_i}^{(J)}(r) \cdot E^i(r) } \, d\nu &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:13_numerical-solution_tn.gif]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using a rooftop expansion of the currents on the wires, we can discretize the Pocklington integral equation. In order to convert the discretized integral equation into a system of linear system of algebraic equations, we use Galerkin’s testing process, in which the testing functions are chosen to be identical to the expansion basis functions. However, to avoid the source singularity at r=r’, the expansion functions are placed at the center of the wires, while the test functions are evaluated on the surface of the wires, assuming a finite non-zero radius for all wires. The solution vector [I] is then found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{[I] = [Z]^{-1} \cdot [V] } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:24_galerkin_tn.gif]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where [Z]&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; is the inverse of the impedance matrix and [V] is the excitation vector.&lt;br /&gt;
&lt;br /&gt;
===  Pocklington’s Integral Equations for Wire Structures === &lt;br /&gt;
&lt;br /&gt;
Wire structures are made of linear PEC elements. These may consist of actual physical wires such as a dipole or loop antenna or a wireframe representation of a surface or solid object. In a wire structure, the unknown electric currents are one-dimensional. The integral equation is derived by forcing the tangential component of the electric field to vanish on the surface of the wire. This leads to the following simpler integral equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ \hat{I} \cdot E^i } - jk_0 Z_0 \int_C \left( G_A \mathbf{(r|r')} I(l') \mathbf{ \hat{l} \cdot \hat{l}' }&lt;br /&gt;
+ \frac{1}{{k_0}^2} \frac{\partial G_A}{\partial l} \frac{\partial I}{\partial l'} \right) \, dl' = 0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:14_pocklingtons_tn.gif]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where G&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; is the free space Green’s function, I(l) is the unknown linear current in the wire and C is the contour of the wire.  and &amp;lt;math&amp;gt;\hat{l}'&amp;lt;/math&amp;gt; are the unit vectors along the wire contour. Note that G&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; has a singularity when r = r’, which must be either removed or avoided as will be explained later.&lt;br /&gt;
&lt;br /&gt;
===  Discretization Of Wire Structures === &lt;br /&gt;
&lt;br /&gt;
The right choice of the basis functions that are used to represent the elementary currents is very important. It will determine the accuracy and computational efficiency of the resulting numerical solution. Rooftop basis functions are one of the more popular types of basis functions used in a variety of MoM formulations. The simplest rooftop function is the one-dimensional triangular functions defined as in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:18_meshing_tn.gif]]&lt;br /&gt;
&lt;br /&gt;
This function provides a linear interpolation of the unknown currents or fields in one dimension. Note that the function vanishes at it two ends. This is a desirable feature for basis functions that represent electric currents on metallic wires as the current must vanish at the two ends of a wire. The total current on the wire can be approximated in a linear fashion by a set of one-dimensional rooftop functions as shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:19_meshing_tn.gif]]&lt;br /&gt;
&lt;br /&gt;
This can be written as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I(l) = \sum_{n=1}^N a_n f_n(l) \mathbf{\hat{s}_n} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:20_meshing_tn.gif]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where l is the length coordinate along the wire with l=0 at its start point. &amp;lt;math&amp;gt;f_n(l)&amp;lt;/math&amp;gt; is the scaled and translated version of the linear basis function &amp;lt;math&amp;gt;f(l)&amp;lt;/math&amp;gt; shown in the previous figure. &amp;lt;math&amp;gt;\mathbf{\hat{s}_n}&amp;lt;/math&amp;gt; is the unit vector along wire.&lt;br /&gt;
&lt;br /&gt;
== Physical Structure &amp;amp;amp; 3D Mesh Generation ==&lt;br /&gt;
&lt;br /&gt;
===  Defining Groups Of PEC Objects === &lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[MoM3D Module]] features two different simulation engines: Wire MoM and Surface MoM. Both simulation engines can handle metallic structures. The Wire MoM engine models metallic objects as wireframe structures, while the Surface MoM engine treats them as perfect electric conductor (PEC) surfaces. The PEC objects can be lines, curves, surfaces or solids. All the PEC objects are created under the '''PEC''' node in the '''Physical Structure''' section of the Navigation Tree. Objects are grouped together by their color. You can insert different PEC groups with different colors. A new PEC group can be defined by simply right clicking on the '''PEC''' item in the Navigation Tree and selecting '''Insert New PEC...''' from the contextual menu. A dialog for setting up the PEC properties opens up. From this dialog you can change the name of the group or its color. Note that PEC object do not have any material properties that can be edited.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic1.png]]    [[File:wire_pic2.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[MoM3D Module]]'s Navigation Tree and its PEC dialog.&lt;br /&gt;
&lt;br /&gt;
===  Defining Dielectric Objects === &lt;br /&gt;
&lt;br /&gt;
[[File:FDTD4.png|thumb|250px|[[MoM3D Module]]'s Dielectric dialog]]&lt;br /&gt;
&lt;br /&gt;
Of the two simulation engines of EM.Cube's [[MoM3D Module]] only the Surface MoM solver can handle dielectric objects as dielectric materials cannot be modeled by wireframe structures. Dielectric objects are created under the '''Dielectric''' node in the '''Physical Structure''' section of the Navigation Tree. They are grouped together by their color and material properties. You can insert different dielectric groups with different colors and different permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity s. Note that a PEC object is the limiting cases of a lossy dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin;.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity''' (s).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Materials dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum''' in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:FDTD5.png]]  &lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
===  Moving Objects Between Groups &amp;amp;amp; Modules === &lt;br /&gt;
&lt;br /&gt;
By default, the last PEC group that was defined is active. The current active group is always listed in bold letters in the Navigation Tree. All the new objects are inserted under the current active group. A group can be activated with a right click on its entry in the Navigation Tree and then selecting the '''Active''' item of the contextual menu. You can move one or more selected objects to any desired PEC group. Right click on the highlighted selection and select '''Move To [[File:larrow_tn.png]] MoM3D [[File:larrow_tn.png]]''' from the contextual menu. This opens another sub-menu with a list of all the available PEC groups already defined in the [[PO Module]]. Select the desired PEC group, and all the selected objects will move to that group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the latter case, make sure that you hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting a PEC group's name from the contextual menu. In a similar way, you can move one or more objects from a Physical Optics PEC group to EM.CUBE's other modules. In this case, the sub-menus of the''' Move To [[File:larrow_tn.png]]''' item of the contextual menu will indicate all the EM.CUBE modules that have valid groups for transfer of the select objects.&lt;br /&gt;
&lt;br /&gt;
===  3D MoM Mesh Types === &lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
===  Creating &amp;amp;amp; Viewing The Mesh === &lt;br /&gt;
&lt;br /&gt;
The [[MoM3D Module]]'s method of moments solver assumes an infinite open boundary for your project's structure and uses the free space Green's functions for the background structure. As a result, the extents of the computational domain are infinite in all directions. The mesh generation process in EM.CUBE's [[MoM3D Module]] involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
The commercial release of EM.CUBE's [[MoM3D Module]] provides a Wire MoM solver. In this simulation engine, all the metallic objects are discretized as a wire-frame structure. Wires, line and curves are discretized as polylines made up of small linear cells (segments).Surface and [[Solid Objects|solid objects]] are discretized as a wire-frame mesh with triangular cells. The MoM3D mesh generator meshes the wires based on a specified mesh sampling rate expressed in cells/&amp;amp;lambda&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. Curves are first polygonized and converted into '''Polyline''' Objects, whose edge lengths follow the specified mesh sampling rate. In the case of [[Solid Objects|solid objects]], only their surface and faces are discretized using a triangular wireframe mesh, which is regarded as a grid of interconnected wires. Two algorithms are offered for generation of a triangular wireframe mesh. The default algorithm is '''Regular Wireframe'''. This mesh generator creates wireframe elements that have almost equal edge lengths. The other algorithm is '''Structured Wireframe''', which usually creates a very structured wireframe with a large number of aligned wireframe elements.&lt;br /&gt;
&lt;br /&gt;
To view the [[MoM3D Module]]'s wire-frame mesh, click on the [[File:mesh_tool_tn.png]] button of the '''Compute Toolbar''' or select '''Menu [[File:larrow_tn.png]] Compute [[File:larrow_tn.png]] Discretization [[File:larrow_tn.png]] Shoe Mesh''' or use the keyboard shortcut '''Ctrl+M'''. When the wire-frame mesh is displayed in the Project Workspace, EM.CUBE's mesh view mode is enabled. In this mode, you can perform view operations like rotate view, pan, zoom, etc. However, you cannot select or move or edit objects. While the mesh view is enabled, the '''Show Mesh''' [[File:mesh_tool.png]] button remains depressed. To get back to the Normal View mode, click this button one more time, or deselect '''Menu [[File:larrow_tn.png]] Compute [[File:larrow_tn.png]] Discretization [[File:larrow_tn.png]] Show Mesh''' to remove its check mark or simply click the '''Esc Key''' of the keyboard.&amp;amp;quot;Show Mesh&amp;amp;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 wire-frame mesh may take a long time depending on the complexity and size of objects. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore the mesh in the memory and force EM.CUBE to generate a mesh from the ground up by selecting '''Menu [[File:larrow_tn.png]] Compute [[File:larrow_tn.png]] Discretization [[File:larrow_tn.png]] Regenerate Mesh''' or by right clicking on the '''3-D Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic5_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The regular wireframe mesh of a PEC sphere.&lt;br /&gt;
&lt;br /&gt;
===  Customizing the Mesh === &lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic4.png|thumb|300px|[[MoM3D Module]]'s mesh settings dialog]]&lt;br /&gt;
&lt;br /&gt;
To set the wire-frame mesh properties, click on the [[File:mesh_tool_tn.png]] button of the '''Compute Toolbar''' or select '''Menu [[File:larrow_tn.png]] Compute [[File:larrow_tn.png]] Discretization [[File:larrow_tn.png]] Mesh Settings...'''or right click on the '''3-D Mesh''' item in the '''Discretization''' section or the Navigation Tree and select '''Mesh Settings...''' from the contextual menu. The MoM3D Mesh Settings Dialog opens up. You can change the mesh generation algorithm from the drop-down list labeled '''Mesh Type''' and select one of the two options: '''Regular Wireframe''' or '''Structured Wireframe'''. You can also set the '''Mesh Sampling Rate''', whose default value is 20 Cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;.By default, [[Surface Objects|surface objects]] or solids are wire-framed at the mesh cell size. Therefore, each wire segment of the wire-frame mesh contains one cell. Another parameter that can affect the shape of the mesh especially in the case of [[Solid Objects|solid objects]] is the '''Curvature Angle Tolerance'''. This parameter expressed in degrees 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.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic6_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Four-port view of the structured wireframe mesh of a PEC sphere.&lt;br /&gt;
&lt;br /&gt;
===  Mesh of Connected Objects === &lt;br /&gt;
&lt;br /&gt;
All the [[Solid Objects|solid objects]] belonging to the same PEC group are merged together using the Boolean union operation before meshing. If your structure contains attached, interconnected or overlapping [[Solid Objects|solid objects]], their internal common faces are removed and only the surface of the external faces is meshed. Similarly, all the [[Surface Objects|surface objects]] belonging to the same PEC group are merged together before meshing. However, following EM.CUBE's union rules, a solid and a surface object cannot not be &amp;amp;quot;unioned&amp;amp;quot; together. Therefore, their meshes will not connect even if the two objects belong to the same PEC group.&lt;br /&gt;
&lt;br /&gt;
You can connect a line object to a touching surface. To connect lines to surfaces and allow for current continuity, you must make sure that the box labeled '''Connect Lines to Touching Surfaces''' is checked in the '''Mesh Settings Dialog'''. If the end of a line lies on a flat surface, EM.CUBE will detect that and create the connection automatically. However, this may not always be the case if the surface is not flat and has curvature. In such cases, you have to specifically instruct EM.CUBE to enforce the connection. An example of this case is shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic7_tn.png|260px]] [[File:wire_pic8_tn.png|260px]] [[File:wire_pic9_tn.png|260px]]&lt;br /&gt;
&lt;br /&gt;
The line object at the top of a PEC sphere and the structure's mesh without and with proximity mesh connection enforced.&lt;br /&gt;
&lt;br /&gt;
===  Local Mesh Control === &lt;br /&gt;
&lt;br /&gt;
EM.CUBE applies the global mesh sampling rate to discretize all the objects in the Project Workspace. However, you can lock the mesh sampling rate of any PEC group to a desired value different than the global rate. To do so, open the property dialog of a PEC group by right clicking on its name in the Navigation Tree and select '''Properties...''' from the contextual menu. At the bottom of the dialog, check the box labeled '''Lock Mesh'''. This will enable the '''Sampling Rate''' box, where you can set a desired value. The default value is equal to the global mesh sampling rate. Keep in mind that objects that belong to different PEC groups are not merged during the mesh generation even if they overlap or are intended to be connected to one another.&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic10.png]]&lt;br /&gt;
&lt;br /&gt;
Locking the mesh sampling rate of a PEC group.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
===  Gaps Sources On Wires === &lt;br /&gt;
&lt;br /&gt;
A Gap is an infinitesimally narrow discontinuity that is placed on the path of the current. In EM.Cube's [[MoM3D Module]], a gap is used to define an excitation source in the form of an ideal voltage source. Gap sources can be placed only on '''Line''' and '''Polyline''' objects. '''If you want to excite a curved wire antennas such as a circular loop or helix with a gap source, first you have to convert the curve object into a polyline using EM.Cube's Polygonize Tool.''' The gap splits the wire into two segment with a an infinitesimally small spacing between them, across which the ideal voltage source is connected. To define a new gap source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gap Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' from the contextual menu. The Gap Source Dialog opens up.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the line and polyline objects in the Project Workspace. Select the desired line or polyline object. A gap symbol is immediately placed on the selected object.&lt;br /&gt;
* The box labeled '''Direction''' shows the polarity of the voltage source placed on the selected object. You have the option to select either the positive or negative direction for the source. This parameter is obviously relevant only for lumped elements of active type.&lt;br /&gt;
* In the case of a gap on a line object, in the box labeled '''Offset''', enter the distance of the source from the start point of the line. This value by default is initially set to the center of the line object.&lt;br /&gt;
* In the case of a gap on a polyline object, first choose the '''Side''' of the polyline where you want to place the source. Then, in the box labeled '''Offset''', enter the distance of the source from the start point of that side. By default, a gap source is placed at the center of the first side of the polyline object. You can also change the offset value using the spin buttons. If you keep pushing the spin buttons, the gap source moves from one side to the next, and its side index and offset value are adjusted automatically.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
A gap source placed on one side of a polyline representing a polygonized circular loop.&lt;br /&gt;
&lt;br /&gt;
===  Modeling Lumped Circuits === &lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic15.png|thumb|300px|[[MoM3D Module]]'s lumped element dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[MoM3D Module]], you can define simple lumped elements in a similar manner as gap sources. In fact, a lumped element is equivalent to an infinitesimally narrow gap that is placed in the path of the current, across which Ohm's law is enforced as a boundary condition. You can define passive RLC lumped elements or active lumped elements containing a voltage gap source. The latter case can be used to excite a wire structure and model a non-ideal voltage source with an internal resistance. Unlike the [[FDTD Module]]'s single-device lumped loads that connect between two adjacent nodes, the [[MoM3D Module]]'s lumped circuit represent a series-parallel combination of resistor, inductor and capacitor elements. This is shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image106.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic16_tn.png|thumb|200px|Active lumped element with a voltage gap in series with an RC circuit placed on a dipole wire]]&lt;br /&gt;
&lt;br /&gt;
To define a new lumped element, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Elements''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' from the contextual menu. The Lumped Element Dialog opens up.&lt;br /&gt;
* In the '''Lumped Circuit Type''' select one of the two options: '''Passive RLC''' or '''Active with Gap Source'''. Choosing the latter option enables the '''Source Properties''' section of the dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the line and polyline objects in the Project Workspace. Select the desired line or polyline object. A lumped element symbol is immediately placed on the selected object.&lt;br /&gt;
* The box labeled '''Direction''' shows the polarity of the voltage source placed on the selected object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the case of a gap on a line object, in the box labeled '''Offset''', enter the distance of the source from the start point of the line. This value by default is initially set to the center of the line object.&lt;br /&gt;
* In the case of a gap on a polyline object, first choose the '''Side''' of the polyline where you want to place the source. Then, in the box labeled '''Offset''', enter the distance of the source from the start point of that side. By default, a gap source is placed at the center of the first side of the polyline object. You can also change the offset value using the spin buttons. If you keep pushing the spin buttons, the gap source moves from one side to the next, and its side index and offset value are adjusted automatically.&lt;br /&gt;
* In the '''Load Properties''' section, the series and shunt resistance values Rs and Rp are specified in Ohms, the series and shunt inductance values Ls and Lp are specified in nH (nanohenry), and the series and shunt capacitance values Cs and Cp are specified in pF (picofarad). The impedance of the circuit is calculated at the operating frequency of the project. Only the elements that have been checked are taken into account. By default, only the series resistor has a value of 50&amp;amp;Sigma; and all other circuit elements are initially grayed out.&lt;br /&gt;
* If the lumped element is active and contains a gap source, the '''Source Properties''' section of the dialog becomes enabled. Here you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of PMC traces) and the '''Phase''' in degrees.&lt;br /&gt;
* If the workspace contains an array of line or polyline objects, the array object will be listed as an eligible object for gap source placement. A lumped element will be placed on each element of the array. All the lumped elements will have identical direction, offset, resistance, inductance and capacitance values. If you define an active lumped element, you can prescribe certain amplitude and/or phase distribution to the gap sources. The available amplitude distributions include '''Uniform''', '''Binomial''' and '''Chebyshev'''. In the last case, you need to set a value for minimum side lobe level ('''SLL''') in dB. You can also define '''Phase Progression''' in degrees along all three principal axes.&lt;br /&gt;
&lt;br /&gt;
===  Defining Ports === &lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index gap sources for S parameter calculation. They are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the total number of existing sources in the workspace. By default, as many ports as the total number of sources are created. You can define any number of ports equal to or less than the total number of sources. This includes both gap sources and active lumped elements (which contain gap sources). In the '''Port Association''' section of this dialog, you can go over each one of the sources and associate them with a desired port. Note that you can associate more than one source with same given port. In this case, you will have a coupled port. All the coupled sources are listed as associated with a single port. However, you cannot associate the same source with more than one port. Finally, you can assign '''Port Impedance''' in Ohms. By default, all port impedances are 50&amp;amp;Sigma;. The table titled '''Port Configuration''' lists all the ports and their associated sources and port impedances.&lt;br /&gt;
&lt;br /&gt;
{{Note|In EM.CUBE you cannot assign ports to an array object, even if it contains sources on its elements. To calculate the S parameters of an antenna array, you have to construct it using individual elements, not as an array object.}}&lt;br /&gt;
&lt;br /&gt;
[[File:port-definition.png]]&lt;br /&gt;
&lt;br /&gt;
The [[MoM3D Module]]'s port definition dialog.&lt;br /&gt;
&lt;br /&gt;
===  Sources &amp;amp;amp; Loads On Arrays Of Wire Radiators === &lt;br /&gt;
&lt;br /&gt;
If the workspace contains an array of line or polyline objects, the array object will be listed as an eligible object for gap source placement. A gap source will be placed on each element of the array. All the gap sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available amplitude distributions include '''Uniform''', '''Binomial''' and '''Chebyshev'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define '''Phase Progression''' in degrees along all three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic12.png]]    [[File:wire_pic13_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The [[MoM3D Module]]'s gap source dialog and gaps sources defined on an array of dipole wires with binomial weight distribution and 90° phase progression.&lt;br /&gt;
&lt;br /&gt;
===  Hertzian Dipole Sources === &lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic17.png|thumb|300px|The short dipole source dialog]]&lt;br /&gt;
&lt;br /&gt;
A short dipole provides a simple way of exciting a structure in the [[MoM3D Module]]. A short dipole source acts like an infinitesimally small ideal current source. To define a short dipole source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
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 &amp;amp;quot;MoM.IDI&amp;amp;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 current at the center of each cell. In the [[MoM3D Module]], you can import the current data from an existing '''.IDI''' file to serve as a set of short dipoles for excitation. To import a wire current solution, right click on '''Short Dipoles''' item in the '''Sources''' section of the Navigation Tree and select '''Import Dipole Source...''' from the contextual menu. This opens up the standard Windows Open dialog with the file type set to '''.IDI'''. Browse your folders to find the right current data file. Once you find it, select it and click the '''Open''' button of the dialog. This will create as many short dipole sources on the [[PO Module]]'s Navigation Tree as the total number of mesh cells in the Wire MoM solution. From this point on, each of the imported dipoles behave like a regular short dipole source. You can open the property dialog of each individual source and modify its parameters.&lt;br /&gt;
&lt;br /&gt;
===  Plane Wave Sources === &lt;br /&gt;
&lt;br /&gt;
[[File:po_phys15.png|thumb|300px|plane wave dialog]]&lt;br /&gt;
&lt;br /&gt;
The wire-frame structure in the [[MoM3D Module]] can be excited by an incident plane wave. In particular, a plane wave source can be used to compute the radar cross section of a metallic target. A plane wave is defined by its propagation vector indicating the direction of incidence and its polarization. EM.CUBE's [[MoM3D Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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'''.&lt;br /&gt;
&lt;br /&gt;
{{Note|In the spherical coordinate system, normal plane wave incidence from the top of the domain downward corresponds to &amp;amp;theta; of 180&amp;amp;deg;. }}&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys16_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Illuminating a metallic sphere with an obliquely incident plane wave source.&lt;br /&gt;
&lt;br /&gt;
== Running Wire MoM Simulations ==&lt;br /&gt;
&lt;br /&gt;
===  Running A Wire MoM Analysis === &lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic19.png|thumb|300px|[[MoM3D Module]]'s run simulation dialog]]&lt;br /&gt;
&lt;br /&gt;
Once you have set up your metal structure in EM.CUBE's [[MoM3D Module]], have defined sources and observables and have examined the quality of the structure's wire-frame mesh, you are ready to run a simulation. To open the Run Simulation Dialog, click the '''Run''' [[File:run_icon.png]] button of the '''Compute Toolbar''' or select Menu [[File:larrow_tn.png]] Compute [[File:larrow_tn.png]] Run...or use the keyboard shortcut '''Ctrl+R'''. To start the simulation click the '''Run''' button of this dialog. Once the Wire MoM simulation starts, a new dialog called '''Output Window''' opens up that reports the various stages of Wire MoM simulation, displays the running time and shows the percentage of completion for certain tasks during the Wire MoM simulation process. A prompt announces the completion of the Wire MoM simulation. At this time, EM.CUBE generates a number of output data files that contain all the computed simulation data. These include current distributions, near field data, far field radiation pattern data as well bi-static or mono-static radar cross sections (RCS) if the structure is excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
You have the choice to run a '''Fixed Frequency''' simulation, which is the default choice, or run a '''Frequency Sweep'''. In the former case, the simulation will be carried out at the '''Center Frequency''' of the project. This frequency can be changed from the Frequency Dialog of the project or you can click the Frequency Settings button of the Run Dialog to open up the Frequency Settings dialog. You can change the value of Center Frequency from this dialog, too.&lt;br /&gt;
&lt;br /&gt;
In case you choose Frequency Sweep, the Frequency Settings dialog gives two options for '''Sweep Type: Adaptive''' or '''Uniform'''. In a uniform sweep, equally spaced samples of the frequency are used between the Start and End frequencies. These are initially set by the project Bandwidth, but you can change their values from the Frequency Settings dialog. The default '''Number of Samples''' is 10.In the case of adaptive sweep, you have to specify the '''Maximum Number of Iterations''' as well as the '''Error'''. An adaptive sweep simulation starts with a few initial frequency samples, where the Wire MoM engine is run. Then, the intermediary samples are calculated in a progressive manner. At each iteration, the frequency samples are used to calculate a rational approximation of the S parameter response over the specified frequency range. The process stops when the error criterion is met.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic20.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The output window.&lt;br /&gt;
&lt;br /&gt;
===  Setting Wire MoM Numerical Parameters === &lt;br /&gt;
&lt;br /&gt;
A Wire MoM simulation involves a number of numerical parameters that normally take default values unless you change them. You can access these parameters and change their values by clicking on the '''Settings''' button next to the &amp;amp;quot;Select Engine&amp;amp;quot; drop-down list in the '''Run Dialog'''. This opens up the Wire MoM Engine Settings Dialog. In the '''Solver''' section of the dialog, you can choose the type of linear solver. The current options are '''LU''' and '''Bi-Conjugate Gradient (BiCG)'''. The LU solver is a direct solver and is the default option of the [[MoM3D Module]]. The BiCG solver is iterative. Once selected, you have to set a '''Tolerance''' for its convergence. You can also change the maximum number of BiCG iterations by setting a new value for '''Max. No. of Solver Iterations / System Size'''. The Wire MoM simulator is based on Pocklington's integral equation method. In this method, the wires are assumed to have a very small radius. The basis functions are placed on the axis of the &amp;amp;quot;wire cylinder&amp;amp;quot;, while the Galerkin testing is carried out on its surface to avoid the singularity of the Green's functions. In the &amp;amp;quot;Source Singularity&amp;amp;quot; section of the dialog, you can specify the '''Wire Radius''' . EM.CUBE's [[MoM3D Module]] assumes an identical wire radius for all wires and wireframe structures. This radius is expressed in free space wavelengths and its default value is 0.001&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The value of the wire radius has a direct influence on the wire's computed reactance.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic21.png]]&lt;br /&gt;
&lt;br /&gt;
The wire MoM engine settings dialog.&lt;br /&gt;
&lt;br /&gt;
===  Visualizing Wire Current Distributions === &lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic25.png|thumb|300px|[[MoM3D Module]]'s current distribution dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a MoM3D simulation, EM.CUBE's Wire MoM engine generates a number of output data files that contain all the computed simulation data. The main output data are the current distributions and far fields. You can easily examine the 3-D color-coded intensity plots of current distributions in the Project Workspace. Current distributions are visualized on all the wires and the magnitude and phase of the electric currents are plotted for all the PEC objects. In order to view these currents, you must first define current sensors before running the Wire MoM simulation. To do this, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. Accept the default settings and close the dialog. A new current distribution node is added to the Navigation Tree. Unlike the [[Planar Module]], in the [[MoM3D Module]] you can define only one current distribution node in the Navigation Tree, which covers all the PEC object in the Project Workspace. After a Wire MoM simulation is completed, new plots are added under the current distribution node of the Navigation Tree. Separate plots are produced for the magnitude and phase of the linear wire currents. The magnitude maps are plotted on a normalized scale with the minimum and maximum values displayed in the legend box. The phase maps are plotted in radians between -&amp;amp;pi; and &amp;amp;pi;.&lt;br /&gt;
&lt;br /&gt;
Current distribution maps are displayed with some default settings and options. You can customize the individual maps (total, magnitude, phase, etc.). To do so, open the '''Output Plot Settings Dialog''' by right clicking on the specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. Two '''scale''' options are available: '''Linear''' and '''dB'''. With the '''Linear''' (default) option selected, the current value is always normalized to the maximum total current in that plane, and the normalized scale is mapped between the minimum and maximum values. If the '''dB''' option is selected, the normalized current is converted to dB scale. The plot limits (bounds) can be set individually for every current distribution plot. In the '''Limits''' section of the plot's property dialog, you see four options: '''Default''', '''User Defined''', '''95% Conf.''' and '''95% Conf.'''. Select the user defined option and enter new values for the '''Lower''' and '''Upper''' limits. The last two options are used to remove the outlier data within the 95% and 99% confidence intervals, respectively. In other words, the lower and upper limits are set to ? ± 1.96? and ? ± 2.79? , respectively, assuming a normal distribution of the data. Three color maps are offered: '''Default''', '''Rainbow''' and '''Grayscale'''. You can hide the legend box by deselecting the box labeled '''Show Legend Box'''. You can also change the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic26_tn.png|400px]] [[File:wire_pic27_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A monopole antenna connected above a PEC plate and its current distribution with the default plot settings.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic28.png|360px]] [[File:wire_pic29_tn.png|440px]]&lt;br /&gt;
&lt;br /&gt;
Figure: The output plot settings dialog, and the current distribution of the monopole-plate structure with a user defined upper limit.&lt;br /&gt;
&lt;br /&gt;
===  Scattering Parameters and Port Characteristics === &lt;br /&gt;
&lt;br /&gt;
If the project structure is excited by gap sources, and one or more ports have been defined, the Wire MoM engine calculates the scattering (S) parameters of the selected ports, all based on the port impedances specified in the project's &amp;amp;quot;Port Definition&amp;amp;quot;. If more than one port has been defined in the project, the scattering matrix of the multiport network is calculated. The S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;amp;quot;#&amp;amp;quot;. The admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The voltage standing wave ratio of the structure at the first port is also computed and saved to a real data '''.DAT''' file.&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.CUBE's data manager. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or select '''Compute [[File:larrow_tn.png]]Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its '''ID''' in the table and then click the '''Plot''' button to plot the graph. By default, the S parameters are plotted as double magnitude-phase graphs, while the Y and Z parameters are plotted as double real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, go to the row in the '''Data Manager Dialog''' that contains a specific complex data file's name and click on the fourth column under the title '''Graph Type'''. The selected table cell turns into a dropdown list that contains the above three formats. Select the desired format and click the '''Plot''' button of the data manager dialog to plot the data in the new format.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic56.png]]&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's data manager showing the port characteristics data files for a two-port structure consisting of two adjacent dipoles.&lt;br /&gt;
&lt;br /&gt;
The magnitude and phase graphs of the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter.&lt;br /&gt;
&lt;br /&gt;
The real and imaginary part graphs of the Z&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameter.&lt;br /&gt;
&lt;br /&gt;
The Smith chart.&lt;br /&gt;
&lt;br /&gt;
== Running Surface MoM Simulations ==&lt;br /&gt;
&lt;br /&gt;
===  Running A Surface MoM Analysis === &lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
===  Setting Surface MoM Numerical Parameters === &lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
===  Visualizing Surface Current Distributions === &lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
===  Visualizing Near &amp;amp;amp; Far Fields In MoM3D Module === &lt;br /&gt;
&lt;br /&gt;
===  Near Field Visualization === &lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic30.png|thumb|300px|[[MoM3D Module]]'s field sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.CUBE allows you to visualize the near fields at a specific field sensor plane. Calculation of near fields is a post-processing process and may take a considerable amount of time depending on the resolution that you specify. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name. you can also change the color of the field sensor plane using the '''Color''' button.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.CUBE creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z '''Center Coordinates'''. You can also changes these coordinates using the spin buttons. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the Project Workspace.&lt;br /&gt;
* The initial size of the sensor plane is 100 × 100 project units. You can change the dimensions of the sensor plane to any desired size. You can also set the '''Number of Samples''' along the different directions. These determine the resolution of near field calculations. Keep in mind that large numbers of samples may result in long computation times.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once a Wire MoM simulation is finished, a total of 14 plots are added to every field sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values. Click on any of these items and a color-coded intensity plot of it will be visualized on the Project Workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -&amp;amp;pi; and &amp;amp;pi;. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic31_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A circular loop antenna fed by a gap source.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic32_tn.png|400px]] [[File:wire_pic33_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Electric and magnetic field plots of the circular loop antenna.&lt;br /&gt;
&lt;br /&gt;
== Visualizing 3D Radiation Patterns ==&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic37.png|thumb|300px|[[MoM3D Module]]'s radiation pattern dialog]]&lt;br /&gt;
&lt;br /&gt;
Unlike the FDTD method, in the [[MoM3D Module]] you do not need a far field box to perform near-to-far-field transformations. Nonetheless, you still need to define a far field observable if you want to plot radiation patterns. A far field can be defined by right clicking on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and selecting '''Insert New Radiation Pattern...''' from the contextual menu. The Radiation Pattern dialog opens up. You can accept most of the default settings in this dialog. The Output Settings section allows you to change the '''Angle Increment''' in the degrees, which indeed sets the resolution of far field calculations. The default value is 5 degrees. After closing the radiation pattern dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the Navigation Tree and can be right clicked for further editing.&lt;br /&gt;
&lt;br /&gt;
After a Wire MOM simulation is finished, three radiation patterns plots are added to the far field entry in the Navigation Tree. These are the far field component in Theta direction, the far field component in Phi direction and the total far field. The 3-D plots can be viewed by clicking on their name in the navigation tree. They are displayed in the Project Workspace and overlaid on the project's structure. The view of a 3-D radiation pattern plot can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the pattern, you can simply hide the whole structure or parts of it. The fields are always normalized to the maximum of the total far field:&lt;br /&gt;
&lt;br /&gt;
[[File:farfieldformula.gif]]&lt;br /&gt;
&lt;br /&gt;
A legend box appears in the upper right corner of the 3-D radiation plot, which can be moved around by clicking and dragging with the left mouse button. The calculated Directivity of the (antenna) structure is displayed at the bottom of the legend box. It is important to note that if the wire-frame structure is excited by an incident plane wave, the radiation patterns indeed represent the far-zone scattered field data.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you do not define a far field observable in your project, no radiation patterns will be calculated at the end of a wire MoM simulation.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Every time you change the angle increment of the far field, you have to start a new simulation, even if your structure has not changed.}}&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic38_tn.png|260px]] [[File:wire_pic39_tn.png|260px]] [[File:wire_pic40_tn.png|260px]]&lt;br /&gt;
&lt;br /&gt;
3-D radiation pattern of the circular loop antenna: (Left) Theta component, (Center) Phi components, and (Right) total far field.&lt;br /&gt;
&lt;br /&gt;
===  Modeling Antenna Arrays === &lt;br /&gt;
&lt;br /&gt;
In view of far field characteristics, EM.CUBE can handle antenna arrays in two different ways. The first approach is full-wave and requires building an array of radiating elements using the '''Array Tool''' and feeding individual array elements using some type of excitation. This method is very accurate and takes into account all the inter-element coupling effects. At the end of the Wire MoM simulation of the array structure, you can plot the radiation patterns and other far field characteristics of the antenna array just like any other wire-frame structure. The second approach is based on the &amp;amp;quot;Array Factor&amp;amp;quot; concept and ignores any inter-element coupling effects. In this approach, you can regard the structure in the project workspace as a single radiating element. A specified array factor can be calculated and multiplied by the element pattern to estimate the radiation pattern of the overall radiating array. To define an array factor, open the '''Radiation Pattern Dialog''' of the project. In the section titled '''Impose Array Factor''', you will see a default value of 1 for the '''Number of Elements''' along the three X, Y and Z directions. This implies a single radiator, which is your structure in the project workspace. There are also default zero values for the '''Element Spacing''' along the X, Y and Z directions. You should change both the number of elements and element spacing in the X, Y or Z directions to define any desired finite array lattice. For example, you can define a linear array by setting the number of elements to 1 in two directions and entering a larger value for the number of elements along the third direction.&lt;br /&gt;
&lt;br /&gt;
The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' such as first null level and first null beam width. You can have EM.CUBE calculate all such parameters if you check the relevant boxes in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. In particular, you can plot such data files at the end of a sweep simulation.&lt;br /&gt;
&lt;br /&gt;
{{Note|Defining an array factor in the radiation pattern dialog simply performs a post-processing calculation. The resulting far field obviously do not take into account any inter-element coupling effects as EM.CUBE does not construct a real physical array in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Using an array factor for far field calculation, you cannot assign non-uniform amplitude or phase distribution to the array elements. For this purpose, you have to define an array object.}}&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic47.png]]&lt;br /&gt;
&lt;br /&gt;
Defining a finite-sized 4-element array factor in the radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic48_tn.png|400px]] [[File:wire_pic46_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Radiation pattern of a 4-element dipole array: (Left) computed using array factor and (Right) computed by simulating an array object.&lt;br /&gt;
&lt;br /&gt;
===  Radar Cross Section === &lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic49.png|thumb|300px|[[MoM3D Module]]'s RCS dialog]]   &lt;br /&gt;
&lt;br /&gt;
When the wire-frame structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields. EM.CUBE calculates the radar cross section (RCS) of a target, which is defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma = 4\pi R^2 \cdot \frac{|E_{scat}|^2}{|E_{inc}|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:rcs_equation.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EM.CUBE calculates three RCS quantities: the &amp;amp;phi; and &amp;amp;theta; components of the radar cross section as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. In addition, EM.CUBE [[MoM3D Module]] calculates two types of RCS for each structure: '''Bi-Static RCS''' and '''Mono-Static RCS'''. In bi-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and the RCS is measured and plotted at all &amp;amp;theta; and &amp;amp;phi; angles. In mono-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and the RCS is measured and plotted at the echo angles 180°-&amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;.It is clear that in the case of mono-static RCS, the Wire MoM simulation engine runs an internal angular sweep, whereby the values of the plane wave incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; are varied over the intervals [0°, 180°] and [0°, 360°], respectively, and the backscatter RCS is recorded.&lt;br /&gt;
&lt;br /&gt;
To calculate RCS, first you have to define an RCS observable instead of a radiation pattern. Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog. Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button. Select the type of RCS from the two radio buttons labeled '''Bi-Static RCS''' and '''Mono-Static RCS'''. The former is the default choice. The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees. At the end of a Wire MoM simulation, besides calculating the RCS data over the entire (spherical) 3-D space, a number of 2-D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant &amp;amp;phi;-cut. This latter cut is at &amp;amp;phi;=45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a Wire MoM simulation, the thee RCS plots &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;are added under the far field section of the Navigation Tree. These plots are very similar to the three 3-D radiation pattern plots. You can view them by clicking on their names in the navigation tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. For visualization purposes, the 3-D plots are normalized to the maximum RCS value, which is also displayed in the legend box. The 2-D RCS graphs can be plotted from EM.CUBE's data manager exactly in the same way that you plot 2-D radiation pattern graphs. A total of eight 2-D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. At the end of a sweep simulation, EM.CUBE calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
{{Note|Computing the 3-D mono-static RCS may take an enormous amount of computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic50_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A half-wave wire connected to a metal plate illuminated by an obliquely incident plane wave.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic51_tn.png|260px]] [[File:wire_pic52_tn.png|260px]] [[File:wire_pic53_tn.png|260px]]&lt;br /&gt;
&lt;br /&gt;
The RCS of the wire-plate structure: (Left) &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, (Center) &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and (Right) total RCS..&lt;br /&gt;
&lt;br /&gt;
===  Customizing 3D Plots === &lt;br /&gt;
&lt;br /&gt;
Similar to the current distribution and field sensor plots, EM.CUBE's 3-D radiation pattern plots are interactive. When you move the mouse over a pattern plot, tiny dots appear on its surface. These dots correspond to the theta-phi angle pairs on the surface of the unit sphere where the far field data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the normalized far field value in that direction.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic41_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Reading far field values from a 3-D radiation pattern plot by mouse-over.&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3-D radiation pattern plot through the '''Radiation Pattern Dialog'''. The plot type change applies to all the three nodes: theta component, phi component and total field patterns. In the 3D Display Type section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the last two cases, the far field values are plotted on the surface of the unit sphere, where each point correspond to a (&amp;amp;theta;, &amp;amp;phi;) pair. In the spherical map, the curved cells of the unit sphere are colored based on their field value. In the cone-type plot, a vectorial visualization of the far fields is generated. In the last case, you can also set the size of the cones that represent the far field vectors.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic42_tn.png]]    [[File:wire_pic43_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The spherical map and cone (vectorial) versions of the radiation pattern show in the previous figure.&lt;br /&gt;
&lt;br /&gt;
Just like current distribution and field sensor plots, each individual 3-D radiation pattern plots has an '''Output Settings Dialog''', from which you can further customize the plot's scale (linear vs. dB), lower and upper limits and color map type.&lt;br /&gt;
&lt;br /&gt;
===  2D Radiation Graphs === &lt;br /&gt;
&lt;br /&gt;
At the end of a Wire MoM simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes as well as an additional user defined phi plane cut are available for plotting on 2-D graphs. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or select '''Compute [[File:larrow_tn.png]]Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by clicking and highlighting its '''ID''' in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of a Wire MoM sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the theta and phi angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.CUBE, the axial ratio is always defined in the LCPz or RCPz sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2-D Cartesian graphs of the axial ratio as functions of the theta angle a generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of a Wire MoM sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In this case, either quantity needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic44.png]]&lt;br /&gt;
&lt;br /&gt;
The data manager dialog showing a list of 2-D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
== More 3D MoM Simulation Types ==&lt;br /&gt;
&lt;br /&gt;
===  3D MoM Sweep Simulations === &lt;br /&gt;
&lt;br /&gt;
You can run EM.CUBE's MoM3D simulation engine in the sweep mode, whereby a parameter like frequency, plane wave angles of incidence or a user defined variable is varied over a specified range at predetermined samples. The output data are saved into data file for visualization and plotting. EM.CUBE's [[MoM3D Module]] currently offers three types of sweep:&lt;br /&gt;
&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
To run a MoM3D sweep, open the '''Run Simulation Dialog''' and select one of the above sweep types from the '''Simulation Mode''' drop-down list in this dialog. If you select either frequency or angular sweep, the '''Settings''' button located next to the simulation mode drop-down list becomes enabled. If you click this button, the Frequency Settings Dialog or Angle Settings Dialog opens up, respectively. In the frequency settings dialog, you can set the start and end frequencies as well as the number of frequency samples. The start and end frequency values are initially set based on the project's center frequency and bandwidth. During a frequency sweep, as the project's frequency changes, so does the wavelength. As a result, the mesh of the structure also changes at each frequency sample. The frequency settings dialog gives you three choices regarding the mesh of the project structure during a frequency sweep:&lt;br /&gt;
&lt;br /&gt;
# Fix mesh at the highest frequency.&lt;br /&gt;
# Fix mesh at the center frequency.&lt;br /&gt;
# Re-mesh at each frequency.&lt;br /&gt;
&lt;br /&gt;
The [[MoM3D Module]] offers two types of frequency sweep: adaptive or uniform. In a uniform sweep, equally spaced frequency samples are generated between the start and end frequencies. In the case of an adaptive sweep, you must specify the '''Maximum Number of Iterations''' as well as the '''Error'''. An adaptive sweep simulation starts with a few initial frequency samples, where the Wire MoM engine is initially run. Then, the intermediary frequency samples are calculated and inserted in a progressive manner. At each iteration, the frequency samples are used to calculate a rational approximation of the scattering parameter response over the specified frequency range. The process stops when the specified error criterion is met in a mean-square sense. The adaptive sweep simulation results are always continuous and smooth. This is due to the fact that a rational function curve is fitted through the discrete frequency data points. This usually captures frequency response characteristics such as resonances with much fewer calculated data points. However, you have to make sure that the process converges. Otherwise, you might get an entirely wrong, but still perfectly smooth, curve at the end of the simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic22.png]]    [[File:wire_pic24.png]]&lt;br /&gt;
&lt;br /&gt;
The [[MoM3D Module]]'s run simulation dialog with frequency sweep selected and the frequency settings dialog.&lt;br /&gt;
&lt;br /&gt;
You can run an angular sweep only if your project has a plane wave excitation. In this case, you have to define a plane wave source with the default settings. During an angular sweep, either the incident theta angle or incident phi angle is varied within the specified range. The other angle remains fixed at the value that is specified in the '''Plane Wave Dialog'''. You have to select either '''Theta''' or '''Phi''' as the '''Sweep Angle''' in the Angle Settings Dialog. Then you can set the start and end angles as well as the number of angle samples.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic23.png]]    [[File:po_phys54.png]]&lt;br /&gt;
&lt;br /&gt;
The [[PO Module]]'s run simulation dialog with angular sweep selected and the angle settings dialog.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, one or more user defined [[variables]] are varied at the same time over their specified ranges. This creates a parametric space with the total number of samples equal to the product of the number of samples for each variable. The user defined [[variables]] are defined using EM.CUBE's '''[[Variables]] Dialog'''. For a description of EM.CUBE [[variables]], please refer to the [[CubeCAD|CUBECAD]] manual or the &amp;amp;quot;Parametric Sweep&amp;amp;quot; sections of the FDTD or [[Planar Module]] manuals.&lt;br /&gt;
&lt;br /&gt;
===  Animation of MoM3D Data === &lt;br /&gt;
&lt;br /&gt;
At the end of a frequency, angular or parametric sweep simulation in EM.CUBE's [[MoM3D Module]], the output data are saved for visualization and plotting. In particular, if you have defined current distribution, field sensor or far field observables in your project, multiple 3-D plots as many as the total number of sweep samples are added to the Navigation Tree. In a single simulation run, a total of 7 current distribution plots, 14 field sensor plot and 3 radiation pattern plots or 3 RCS plots are generated under every observable node defined in the navigation tree. However, after a sweep simulation, only one plot is saved for each sweep sample. This is done to keep the resulting plots manageable. Thus, only the magnitude of the total wire currents '''|J&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt;|''' and the total radiation pattern or total RCS are saved for each sweep sample. In the case of a field sensor observable, you have the choice to save either the total E-field magnitude plot or the total H-field magnitude plot. To change this, open the '''Field Sensor Dialog''' by right clicking on a field sensor's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Field Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''E-Field''' or '''H-Field''' From this dialog, you can also choose the type of 3-D field plot for animation. The options are '''Confetti''' or '''Cone'''.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic60.png]]&lt;br /&gt;
&lt;br /&gt;
Selecting control-type H-Field plot for sweep data visualization in the field sensor dialog.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.CUBE consists of consecutive display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic61_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The animation controls dialog and animation of the H-field plots of a two adjacent dipoles after a frequency sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:wire_pic62_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Animation of the wire current plots of a two adjacent dipoles after a frequency sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Illumina</id>
		<title>EM.Illumina</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Illumina"/>
				<updated>2013-06-14T14:57:30Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Generating &amp;amp;amp; Customizing PO Mesh */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
== Methods Of Physical Optics ==&lt;br /&gt;
&lt;br /&gt;
=== Physical Optics As An Asymptotic Technique ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Asymptotic methods are usually valid at high frequencies as &amp;lt;math&amp;gt;k_0 R = 2\pi R/\lambda_0 &amp;gt;&amp;gt; 1&amp;lt;/math&amp;gt;, where R is the distance between the source and observation points, k&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt; is the free-space propagation constant and &amp;amp;lambda;&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt;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. The uniform theory of diffraction (UTD) is used to model the diffraction of rays at the edges of the structure.&lt;br /&gt;
&lt;br /&gt;
In the Physical Optics (PO) method, a scatterer surface is illuminated by an incident source, and it is modeled by equivalent electric and magnetic surface currents. This concept is based on the fundamental equivalence theorem of electromagnetics and the Huygens principle. The electric surface currents are denoted by '''J(r)''' and the magnetic surface currents are denoted by '''M(r)''', where '''r''' is the position vector. According to the Huygens principle, the equivalent electric and magnetic surface currents are derived from the tangential components of magnetic and electric fields on a given surface, respectively. This will be discussed in more detail in the next sections. In a classic PO analysis which involves only perfect electric conductors, only electric surface currents, related to the tangential magnetic fields, are considered.  &lt;br /&gt;
&lt;br /&gt;
=== Conventional Physical Optics (GO-PO) ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = (1+\alpha) \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -(1-\alpha) \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha = \frac{1-Z/\eta_0}{1+Z/\eta_0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi \; \Omega&amp;lt;/math&amp;gt; is the intrinsic impedance of the free space. Then, the electric and magnetic currents reduce to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = \frac{2\eta_0}{\eta_0 + Z} \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = - \frac{2Z}{\eta_0 + Z} \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Two limiting cases of an impedance surface are perfect electric conductor (PEC) and perfect magnetic conductor (PMC) surface. For a PEC surface, Z = 0,  &amp;amp;alpha; = 1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 2 \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO4.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while for a PMC surface, Z = 8,  &amp;amp;alpha; = -1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -2 \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another special case is a Huygens surface with equivalent electric and magnetic surface currents. In that case, Z =  &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, &amp;amp;alpha; = 0, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r) = \hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r) = -\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO10.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:po_manual_1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A diagram showing a scatterer lit by a source.&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0, and shadowed if '''n.k'''&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Near &amp;amp;amp; Far Fields In PO ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HM&amp;lt;/sub&amp;gt;''' 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 &amp;lt;math&amp;gt;\exp(-jk_0r)/(4\pi r)&amp;lt;/math&amp;gt; and the near fields reduce to: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; + 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; - 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt; R=|r-r'| \text{, } k_0 = \tfrac{2\pi}{\lambda_0} \text{ and } Z_0 = 1/Y_0 = \eta_0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;gt;&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{ff}(r)} = \frac{jk_0 e^{-jk_0 r}}{4\pi r} &lt;br /&gt;
\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' +&lt;br /&gt;
\mathbf{\hat{r}} \times \iint_{S_M} \mathbf{M(r')} e^{-jk_0 \mathbf{ \hat{r} \cdot r' } } ds' \right\}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \frac{1}{Z_0} \mathbf{\hat{r} \times E^{ff}(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Iterative Physical Optics (IPO) ===&lt;br /&gt;
&lt;br /&gt;
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;amp;amp; EFIE):&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{J(r)} = (1+\alpha)\mathbf{\hat{n}} \times&lt;br /&gt;
\left\lbrace &lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ H^{inc}(r) } - jk_0 \iint_{S_J} \left( 1 - \frac{j}{k_0 R} \right) &lt;br /&gt;
(\mathbf{ \hat{R} \times J(r') }) \frac{e^{-jk_0 R}}{4\pi R} \,ds' \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; -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')} -&lt;br /&gt;
\left( 1-\frac{3j}{k_0 R}-\frac{3}{(k_0 R)^2} \right) \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right]&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} \,ds'&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{M(r)} = -(1-\alpha)\mathbf{\hat{n}} \times&lt;br /&gt;
\left\lbrace &lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ E^{inc}(r) } + jk_0 \iint_{S_M} \left( 1 - \frac{j}{k_0 R} \right) &lt;br /&gt;
(\mathbf{ \hat{R} \times M(r') }) \frac{e^{-jk_0 R}}{4\pi R} \,ds' \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; -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')} -&lt;br /&gt;
\left( 1-\frac{3j}{k_0 R}-\frac{3}{(k_0 R)^2} \right) \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right]&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} \,ds'&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO9(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''R''' ='''r''' - '''r'''', R = |'''R'''|, and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ \hat{R} = \frac{R}{|R|} = \frac{r-r'}{|r-r'|} }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO11.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{J^{(0)}(r)} = (1+\alpha) \mathbf{ \hat{n} \times H^{inc}(r) } \\&lt;br /&gt;
&amp;amp; \mathbf{M^{(0)}(r)} = -(1-\alpha) \mathbf{ \hat{n} \times E^{inc}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO13.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0 is examined. In complex scatterer geometries, there are shadowed points in concave regions where '''n.k'''&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ \hat{n} \cdot \hat{R}} &amp;lt; 0 \quad \text{or} \quad \mathbf{\hat{n} \cdot (r-r')} &amp;lt; 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the subsequent iterations, the higher order PO currents are given by;&lt;br /&gt;
&lt;br /&gt;
[[File:PO14(1).png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== General Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ J(r) = \hat{n} \times H(r) } \\&lt;br /&gt;
&amp;amp; \mathbf{ M(r) = -\hat{n} \times E(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO10(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{inc}(r)} = -jk_0 \sum_j \iint_{\Delta_j} \, ds' \frac{e^{-jk_0 R}}{4\pi R}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; Z_0 \left[ 1 - \frac{j}{k_0 R} - \frac{1}{(k_0 R)^2} \right] \mathbf{J_j(r')} \\&lt;br /&gt;
&amp;amp; -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} } \\&lt;br /&gt;
&amp;amp; - \left[ 1 - \frac{j}{k_0 R} \right] \mathbf{ (\hat{R} \times M_j(r')) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{H^{inc}(r)} = -jk_0 \sum_j \iint_{\Delta_j} \, ds' \frac{e^{-jk_0 R}}{4\pi R}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; Y_0 \left[ 1 - \frac{j}{k_0 R} - \frac{1}{(k_0 R)^2} \right] \mathbf{M_j(r')} \\&lt;br /&gt;
&amp;amp; -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} } \\&lt;br /&gt;
&amp;amp; + \left[ 1 - \frac{j}{k_0 R} \right] \mathbf{ (\hat{R} \times J_j(r')) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO16.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the summation over index ''j'' is carried out for all the elementary cells &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; that make up the Huygens box. In EM.Cube Huygens surfaces are cubic and are discretized using a rectangular mesh. Therefore, &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; 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.     &lt;br /&gt;
&lt;br /&gt;
The far fields of the Huygens surface currents are calculated from the following relations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{ff}(r)} = \frac{jk_0}{4\pi} \frac{e^{-jk_0 r}}{r}&lt;br /&gt;
\sum_j \iint_{\Delta_j} \left[ Z_0 \, \mathbf{ \hat{r} \times \hat{r} \times J_j(r') } + &lt;br /&gt;
\mathbf{ \hat{r} \times M_j(r') } \right] e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{H^{ff}(r)} = \frac{1}{Z_0} \mathbf{\hat{r} \times E^{ff}(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO17(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Physical Structure &amp;amp;amp; Its Discretization ==&lt;br /&gt;
&lt;br /&gt;
=== Grouping Objects By Surface Type ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
# Perfect Electric Conductor (PEC) &lt;br /&gt;
# Perfect Magnetic Conductor (PMC) &lt;br /&gt;
# Generalized Impedance Surface&lt;br /&gt;
&lt;br /&gt;
[[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. &lt;br /&gt;
&lt;br /&gt;
[[File:PO18(1).png]] [[File:PO19.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PO20.png]] [[File:PO21.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Navigation Tree and its PEC, PMC and Impedance Surface dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Creating New Objects &amp;amp;amp; Moving Them Around ===&lt;br /&gt;
&lt;br /&gt;
The objects that you draw in EM.Cube's project workspace always belong to the &amp;amp;quot;Active&amp;amp;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. &lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any material group. Right click on the highlighted selection and select '''Move To &amp;amp;gt; Physical Optics &amp;amp;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 &amp;amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. &lt;br /&gt;
&lt;br /&gt;
{{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]].}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO22(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects between different surface groups in [[PO Module]].&lt;br /&gt;
&lt;br /&gt;
=== Generating &amp;amp;amp; Customizing PO Mesh ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO23.png|thumb|250px|[[PO Module]]'s Mesh Settings dialog]]&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in [[PO Module]] involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
The objects of your physical structure are meshed based on a specified mesh density expressed in cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The default mesh density is 20 cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. To view the PO mesh, click on the [[File:mesh_tool_tn.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' to remove its check mark or simply click the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;Show Mesh&amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''3-D Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
To set the PO mesh properties, click on the [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
=== More On Triangular Surface Mesh ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Forcing mesh cells to be single-sided in a PO simulation.&lt;br /&gt;
&lt;br /&gt;
'''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 &amp;amp;quot;unioned&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO25.png|400px]] [[File:PO26.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Geometry and PO mesh of an overlapping sphere and ellipsoid.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Density &amp;amp;amp; Local Mesh Control ===&lt;br /&gt;
&lt;br /&gt;
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.       &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO31.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of a PEC group.&lt;br /&gt;
&lt;br /&gt;
[[File:PO32.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Triangular surface mesh of two PEC box objects with the orange PEC group having a locked mesh of higher density.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO30.png|thumb|300px|PO Module's Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
=== Importing Short Dipoles From MoM3D Module ===&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
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 &amp;amp;quot;MoM.IDI&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO36.png|800px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO29.png|thumb|300px|PO Module's Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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'''.&lt;br /&gt;
&lt;br /&gt;
=== Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys17.png|thumb|300px|PO Module's Huygens Source dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a full-wave simulation in the EM.Cube's FDTD, MoM3D, Planar or Physical Optics Modules, you can generate Huygens surface data. According to Huygens' principle, if one knows the tangential electric and magnetic field components on a closed surface, one can determine the total electric and magnetic fields everywhere inside and outside that closed surface. Huygens surfaces are defined around a structure for recording the tangential components of electric and magnetic fields at the end of full-wave simulation of the structure. The tangential electric and magnetic fields are saved into ASCII data files as magnetic and electric currents, respectively. These current can be used as excitation for other structures. In other words, the electric and magnetic currents associated with a Huygens source radiate energy and provide the excitation for the [[PO Module]]'s physical structure.&lt;br /&gt;
&lt;br /&gt;
In order to define a Huygens source, you need to have a Huygens data file of '''.HUY''' type. This file is generated as an output data file at the end of an FDTD, MoM3D, Planar or PO simulation, if you have defined a Huygens  Surface observable in one of those projects. When you define a Huygens source, you indeed import an existing Huygens surface into the project and set it as an excitation source.&lt;br /&gt;
&lt;br /&gt;
To create a new Huygens source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Huygens Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Import Huygens Source...''' from the contextual menu.&lt;br /&gt;
* The standard Windows Open Dialog opens up. The file type is set to '''.HUY''' by default. Browse your folders to find a Huygens surface data file with a '''.HUY''' file extension. Select the file and click the '''Open''' button of the dialog to import the data.&lt;br /&gt;
* Once imported, the Huygens source appears in the Project Workspace as a wire-frame box.&lt;br /&gt;
* You can open the property dialog of a Huygens source by right clicking on its name in the Navigation Tree and selecting '''Properties...''' From this dialog you can change the color of the Huygens source box as well as its location and orientation. You can enter new values for the X, Y, Z '''Center Coordinates''' and '''Rotation Angles''' of the Huygens box. You can also view the dimensions of the box.&lt;br /&gt;
* By default, the Huygens data are imported as a single Huygens source. You can create an arbitrary array of Huygens sources for your PO project. To do so, in the &amp;amp;quot;Create Array&amp;amp;quot; section of the Huygens source dialog, enter desired values for the '''Number of Elements''' and '''Element Spacing''' along the X, Y and Z directions. You will see an array of wire-frame box appear in the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PO34.png|400px]] [[File:PO35.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: (Left) A rotated imported Huygens source, and (Right) An array of imported Huygens sources defined to excite a PEC box.&lt;br /&gt;
&lt;br /&gt;
== Running PO Simulations ==&lt;br /&gt;
&lt;br /&gt;
=== Running A Basic PO Analysis ===&lt;br /&gt;
&lt;br /&gt;
To open [[PO Module]]'s Simulation Run dialog, click the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Run...'''or use the keyboard shortcut '''Ctrl+R'''. To start the simulation click the '''Run''' button of this dialog. Once the PO simulation starts, a new dialog called '''Output Window''' opens up that reports the various stages of PO simulation, displays the running time and shows the percentage of completion for certain tasks during the PO simulation process. A prompt announces the completion of the PO simulation. At this time, EM.Cube generates a number of output data files that contain all the computed simulation data. These include current distributions, near field data, far field radiation pattern data as well bi-static or mono-static radar cross sections (RCS) if the structure is excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
[[File:PO27.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Setting The Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
Before you run a PO simulation, you can change some of the PO simulation engine settings. While in the [[PO Module]]'s '''Simulation Run Dialog''', click the '''Settings''' button next to the '''Select Engine''' dropdown list. In the Physical Optics Engine Settings Dialog, there are two options for '''Solver Type''': '''Iterative''' and '''GOPO'''. The default option is Iterative. The GOPO solver is a zero-order PO simulator that uses Geometrical Optics (GO) to determine the lit and shadow cells in the structure's mesh. For the termination of the IPO solver, there are two options: '''Convergence Error''' and '''Maximum Number of Iterations'''. The default Termination Criterion is based on convergence error, which has a default value of 0.1 and can be changed to any desired accuracy. The convergence error is defined as the L2 norm of the normalized residual error in the combined '''J/M''' current solution of the entire discretized structure from one iteration to the next. Note that for this purpose, the magnetic currents are scaled by &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; in the residual error vector.&lt;br /&gt;
&lt;br /&gt;
You can also use higher- or lower-order integration schemes for the calculation of field integrals. EM.Cube's PO simulation engine uses triangular cells for the mesh of the physical surface structures and rectangular cells for discretization of Huygens sources and surfaces. For integration of triangular cells, you have three options: '''7-Point Quadrature''', '''3-Point Quadrature''' and '''Constant'''. For integration of rectangular cells, too, you have three options: '''9-Point Quadrature''', '''4-Point Quadrature''' and '''Constant'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO37.png|thumb|300px|PO Module's Current Distribution dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, EM.Cube's PO engine generates a number of output data files that contain all the computed simulation data. The main output data are the electric and magnetic current distributions. You can easily examine the 3D color-coded intensity plots of current distributions in the project workspace. Current distributions are visualized on the surface of the PO mesh cells, and the magnitude and phase of the electric and magnetic surface currents are plotted for all the objects. In order to view these currents, you must first define a current distribution observable before running the PO simulation. To do this, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. Accept the default settings and close the dialog. A new current distribution node is added to the Navigation Tree. Unlike the [[Planar Module]], in the [[PO Module]] you can define only one current distribution node in the Navigation Tree, which covers all the objects in the project workspace. After a PO simulation is completed, new plots are added under the current distribution node of the Navigation Tree. Separate plots are produced for the magnitude and phase of each of the electric and magnetic surface current components (X, Y and Z) as well as the total current magnitude. The magnitude maps are plotted on a normalized scale with the minimum and maximum values displayed in the legend box. The phase maps are plotted in radians between -p and p. Note that sometimes the current distribution plots may hide inside smooth and curved objects, and you cannot see them. You may have to freeze such objects or switch to the mesh view mode.&lt;br /&gt;
&lt;br /&gt;
[[File:PO38.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: The current distribution plot of a PEC sphere illuminated by an obliquely incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Near Field Visualization ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO42(4).png|thumb|300px|PO Module's Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to visualize the near fields at a specific field sensor plane. Calculation of near fields is a post-processing process and may take a considerable amount of time depending on the resolution that you specify. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name. you can also change the color of the field sensor plane using the '''Color''' button.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) on the XY plane. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z '''Center Coordinates'''. You can also change these coordinates using the spin buttons.&lt;br /&gt;
* The initial size of the sensor plane is 100 × 100 project units. You can change the dimensions of the sensor plane to any desired size. You can also set the '''Number of Samples''' along the different directions. These numbers determine the resolution of near field maps. Keep in mind that large numbers of samples may result in long computation times.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree. Once a PO simulation is finished, a total of 14 plots are added to every field sensor node in the Navigation Tree. These include the magnitude and phase of all three components of '''E''' and '''H''' fields and the total electric and magnetic field values. Click on any of these items and a color-coded intensity plot of it will be visualized on the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p.To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotate view, pan, zoom, etc.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that since Physical Optics is an asymptotic method, the field sensors must be placed at adequate distances (at least one or few wavelengths) away from the scatterers to produce acceptable results.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO43.png|400px]] [[File:PO44.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Near field plots of electric and magnetic fields on a sensor plane.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing 3D Radiation Patterns ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO45.png|thumb|300px|PO Module's Radiation Pattern dialog]]&lt;br /&gt;
&lt;br /&gt;
Unlike the FDTD method, Physical Optics is an open-boundary technique. You do not need a far field box to perform near-to-far-field transformations. Nonetheless, you still need to define a far field observable if you want to plot radiation patterns. A far field can be defined by right clicking on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and selecting '''Insert New Radiation Pattern...''' from the contextual menu. The Radiation Pattern dialog opens up. You can accept most of the default settings in this dialog. The Output Settings section allows you to change the '''Angle Increment''' in the degrees, which sets the resolution of far field calculations. The default value is 5 degrees. After closing the radiation pattern dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
After a PO simulation is finished, three radiation patterns plots are added to the far field node in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the total far field defines as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed by clicking on their name in the navigation tree. They are displayed in EM.Cube's project workspace and are overlaid on the project's structure. The view of a 3D radiation pattern plots can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the pattern, you can simply hide the whole structure or parts of it. The fields are always normalized to the maximum of the total far field. A legend box appears in the upper right corner of the 3D radiation plot, which can be moved around by clicking and dragging with the left mouse button. The calculated Directivity of the radiating structure is displayed at the bottom of the legend box. It is important to note that if the PO structure is excited by an incident plane wave, the radiation patterns indeed represent the far-zone scattered field data.&lt;br /&gt;
&lt;br /&gt;
[[File:PO46.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D radiation pattern of a parabolic dish reflector excited by a short dipole at its focal point.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO47.png|thumb|300px|PO Module's RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields. EM.Cube calculates the radar cross section (RCS) of a target, which is defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Three RCS quantities are computed: the &amp;amp;theta; and &amp;amp;phi; components of the radar cross section as well as the total radar cross section, which are dented by &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. In addition, EM.Cube's [[PO Module]] calculates two types of RCS for each structure: '''Bi-Static RCS''' and '''Mono-Static RCS'''. In bi-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at all &amp;amp;theta; and &amp;amp;phi; angles. In mono-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at the echo angles 180°-&amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. It is clear that in the case of mono-static RCS, the PO simulation engine runs an internal angular sweep, whereby the values of the plane wave incidence angles &amp;amp;theta; and &amp;amp;phi; are varied over the entire intervals [0°, 180°] and [0°, 360°], respectively, and the backscatter RCS is recorded.&lt;br /&gt;
&lt;br /&gt;
To calculate RCS, first you have to define an RCS observable instead of a radiation pattern. Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog. Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button. Select the type of RCS from the two radio buttons labeled '''Bi-Static RCS''' and '''Mono-Static RCS'''. The former is the default choice. The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees. At the end of a PO simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another azimuth angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the thee RCS plots &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; are added under the far field section of the Navigation Tree. These plots are very similar to the three 3D radiation pattern plots. You can view them by clicking on their names in the navigation tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. For visualization purposes, the 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box. Keep in mind that computing the 3D mono-static RCS may take an enormous amount of computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PO48.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: RCS of a PEC sphere illuminated by an laterally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Customizing 3D Plots ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's current distribution plots are interactive. When you move the mouse over a current plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the current data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the current value at that point. In other words, you can read the plot values using mouse-over. The legend of a current plot also shows the minimum and maximum current values, the current unit (A/m on metallic traces, V/m on slot traces and A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; on embedded objects) as well as the mean current and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys25_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading current values from a current distribution map by mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic current distributions: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the current amplitude and phase using colored triangular mesh cells. The second type is a vectorial plot showing cones (or arrows) directed along the visualized current component. In the case of the total electric current distribution, the cone plot shows the overall direction of the currents at any point on the surface of objects. To set the type of a current plot, open the current distribution plot's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the current distribution before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys26_tn.png|400px]] [[File:po_phys27_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A vectorial (cone-type) current distribution plot of the PEC sphere: (Left) overlaid on mesh and (Right) with the sphere object frozen.&lt;br /&gt;
&lt;br /&gt;
Current distribution maps are displayed with some default settings and options. You can customize the individual maps (total, magnitude, phase, etc.). To do so, open the '''Output Plot Settings Dialog''' by right clicking on the specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. Two '''scale''' options are available: '''Linear''' and '''dB'''. With the '''Linear''' (default) option selected, the current value is always normalized to the maximum total current in that plane, and the normalized scale is mapped between the minimum and maximum values. If the '''dB''' option is selected, the normalized current is converted to dB scale. The plot limits (bounds) can be set individually for every current distribution plot. In the '''Limits''' section of the plot's property dialog, you see four options: '''Default''', '''User Defined''', '''95% Conf.''' and '''95% Conf.'''. Select the user defined option and enter new values for the '''Lower''' and '''Upper''' limits. The last two options are used to remove the outlier data within the 95% and 99% confidence intervals, respectively. In other words, the lower and upper limits are set to ? ± 1.96? and ? ± 2.79? , respectively, assuming a normal distribution of the data. Three color maps are offered: '''Default''', '''Rainbow''' and '''Grayscale'''. You can hide the legend box by deselecting the box labeled '''Show Legend Box'''. You can also change the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The output plot settings dialog.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's field plots are interactive. When you move the mouse over a field plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the field data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the field value at that point. In other words, you can read the plot values using mouse-over. The legend of a field plot also shows the minimum and maximum field values, the field unit (V/m for electric and A/m for magnetic) as well as the mean field and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys33_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading field values form a 3-D sensor plot using mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic fields: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the field amplitude and phase using small colored pixels whose size is depends on the total size of the sensor plane and its number of samples. The second type is a vectorial plot showing cones (or arrows) directed along the visualized field component. In the case of the total electric and magnetic fields, the cone plots show the overall direction of the fields at any point on the sensor plane. To set the type of a field plot, open the field sensor's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the field sensor before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys34_tn.png|400px]] [[File:po_phys35_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Vectorial visualization of the electric and magnetic fields: (Left) E-field, (Right) H-field.&lt;br /&gt;
&lt;br /&gt;
Similar to current distribution plots, field plots (total, magnitude, phase, etc.) are displayed with some default settings and options, which can be further customized individually. To do so, open the '''Output Plot Settings''' dialog by right clicking on a specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. The settings are identical to those of current distribution plots. Two scale options, linear and dB, are available. You can also change the lower and upper limits of the individual field plots as well as their color map.&lt;br /&gt;
&lt;br /&gt;
=== 2D Radiation Pattern &amp;amp;amp; RCS Graphs ===&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes as well as an additional user defined phi plane cut are available for plotting on 2-D graphs. There are a total of eight 2-D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or select '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by clicking and highlighting its '''ID''' in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the theta and phi angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.CUBE, the axial ratio is always defined in the LCPz or RCPz sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2-D Cartesian graphs of the axial ratio as functions of the theta angle a generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of a PO sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In this case, either quantity needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
The 2D RCS graphs can be plotted from EM.CUBE's data manager exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. At the end of a sweep simulation, EM.CUBE calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys40.png]]&lt;br /&gt;
&lt;br /&gt;
The data manager dialog showing a list of 2-D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
The 2-D radiation patterns in the XY, YZ and ZX plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== PO Sweep Simulations ===&lt;br /&gt;
&lt;br /&gt;
You can run EM.Cube's PO simulation engine in the sweep mode, whereby a parameter like frequency, plane wave incident angles or a user defined variable is varied over a specified range at predetermined samples. The output data are saved into data files for visualization and plotting. EM.Cube's [[PO Module]] currently offers three types of sweep:&lt;br /&gt;
&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
To run a PO sweep, open the '''Simulation ''''''Run Dialog''' and select one of the above sweep types from the '''Simulation Mode''' dropdown list of this dialog. If you select either frequency or angular sweep, the '''Settings''' button located next to the simulation mode dropdown list becomes enabled. If you click this button, the Frequency Settings Dialog or Angle Settings Dialog opens up, respectively. In the frequency settings dialog, you can set the start and end frequencies as well as the number of frequency samples. The start and end frequency values are initially set based on the project's center frequency and bandwidth. During a frequency sweep, as the project's frequency changes, so does the wavelength. As a result, the mesh of the structure also changes at each frequency sample. The frequency settings dialog gives you three choices regarding the mesh of the project structure during a frequency sweep:&lt;br /&gt;
&lt;br /&gt;
# Fix mesh at the highest frequency.&lt;br /&gt;
# Fix mesh at the center frequency.&lt;br /&gt;
# Re-mesh at each frequency.&lt;br /&gt;
&lt;br /&gt;
You can run an angular sweep only if your project has a plane wave excitation. In this case, you have to define a plane wave source with the default settings. During an angular sweep, either the incident theta angle or incident phi angle is varied within the specified range. The other angle remains fixed at the value that is specified in the '''Plane Wave Dialog'''. You have to select either '''Theta''' or '''Phi''' as the '''Sweep Angle''' in the Angle Settings Dialog. You also need to set the start and end angles as well as the number of angle samples.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, one or more user defined [[variables]] are varied at the same time over their specified ranges. This creates a parametric space with the total number of samples equal to the product of the number of samples for each variable. The user defined [[variables]] are defined using EM.Cube's '''[[Variables]] Dialog'''. For a description of EM.Cube [[variables]], please refer to the &amp;amp;quot;Parametric Modeling, Sweep &amp;amp;amp; [[Optimization]]&amp;amp;quot; section of EM.Cube Manual or see the &amp;amp;quot;Parametric Sweep&amp;amp;quot; sections of the FDTD or [[Planar Module]] manuals.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys52.png]] [[File:po_phys54.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Frequency Settings and Angle Settings dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Animation Of PO Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a frequency sweep, angular sweep or parametric sweep simulation in EM.Cube's [[PO Module]], the output data are saved for visualization and plotting. In particular, if you have defined current distribution, field sensor or far field observables in your project, multiple 3D plots, as many as the total number of sweep samples, are added to the Navigation Tree. In a single simulation run, a total of 14 current distribution plots, 14 field sensor plot and 3 radiation pattern plots or 3 RCS plots are generated under every observable node defined in the Navigation Tree. However, after a sweep simulation, only one plot is saved for each sweep sample. This is done to keep the resulting plots manageable. Thus, only the total radiation pattern or total RCS are saved for each sweep sample. In the case of a current distribution observable, you have the choice to save either the magnitude of total electric current distribution '''|J&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''or the magnitude of total magnetic current distribution '''|M&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''. To change this, open the '''Current Distribution Dialog''' by right clicking on the observable's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Current Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''Electric Current (J)''' or '''Magnetic Current (M)'''. Similarly, in the case of a field sensor observable, you have the choice to save either the total E-field magnitude plot or the total H-field magnitude plot. To change this, open the '''Field Sensor Dialog''' by right clicking on a field sensor's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Field Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''E-Field''' or '''H-Field'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO39.png]] [[File:PO40.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the current or field types for sweep data visualization in [[PO Module]]'s Current Distribution and Field Sensor dialogs.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.CUBE consists of consecutive display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
The animation controls dialog and animation of the H-field plots of a PEC sphere after an angular sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Terrano</id>
		<title>EM.Terrano</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Terrano"/>
				<updated>2013-06-14T14:52:15Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Terrain Surfaces vs. Global Ground */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Taking out this picture for now for consistency&lt;br /&gt;
[[File:urban.png]]--&amp;gt;&lt;br /&gt;
EM.Terrano is a physics-based, site-specific, wave propagation modeling tool that enables engineers to quickly determine how radio waves propagate in urban, natural or mixed environments. The rapid growth of wireless communications along with the high costs associated with the design and deployment of effective wireless infrastructures underline a persistent need for computer aided communication network planning tools. Wireless engineers have long used simplistic statistical prediction models based on measurements that often exhibit considerable errors especially in areas having mixed building sizes.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Terrano has helped wireless engineers around the globe model the physical channel and the mechanisms by which radio signals propagate from transmitters to receivers. EM.Terrano’s advanced ray tracing simulator finds the dominant propagation paths specific to the site in question. It calculates the true signal characteristics at the actual locations using physical databases of the buildings and terrain at a given site, not those of a statistically average or representative environment. EM.Terrano’s ray tracer is based on the shoot-and-bounce-rays (SBR) method, which utilizes geometrical optics (GO) in combination with uniform theory of diffraction (UTD) models of building edges.&lt;br /&gt;
&lt;br /&gt;
The new EM.Terrano 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has created the opportunity to inject a host of new powerful features such as a highly customizable terrain generator, DEM terrain import, complex building constructions, and versatile interior wall arrangements for indoor propagation modeling. As a result of this seamless interface with EM.Cube's other modules, you can now model complex antenna systems in [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]], and generate antenna radiation patterns than can be used to model directional transmitters and receivers at the two ends of your propagation channel. Conversely, you can analyze a propagation scene in EM.Terrano and import the rays received at a certain receiver location as coherent plane wave sources to [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]]. You can also model periodic wall or ground structures using the periodic simulation capability of [[EM.Picasso]] or [[EM.Tempo]] and generate macromodels for their reflection and transmission coefficients as functions of the ray incidence angles. You can then define buildings or terrains in your propagation scene that are governed by such macromodels.&lt;br /&gt;
&lt;br /&gt;
== A Wireless Propagation Primer ==&lt;br /&gt;
Every wireless communication system involves a transmitter that transmits some sort of signal (voice, video, data, etc.), a receiver that receives and detects the transmitted signal, and a channel in which the signal is transmitted into the air and travels from the location of the transmitter to the location of the receiver. The channel is the physical medium in which the electromagnetic waves propagate. The successful design of a communication system depends on an accurate link budget analysis that determines whether the receiver receives adequate signal power to detect it against the background noise. The simplest channel is the free space. Real communication channels, however, are more complicated and involve a large number of wave scatterers. For example, in an urban environment, the obstructing buildings, vehicles and vegetation reflect, diffract or attenuate the propagating radio waves. As a result, the receiver receives a distorted signal that contains several components with different power levels and different time delays arriving from different angles.&lt;br /&gt;
&lt;br /&gt;
The different rays arriving at a receiver location create constructive and destructive interference patterns. This is known as the multipath effect. This together with the shadowing effects caused by building obstructions lead to channel fading. In many wireless applications, the total received power by the receiver is all that matters. In some others, the angle of arrival of the rays as well as their polarization are of immense interest. A fully polarimetric, coherent ray tracer like EM.Cube's Shooting-and-Bouncing-Rays (SBR) solver lets you compute and resolve all the rays received by a receiver including their power levels, time delays and angles of arrival.&lt;br /&gt;
&lt;br /&gt;
=== Free Space Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
In a free-space line-of-sight (LOS) communication system, the signal propagates directly from the transmitter to the receiver without encountering any obstacles (scatterers). Electromagnetic waves propagate in the form of spherical waves with a functional dependence of e&amp;lt;sup&amp;gt;j(&amp;amp;omega;&amp;lt;/sup&amp;gt;&amp;lt;sup&amp;gt;t-k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;R)&amp;lt;/sup&amp;gt;/R, where R is the distance between the transmitter and receiver, &amp;lt;math&amp;gt;\omega = 2\pi f&amp;lt;/math&amp;gt;, f is the signal frequency, &amp;lt;math&amp;gt;k_0 = \tfrac{\omega}{c} = \tfrac{2\pi}{\lambda}&amp;lt;/math&amp;gt;, c is the speed of light, and &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength at the operational frequency. By the time the signal arrives at the location of the receiver, it undergoes two changes. It is attenuated and its power drops by a factor of 1/R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, and additionally, it experiences a phase shift of &amp;lt;math&amp;gt;\tfrac{2\pi R}{\lambda_0}&amp;lt;/math&amp;gt;, which is equivalent to a time delay of R/c. The signal attenuation from the transmitter to the receiver is usually quantified by '''Path Loss''' defined as the ratio of the received signal power (P&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;) to the transmitted signal power (P&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;). Assuming isotropic transmitting and receiving radiators (i.e. radiating uniformly in all directions), the Path Loss in a free-space line-of-sight communication system is given by Friis’ formula:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = \left( \frac{\lambda_0}{4\pi R} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above formula assumes that the receiving antenna is polarization-matched. Normally, there is a polarization mismatch between the transmitting and receiving antennas. In the case of directional transmitting and receiving antennas, Friis’ formula takes the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = G_T G_R \left( \frac{\lambda_0}{4\pi R} \right)^2 ( \mathbf{ \hat{u}_T \cdot \hat{u}_R } )&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''u&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;''' and '''u&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''' are the unit polarization vectors of the transmitting and receiving antennas, and G&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt; and G&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; are their gains, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:los.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Line-of-Sight (LOS) Propagation Scenario.&lt;br /&gt;
&lt;br /&gt;
=== Multipath Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
Free-space line-of-sight communications is an ideal scenario that is typically used to model aerial or space applications. In ground-based systems, the presence of the ground as a very large reflecting surface affects the signal propagation to a large extent. Along the path from a transmitter to a receiver, the signal may also encounter many obstacles and scatterers such as buildings, vegetation, etc. In an urban canyon environment with many buildings of different heights and other scatterers, a line of sight between the transmitter and receiver can hardly be established. In such cases, the propagating signals bounce back and forth among the building surfaces. It is these reflected or diffracted signals that are often received and detected by the receiver. Such environments are referred to as “multipath”. The group of rays arriving at a specific receiver location experience different attenuations and different time delays. This gives rise to constructive and destructive interference patterns that cause fast fading. As a receiver moves locally, the receiver power level fluctuates sizably due to these fading effects.&lt;br /&gt;
&lt;br /&gt;
The use of statistical models for prediction of fading effects is widely popular among communication system designers. These models are either based on measurement data or derived from simplistic analytical frameworks. The statistical models often exhibit considerable errors especially in areas having mixed building sizes. In such cases, one needs to perform a physics-based, site-specific analysis of the propagation environment to accurately identify and establish all the possible signal paths from the transmitter to the receiver. This involves an electromagnetic analysis of the scene with all of its geometrical and physical details.  &lt;br /&gt;
&lt;br /&gt;
Link budget analysis for a multipath channel is a challenging task due to the large size of the computational domains involved. Typical propagation scenes usually involve length scales on the order of thousands of wavelengths. To calculate the path loss between the transmitter and receiver, one must solve Maxwell's equations in an extremely large space. Full-wave numerical techniques like the Finite Difference Time Domain (FDTD) method, which require a fine discretization of the computational domain, are therefore impractical for solving large-scale propagation problems. The practical solution is to use asymptotic techniques such as SBR, which utilize analytical techniques over large distances rather than a brute force discretization of the entire computational domain. Such asymptotic techniques, of course, have to compromise modeling accuracy for practical computation feasibility.&lt;br /&gt;
&lt;br /&gt;
[[File:multi1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A multipath propagation scene showing all the rays arriving at a particular receiver.&lt;br /&gt;
&lt;br /&gt;
=== The SBR Method ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] provides an asymptotic ray tracing simulation engine that is based on a technique known as Shooting-and-Bouncing-Rays (SBR). In this technique, propagating spherical waves are modeled as ray tubes or beams that emanate from a source, travel in space, bounce from obstacles and are collected by the receiver. As rays propagate away from their source (transmitter), they begin to spread (or diverge) over distance. In other words, the cross section or footprint of a ray tube expands as a function of the distance from the source. EM.Cube uses an accurate equi-angular ray generation scheme to that produces almost identical ray tubes in all directions to satisfy energy and power conservation requirements.&lt;br /&gt;
&lt;br /&gt;
When a ray hits an obstructing surface, one or more of the following phenomena may happen:&lt;br /&gt;
&lt;br /&gt;
# Reflection from the locally flat surface&lt;br /&gt;
# Transmission through the locally flat surface&lt;br /&gt;
# Diffraction from an edge between two conjoined locally flat surfaces&lt;br /&gt;
&lt;br /&gt;
EM.Cube discretizes all the objects of the scene into flat triangular facets. Obviously, rectangular and cubic objects preserve their geometric shapes through this discretization. Objects with curved surfaces such as cylinders, cones or spheres, are approximated by &amp;amp;quot;polymesh&amp;amp;quot; representations. The geometric fidelity of the resulting mesh depends on the specified mesh edge length. When a ray hits a triangular facet, the propagating spherical wave is approximated as a plane wave at the specular point. The reflection and transmission coefficients of the surface are calculated at the operational frequency and at the particular ray incident angle. &lt;br /&gt;
&lt;br /&gt;
A new reflected ray is generated at the specular point, which starts traveling and bouncing around in the scene. If the obstructing surface is penetrable, a second transmitted ray is generated and added to the scene. If the ray hits the edge of an obstacle, it is diffracted from that edge. This leads to the creation of a cone of new rays, which greatly complicate the computational problem. The Uniform Theory of Diffraction (UTD) is used to calculate the wedge diffraction coefficients at the edges of scattering blocks. Note that reflection, transmission and diffraction coefficients are all dependent on the polarization of the incident plane wave.&lt;br /&gt;
&lt;br /&gt;
A receiver may receive a large number of rays: direct line-of-sight rays from the transmitter, rays reflected or diffracted off the ground or terrain, rays reflected or diffracted from buildings or rays transmitted through buildings. Each received ray is characterized by its power, delay and angles of arrival, which are the spherical coordinate angles &amp;amp;theta; and &amp;amp;phi; of the incoming ray. The actual signal received and detected by the receiver is the superposition of all these rays with different power levels and different time delays. Most of the time, you will be interested in the coverage map of an area, which shows how much power is received by a grid of receivers spread over the area from a given fixed transmitter.&lt;br /&gt;
&lt;br /&gt;
=== Ray Reflection &amp;amp; Transmission ===&lt;br /&gt;
&lt;br /&gt;
[[File:reflect.png|thumb|350px|The Incident, Reflected and Transmitted Rays at the Interface Between Two Dielectric Media]]&lt;br /&gt;
&lt;br /&gt;
The incident, reflected and transmitted rays are each characterized by a triplet of unit vectors:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}, \hat{u}_{\perp}, \hat{k} } )&amp;lt;/math&amp;gt; representing the incident parallel polarization vector, incident perpendicular polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}', \hat{u}_{\perp}', \hat{k}' } )&amp;lt;/math&amp;gt; representing the reflected parallel polarization vector, reflected perpendicular polarization vector and reflected propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}'', \hat{u}_{\perp}'', \hat{k}'' } )&amp;lt;/math&amp;gt; representing the transmitted parallel polarization vector, transmitted perpendicular polarization vector and transmitted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The reflected ray is assumed to originate from a virtual image source point. The three triplets constitute three orthonormal basis systems. Below, it is assumed that the two dielectric media have permittivities &amp;amp;epsilon;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;epsilon;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, and permeabilities &amp;amp;mu;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;mu;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, respectively. A lossy medium with a conductivity &amp;amp;sigma; can be modeled by a complex permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = &amp;amp;epsilon;'&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; –j&amp;amp;sigma;/&amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. Assuming '''n''' to be the unit normal to the interface plane between the two media, and Z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;Omega; , the incident polarization vectors as well as all the reflected and transmitted vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp} = \frac{\hat{k} \times \hat{n}}{|\hat{k} \times \hat{n}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|} = \hat{u}_{\perp} \times \hat{k} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflected unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}' = \hat{k} - 2(\hat{k} \cdot \hat{n}) \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}' = \hat{u}_{\perp}' \times \hat{k}' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The transmitted unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}'' = \hat{n} \times a - \sqrt{1-a \cdot a} \; \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}'' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}'' = \hat{u}_{\perp}'' \times \hat{k}'' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{a} = (k_1/k_2) \mathbf{\hat{k} \times \hat{n}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_1 = k_0 \sqrt{\varepsilon_1 \mu_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_2 = k_0 \sqrt{\varepsilon_2 \mu_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_1 = Z_0 \sqrt{\mu_1 / \varepsilon_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_2 = Z_0 \sqrt{\mu_2 / \varepsilon_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sin\theta'' = \frac{k_1}{k_2}\sin\theta \text{ if } \sin\theta \le k_2/k_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml4.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml5.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflection coefficients at the interface are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penetration Through Thin Walls Or Surfaces ===&lt;br /&gt;
&lt;br /&gt;
[[File:thinwalltrans.png|thumb|350px|The Incident and Transmitted Rays through a Thin Wall]]&lt;br /&gt;
&lt;br /&gt;
In &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;, we assume that an incident ray gives rise to two rays, one is reflected at the specular point, and the other is transmitted almost in the same direction as the incident ray. The reflected ray is assumed to originate from a virtual image source point. Similar to the case of reflection and transmission at the interface between two dielectric media, here too we have three triplets of unit vectors, which all form orthonormal basis systems.&lt;br /&gt;
&lt;br /&gt;
The transmission coefficients are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\|} = \frac{(1-{\Gamma_{\|}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\|}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\perp} = \frac{(1-{\Gamma_{\perp}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\perp}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml21.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wedge Diffraction From Edges ===&lt;br /&gt;
&lt;br /&gt;
[[File:diffract.png|thumb|350px|The Incident Ray and Diffract Ray Cone at the Edge of a Building]]&lt;br /&gt;
&lt;br /&gt;
For the purpose of calculation of diffraction from building edges, we define a &amp;amp;quot;Wedge&amp;amp;quot; as having two faces, the 0-face and the ''n''-face. The wedge angle is a = (2-''n'')p, where the parameter ''n'' is required for the calculation of diffraction coefficients. All the diffracted rays lie on a cone with its vertex at the diffraction point and a wedge angle equal to the angle of incidence in the opposite direction. A diffracted ray is assumed to originate from a virtual image source point. Three triplets of unit vectors are defined as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_0, \hat{u}_l, \hat{t})}&amp;lt;/math&amp;gt; representing the unit vector normal to the edge and lying in the plane of the 0-face, the unit vector normal to the 0-face, and the unit vector along the edge, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f, \hat{u}_b, \hat{t})}&amp;lt;/math&amp;gt; representing the incident forward polarization vector, incident backward polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f', \hat{u}_b', \hat{t}')}&amp;lt;/math&amp;gt; representing the diffracted forward polarization vector, diffracted backward polarization vector and diffracted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The three triplets constitute three orthonormal basis systems. The propagation vector '''k'''' of the diffracted ray has to be constructed based on the diffraction cone as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{\hat{k}'} = \cos\phi_w \mathbf{\hat{u}_0} + \sin\phi_w \mathbf{\hat{u}_l} + &lt;br /&gt;
\mathbf{(\hat{k} \cdot \hat{t}) \hat{t}}, \quad 0 \le \phi_w \le \alpha&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the resolution of the angle &amp;amp;theta;&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt; is chosen to be the same as the resolution of the incident ray.&lt;br /&gt;
&lt;br /&gt;
The other unit vectors for the incident and diffracted rays are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f = \frac{\hat{k} \times \hat{t}}{|\hat{k} \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b = \hat{k} \times \hat{u}_f } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f' = \frac{\hat{k}' \times \hat{t}}{|\hat{k}' \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b' = \hat{k}' \times \hat{u}_f' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml9.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The diffraction coefficients are calculated in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_s = \frac{-e^{-j\pi/4}}{2n \sqrt{2\pi k} \sin\beta_0'}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \cot \left(\frac{\pi + (\phi-\phi')}{2n}\right) F[kLa^+(\phi-\phi')] +&lt;br /&gt;
  \cot \left(\frac{\pi - (\phi-\phi')}{2n}\right) F[kLa^-(\phi-\phi')] \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; R_{0 \perp} \cot \left(\frac{\pi - (\phi+\phi')}{2n}\right) F[kLa^-(\phi+\phi')] +&lt;br /&gt;
  R_{n \perp} \cot \left(\frac{\pi + (\phi+\phi')}{2n}\right) F[kLa^+(\phi+\phi')]&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_h = \frac{-e^{-j\pi/4}}{2n \sqrt{2\pi k} \sin\beta_0'}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \cot \left(\frac{\pi + (\phi-\phi')}{2n}\right) F[kLa^+(\phi-\phi')] +&lt;br /&gt;
  \cot \left(\frac{\pi - (\phi-\phi')}{2n}\right) F[kLa^-(\phi-\phi')] \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; R_{0 \|} \cot \left(\frac{\pi - (\phi+\phi')}{2n}\right) F[kLa^-(\phi+\phi')] +&lt;br /&gt;
  R_{n \|} \cot \left(\frac{\pi + (\phi+\phi')}{2n}\right) F[kLa^+(\phi+\phi')]&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml11.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where ''F(x)'' is the Fresnel Transition function:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = 2j \sqrt{x} e^{jx} \int_{\sqrt{x}}^{\infty} e^{-j\tau^2} \, d\tau &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, we have&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
s = |\rho_D - \rho_S| \\&lt;br /&gt;
s' = |\rho_D - \rho_r|&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L = \frac{s s' \sin^2 \beta'}{s + s'} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\pm}(\nu) = 2\cos^2 \left( \frac{2n\pi N^{\pm} - \nu}{2} \right), \quad \nu = \phi \pm \phi' &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml10.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml13.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;N^{\pm}&amp;lt;/math&amp;gt; are the integers which most closely satisfy the equations &amp;lt;math&amp;gt; 2n\pi N^{\pm} - \nu = \pm \pi &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SBR As An Asymptotic EM Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulation engine can be used as a versatile and powerful asymptotic electromagnetic (EM) solver. If you compare EM.Cube's [[Propagation Module]] with its other computational modules, you will notice a lot of similarities. While other modules group objects primarily by their material properties, [[Propagation Module]] categorizes the types of obstructing surfaces. Besides sharing the same ray-surface interaction mechanisms, all the objects belonging to a surface group also share the same material properties. [[Propagation Module]] offers similar source types and similar observable types as the other computational modules. For instance, the Hertzian dipole sources used in a SBR simulation are identical to those offered in PO, MoM3D and Planar modules. The plane wave sources are identical across all computational modules. [[Propagation Module]]'s sensor field planes, far field observables (either radiation patterns or RCS) and Huygens surfaces are all fully compatible with EM.Cube's other computational modules.&lt;br /&gt;
&lt;br /&gt;
As an asymptotic EM solver, the SBR engine can be used to model large-scale electromagnetic radiation and scattering problems. An example of this kind is radiation of simple or complex antennas in the presence of large scattering platforms. You have to keep in mind that by using an asymptotic technique in place of a full-wave method, you trade computational speed and lower memory requirements for modeling accuracy. In particular, the SBR method cannot take into account the electromagnetic coupling effects among nearby radiators or scatterers. However, when your scene spans thousands of wavelengths, an SBR simulation might often prove to be your sole practical solution.  &lt;br /&gt;
&lt;br /&gt;
=== Novelties Of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine utilizes an intelligent ray tracing algorithm based on the concept of  k-dimensional trees. A k-d tree is a space-partitioning data structure for organizing points in a k-dimensional space. k-d trees are particularly useful for searches that involve multidimensional search keys such as range searches and nearest neighbor searches. In a typical large radio propagation scene, there might be a large number of rays emanating from the transmitter that may never hit any obstacles. For example, upward-looking rays in an urban propagation scene quickly exit the computational domain. Rays that hit obstacles on their path, on the other hand, generate new reflected and transmitted rays. The k-d tree algorithm traces all these rays systematically in a very fast and efficient manner. Another major advantage of k-d trees is the fast processing of multi-transmitters scenes. Unlike the previous versions of the SBR solver which could handle one transmitter at a time and would superpose all the resulting rays at the end of the simulation, the new SBR shoots rays from all the transmitters at the same time.   &lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine performs fully polarimetric and coherent SBR simulations with arbitrary transmitter antenna patterns. The new engine solves directly for the vectorial field components at the receiver locations or field observation points. This is far more rigorous than the previous versions of the SBR solver which primarily utilized ray power calculations based on the two vertical and horizontal polarizations. In other words, EM.Cube's new SBR engine is a truly asymptotic &amp;amp;quot;field&amp;amp;quot; solver. As a result, you can visualize the magnitude and phase of all six electric and magnetic field components at any point in the computational domain. For power calculations at the receiver location, an isotropic, polarization-matched, receiving antenna is assumed.       &lt;br /&gt;
&lt;br /&gt;
In most scenes, the buildings and the ground or terrain can be assumed to be made of homogeneous materials. These are represented by their electrical properties such as permittivity e and electric conductivity s. More complex scenes may involve a multilayer ground or multilayer building walls. In such cases, one can no longer use the simple reflection or transmission coefficient formulas for homogeneous medium interfaces. EM.Cube calculates the reflection and transmission coefficients of multilayer structures as functions of incident angle, frequency and polarization and uses them at the respective specular points.  &lt;br /&gt;
&lt;br /&gt;
=== Limitations of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
It is very important to keep in mind that SBR is an asymptotic electromagnetic analysis technique that is based on Geometrical Optics (GO) and the Uniform Theory of Diffraction (UTD). It is not a &amp;amp;quot;full-wave&amp;amp;quot; technique, and it does not solve Maxwell's equations directly or numerically. SBR makes a number of assumptions, chief among them, a very high operational frequency such that the length scales involved are much larger than the operating wavelength. Under this assumed regime, electromagnetic waves start to behave like optical rays. Virtually all the calculations in SBR are based on far field approximations. &lt;br /&gt;
&lt;br /&gt;
In order to maintain a high computational speed for urban propagation problems, EM.Cube's SBR solver ignores double diffractions. Recall that diffractions from edges give rise to a large number of new secondary rays. The power of diffracted rays drops much faster than reflected rays. EM.Cube ignores diffracted rays that are not detected by any receiver. In other words, an edge-diffracted ray does not diffract again from another edge. However, reflected and penetrated rays do get diffracted from edges just as rays emanated directly from the sources do.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Propagation Scene ==&lt;br /&gt;
&lt;br /&gt;
An EM.Cube propagation scene typically consists of several elements. At a minimum, you need a transmitter (Tx) at some location to launch rays into the scene and a receiver (Rx) at another location to receive and collect the incoming rays. A transmitter and a receiver together make the simplest propagation scene, representing a free-space line-of-sight (LOS) channel. A transmitter is one of EM.Cube's several source types, while a receiver is one of EM.Cube's several observable types. A simpler source type is a Hertzian dipole. A simpler observable is a field sensor that is used to compute the electric and magnetic fields on a specified plane.&lt;br /&gt;
&lt;br /&gt;
An outdoor propagation scene may involve several buildings (modeled as impenetrable surfaces) and an underlying flat ground or irregular terrain surface. An indoor propagation scene may involve several walls (modeled as thin penetrable surfaces), a ceiling and a floor arranged according to a certain floor plan. You can also build mixed scenes involving both impenetrable and penetrable blocks, possibly along with irregular terrain surfaces. Your sources and observables can be placed anywhere in the scene. Your transmitters and receivers can be placed outdoors or indoors. A complete list of the various elements of a propagation scene is given in the '''Physical Structure''' section of [[Propagation Module]]'s Navigation Tree as follows:&lt;br /&gt;
&lt;br /&gt;
* Impenetrable Surfaces&lt;br /&gt;
* Penetrable Surfaces&lt;br /&gt;
* Terrain Surfaces&lt;br /&gt;
* Base Points&lt;br /&gt;
&lt;br /&gt;
Impenetrable, penetrable and terrain surfaces all obstruct the propagation of electromagnetic waves (rays) in the free space. What differentiates them is the types of physical phenomena that are used to model their interaction with the impinging rays. Base points are simply used to define transmitter and receiver locations in the scene. The following sections of this manual will describe each of these elements in detail.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Navigation Tree of EM.Cube's [[Propagation Module]].&lt;br /&gt;
&lt;br /&gt;
=== The Various Types Of Surfaces &amp;amp;amp; Blocks ===&lt;br /&gt;
&lt;br /&gt;
In a SBR simulation, the propagating rays hit the surface of building structures, walls, terrain (or global ground) and bounce back into the scene (reflection). Some rays penetrate thin walls or other penetrable surfaces and continue their path on the other side of the surface (transmission). The field intensity, phase and power of the reflected and transmitted rays depend on the material properties of the obstructing surface. The specular surface can be modeled as a simple homogeneous dielectric half-space or as a multilayer structure. In that respect, the buildings, walls, terrain or even the global ground all behave in a similar way:&lt;br /&gt;
&lt;br /&gt;
* They terminate an impinging ray and replace it with one or more new rays.&lt;br /&gt;
* They represent a specular interface between two media of different material compositions for calculating the reflection, transmission and possibly diffraction coefficients.&lt;br /&gt;
&lt;br /&gt;
EM.Cube has generalized the concept of '''Block''' as any object that obstructs and affects radio wave propagation. Rays hit the facets of a block and bounce off the surface of those facets or penetrate them and continue their propagation. Rays also get diffracted off the edges of these blocks. In EM.Cube's [[Propagation Module]], blocks are grouped together by the type of their interaction with rays. EM.Cube currently offers three types of blocks for use in a propagation scene:&lt;br /&gt;
&lt;br /&gt;
# '''Impenetrable Surfaces:''' Rays hit the facets of this type of blocks and bounce back, but they do not penetrate the object. It is assumed that the interior of such blocks or buildings are highly absorptive.&lt;br /&gt;
# '''Penetrable Surfaces:''' These blocks represent thin surfaces that are used to model the exterior and interior walls of buildings based on the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;. Rays reflect off the surface of penetrable surfaces and diffract off their edges. They also penetrate such thin surfaces and continue their paths on the other side of the wall.&lt;br /&gt;
# '''Terrain Surfaces:''' These blocks are used to provide one or more impenetrable, ground surfaces for the propagation scene. Rays simply bounce off terrain objects. The global ground acts as a flat super-terrain that covers the bottom of the entire computational domain. &lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to define block groups of each of the above three types. Each block group has the same color or texture and its members share the same material properties: permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and conductivity &amp;amp;sigma;. Also, all the penetrable surfaces belonging to the same block group have the same wall thickness. You can define many different block groups with certain properties and underneath each introduce many member objects with different geometrical shapes and dimensions. The table below summarizes the characteristics of each block type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Block Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Physical Effects&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Admissible Object Types&lt;br /&gt;
|-&lt;br /&gt;
| Impenetrable Surface&lt;br /&gt;
| Reflection, Diffraction&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Penetrable Surface&lt;br /&gt;
| Reflection, Diffraction, Transmission&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Terrain Surface&lt;br /&gt;
| Reflection&lt;br /&gt;
| Tessellated Objects Only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Impenetrable Surfaces For Outdoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(2).png|thumb|200px|[[Propagation Module]]'s Impenetrable Surface dialog]]   &lt;br /&gt;
&lt;br /&gt;
In outdoor propagation scenes such as &amp;amp;quot;Urban Canyons&amp;amp;quot;, you are primarily interested in the wireless coverage in the areas among buildings. You can assume that rays bounce off the exterior walls of these buildings but do not penetrate them. In other words, you ignore the transmitted rays and assume that they are either absorbed or diffused inside the buildings. This is not an unrealistic assumption. EM.Cube offers &amp;amp;quot;Impenetrable Blocks&amp;amp;quot; to model buildings in outdoor propagation scenes. A penetrable block has a color or texture property as well as material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and conductivity (s). By default, a brick building is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m. Impinging rays are reflected from the facets of impenetrable buildings or diffracted from their edges.&lt;br /&gt;
&lt;br /&gt;
To define a new impenetrable block group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on either the '''Impenetrable Surfaces''' item of the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the block properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the block group and select a color or texture.&lt;br /&gt;
# The electromagnetic model that determines ray-block interaction is selected under '''Specular Interface Type'''. Two options are available: '''Standard Material''' or '''User Defined Model'''. The former is the default choice and requires material properties, '''Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity''' (&amp;amp;sigma;), which are set to &amp;amp;quot;Brick&amp;amp;quot; by default. No magnetic properties are allowed for blocks.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Under an impenetrable block group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of an impenetrable surface. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. In this dialog, you can change the name of the material and its permittivity and electric conductivity. The box labeled &amp;amp;quot;Specify Loss Tangent&amp;amp;quot; is unchecked by default. If you check it, you can specify the '''Loss Tangent''' of the material, which, in turn, updates the value of electric conductivity at the center frequency of the project. You can also use EM.Cube's Material List, which will  be explained later.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to impenetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
=== Penetrable Surfaces For Indoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15(1).png|thumb|200px|[[Propagation Module]]'s Penetrable Surface dialog]]&lt;br /&gt;
&lt;br /&gt;
A typical indoor propagation scene usually involves an arrangement of walls that represent the interior of a building. The transmitters and receivers are then placed in the spaces among such walls. From the point of view of EM.Cube's SBR simulator, walls act like thin penetrable surfaces. EM.Cube uses the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot; to model penetrable surfaces. It assumes that rays simply penetrate a wall and exit at the same specular point on the opposite side of the wall. In other words, rays are not displaced by the walls, nor do they get trapped inside the walls (no internal reflection). This is equivalent to assuming a zero thickness for penetrable surfaces for the purpose of geometrical ray tracing, while the finite thickness of the &amp;amp;quot;thin&amp;amp;quot; surface is used for electromagnetic calculation of transmission coefficient. EM.Cube offers &amp;amp;quot;Penetrable Surface Blocks&amp;amp;quot; for the construction of rooms in indoor propagation scenes as well as modeling of hollow buildings and other structures. You can define many penetrable surface groups with arbitrary thicknesses and material properties (color, texture, permittivity and electric conductivity).&lt;br /&gt;
&lt;br /&gt;
To define a new penetrable surface group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on one of the '''Penetrable Surfaces''' item in the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the wall properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the surface group and select a color or texture.&lt;br /&gt;
# The properties of a penetrable surface are identical to those of an impenetrable surface, plus an additional thickness property.&lt;br /&gt;
# By default, a brick wall with a thickness of 0.5 units is assumed. You can change the '''Thickness''' of the penetrable surface as well as its '''Permittivity'''  &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and '''Electric Conductivity''' &amp;amp;sigma;.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Under a penetrable surface group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of a penetrable surface group including its default thickness. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. Similar to the case of impenetrable surfaces, from this dialog, you can change the material properties (permittivity and electric conductivity) as well as '''Thickness''', which is expressed in the project units. You can also use EM.Cube's Material List, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to penetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
You can construct several thin walls and arrange them as rooms. A regular room can be built by placing four vertical wall objects together with an optional horizontal wall at the top for the ceiling. Alternatively, you may use EM.Cube's hollow box objects or boxes with one or two capped end(s).  '''Keep in mind that all the penetrable surfaces belonging to a group have the same wall thickness, which is initially set to 0.5 project units by default. Also, note that solid CAD objects belonging to a penetrable surface group are treated as air-filled hollow structures.''' The thickness of penetrable surfaces is implied and not visualized when displaying objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Computational Domain &amp;amp;amp; Global Ground ===&lt;br /&gt;
&lt;br /&gt;
The SBR simulation engine requires a finite computational domain. All the stray rays that hit the boundaries of this finite domain are terminated during the simulation process. Such rays exit the computational domain and travel to the infinity, with no chance of ever reaching any receiver in the scene. When you define a propagation scene with various elements like buildings, walls, terrain, etc., a dynamic domain is automatically established and displayed as a wireframe box with green lines that surrounds the entire scene. Every time you create a new object, the domain is automatically adjusted and extended to enclose all the objects in the scene. You can change the size and color of the domain box through the Ray Domain Settings Dialog, which can be accessed in one of the following three ways:&lt;br /&gt;
&lt;br /&gt;
# Click the '''Domain''' [[File:image025.jpg]] button of the Simulation Toolbar.&lt;br /&gt;
# Select the '''Simulate''' &amp;amp;gt; '''Computational Domain''' &amp;amp;gt; '''Settings...''' item of the Simulate Menu.&lt;br /&gt;
# Right click on the '''Ray Domain''' item of the Navigation Tree and select '''Domain Settings...'''&lt;br /&gt;
# Use the keyboard shortcut '''Ctrl + A'''.&lt;br /&gt;
&lt;br /&gt;
The size of the Ray domain is specified in terms of six '''Offset''' parameters along the ±X, ±Y and ±Z directions. The default value of all these six offset parameters is 10 project units. You can change them arbitrarily. After changing these values, use the '''Apply''' button to make the changes effective while the dialog is still open.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Most outdoor and indoor propagation scenes include a flat ground at their bottom, which bounces incident rays back into the scene. EM.Cube's [[Propagation Module]] provides a global flat ground at z = 0. The global ground indeed acts as an impenetrable surface that blocks the entire computational domain from the z = 0 plane downward. It is displayed as a translucent green plane at z = 0 extending downward. The color of the ground plane is always the same as the color of the ray domain. The global ground is assumed to be made of a homogeneous dielectric material with a specified permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma;. By default, a rocky ground is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m. You can remove the global ground, in which case, you will have a free space scene. To disable the global ground, open up the Global Ground Settings Dialog, which can be accessed by right clicking on the '''Global Ground''' item in the Navigation Tree and selecting '''Global Ground Settings... '''Remove the check mark from the box labeled '''&amp;amp;quot;Include Half-Space Ground (z&amp;amp;lt;0)&amp;amp;quot;''' to disable the global ground. This will also remove the green translucent plane from the bottom of your scene. You can also change the material properties of the global ground and set new values for the permittivity and electric conductivity of the impenetrable, half-space, dielectric medium. '''Do not forget to disable the global ground if you want to model a free space propagation scene.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PROP4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s Global Ground Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Surfaces vs. Global Ground ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP16.png|thumb|200px|[[Propagation Module]]'s Terrain dialog]]&lt;br /&gt;
&lt;br /&gt;
A terrain surface acts as a custom, unlevel or irregular ground for your propagation scene. EM.Cube's default global ground blocks the z &amp;amp;lt; 0 half-space everywhere in the computational domain. You can simply turn off the global ground and create one or more terrain objects and place them arbitrarily in the scene. You can also import an external terrain model or file. A terrain represents an impenetrable surface with a more complex surface profile. You can have one or more terrain objects of finite extents and place them on or above the global ground.&lt;br /&gt;
&lt;br /&gt;
Terrain objects have some important differences with objects of the &amp;amp;quot;Impenetrable Surface&amp;amp;quot; type:&lt;br /&gt;
&lt;br /&gt;
# While impenetrable blocks can be created using any of EM.Cube's solid or surface CAD object creation tools, terrain objects are created either using EM.Cube's '''Terrain Generator''' or by importing an external terrain file. &lt;br /&gt;
# Terrain objects belong to a special type of CAD objects called &amp;amp;quot;Tessellated Objects&amp;amp;quot;, which differ from other regular CAD [[Surface Objects|surface objects]] or EM.Cube's polymesh surfaces.&lt;br /&gt;
# Terrain surfaces do not diffract impinging rays at their many small edges.&lt;br /&gt;
# Terrain objects affect the elevation of other objects or transmitters or receivers that are located above them.&lt;br /&gt;
&lt;br /&gt;
Just as other blocks are grouped by their color, texture and material composition, terrain objects are also grouped in a similar fashion. Before you can generate or import a new terrain object, first you have to define a terrain group and specify its color/texture and material properties. To define a new terrain group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Terrain''' item in the Navigation Tree and select '''Insert New Terrain...''' A dialog for setting up the terrain properties opens up offering a of preloaded material type (Rock) with predefined green color and no texture.&lt;br /&gt;
* Specify a name for the terrain group and select a color or texture.&lt;br /&gt;
* Similar to other blocks, you have to specify the material properties, Permittivity (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and Electric Conductivity (&amp;amp;sigma;), of the terrain group. Rock with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m is the default material choice for a new terrain.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
You can change the properties of a terrain surface group from its property dialog. Click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog, which is identical to the case of impenetrable surfaces. You can also use EM.Cube's Material List, which will be explained later. When a new terrain type is created, its node on the Navigation Tree becomes active. Under this node you can create and add new terrain objects. When a terrain node is active for drawing, all CAD object creation tools are disabled. You have three options for creating a new terrain object, which will be described in detail in the next sections of this manual:&lt;br /&gt;
&lt;br /&gt;
# Use EM.Cube's '''Terrain Generator'''.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.TRN'''&amp;amp;quot; type.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.DEM'''&amp;amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
=== Using Terrain Generator ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18.png|thumb|250px|[[Propagation Module]]'s Terrain Generator dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides a convenient and powerful Terrain Generator for creating a variety of terrain [[Surface Objects|surface objects]]. EM.Cube's Terrain Generator looks very similar to [[CubeCAD]]'s Surface Generator. However, whereas the Surface Generator creates a generic or polymesh surface object, Terrain Generator always creates another special type of object known as a '''Tessellated Object'''. A terrain object is much simpler than EM.Cube's polymesh objects and is usually made up of triangular or quadrilateral facets. As such, terrain objects have limited editing capabilities. For example, you can cut, copy, paste, translate or rotate  terrain objects. But operations like scaling, mirroring, grouping (composite), arraying, exploding, linking or Boolean operations do not work on terrain objects.&lt;br /&gt;
&lt;br /&gt;
To create a new terrain object using Terrain Generator, first you need to define a terrain group in the Navigation Tree. Right click on the name of the terrain node and select '''Terrain Generator...''' from the contextual menu. This opens up the Terrain Generator Dialog. Using Terrain Generator, you can build a single terrain surface or an array of surfaces patched together. Some of the available terrain models include:&lt;br /&gt;
&lt;br /&gt;
# Flat Plane&lt;br /&gt;
# Hill (Elliptic Quadratic)&lt;br /&gt;
# Mountain (Elliptic Cone)&lt;br /&gt;
# 1-D and 2-D Cliff&lt;br /&gt;
# Gaussian Hump&lt;br /&gt;
# Undulated Sinusoid&lt;br /&gt;
# Undulated Sinc&lt;br /&gt;
# Super-quadratic Plateau&lt;br /&gt;
# Custom Function&lt;br /&gt;
# XY Grid Data&lt;br /&gt;
&lt;br /&gt;
In all of the above models, you can set the height of the surface object to an any desired value. You set the lateral extents of the surface and its resolution along the X and Y directions in the boxes labeled '''Range Start''', '''Range Stop''' and '''Range Step'''. The step values along the X and Y directions are a measure of surface smoothness: the smaller the step values, the higher the resolution and the smoother the resulting terrain object.&lt;br /&gt;
&lt;br /&gt;
Some surface types have an additional shape factor called '''Alpha''' that is identical to the alpha parameter in the surface generator. For example, a Gaussian Hump is defined as exp(-r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/(2a&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)), where r is the polar radius. For a Super-quadratic Hump, the input parameter a defines the degree of the super-quadratic surface. a = 2 corresponds to an ellipsoid. Larger values of a get close to a rectangular base with rounded corners. An undulated sinusoidal surface is defined by cos(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*cos(pay/D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;), and an undulated sinc is defined by D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;*D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;*sin(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*sin(pay/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/(2pxy), where D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; are the X and Y dimensions, respectively. Terrain Generator creates a unit cell based on the specified surface type. From the same dialog, you can also produce an array arrangement of such unit cells. Simply enter any number of elements along the X and Y directions in the boxes labeled '''Array'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP19.png|800px]]  &lt;br /&gt;
&lt;br /&gt;
Figure: A 4 × 4 array of hill terrain objects.&lt;br /&gt;
&lt;br /&gt;
You can define any arbitrary surface by entering an equation of the two [[variables]] x and y as z = f(x,y). In this case, you have to select the '''Custom Function''' option in the dropdown list labeled '''Model'''. You should enter your equation as any mathematical expression in the box labeled '''Function f(x,y)'''. You can use any of EM.Cube's mathematical functions listed in the '''Function Dialog''' or combine several of them. Note that after selecting the custom function option, the height of the surface is determined by your equation, and the '''Height''' box is disabled. You can also introduce random noise and create a rough terrain. You can do this by setting a nonzero value for '''Noise''', which represent the RMS peak-to-valley amplitude of the surface roughness. The figures below show two custom terrain surfaces modeled by the equation z = (x.y)/20 defined over the range [0, 10] in both X and Y directions. Random noise has been added to both surfaces, with the noise amplitude being 0.2 and 0.5 for the left and right figures, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP21.png|400px]] [[File:PROP20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Two noisy custom terrain surfaces both defined as z = (x.y)/20: (Left) RMS noise amplitude = 0.2, (right) RMS noise amplitude = 0.5.&lt;br /&gt;
&lt;br /&gt;
=== Generating Grid-Based Terrain ===&lt;br /&gt;
&lt;br /&gt;
Every time you create a new terrain object using Terrain Generator, an ASCII data file named &amp;amp;quot;GeneratedTerrain&amp;amp;quot; with a &amp;amp;quot;'''.TRN'''&amp;amp;quot; file extension is created and placed in your project folder. This is EM.Cube's simple native terrain file format that basically lists all the (x, y, z) coordinates of the generated surface points on a horizontal, rectangular XY grid. Terrain Generator simply takes your custom function definition or one of the selected catalog surface types and generates the digital elevation data on the specified grid.  &lt;br /&gt;
&lt;br /&gt;
Another type of terrain model that the terrain generator provides is '''XY Grid Data'''. In this case, you define a rectangular XY grid with a uniform grid cell size along the X and Y directions and manually define the Z-elevation for each grid point. This is similar to the surface generator's &amp;amp;quot;2D Uniform Grid&amp;amp;quot; model type in [[CubeCAD]]. Based on your input to '''Range Start''', '''Range Stop''' and '''Range Step''' along X and Y, a 2D grid is set up and displayed in a table at the bottom of the terrain generator dialog. By default, all the Z-elevations are set to zero initially. You can click on each table cell and overwrite it with a new value. At the end, click the '''Create''' button of the dialog to add the new grid-based terrain object to the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:terrain10_tn.png]]&lt;br /&gt;
&lt;br /&gt;
A grid-based terrain object.&lt;br /&gt;
&lt;br /&gt;
=== Importing &amp;amp;amp; Exporting Terrain Models ===&lt;br /&gt;
&lt;br /&gt;
You can import two types of terrain in EM.Cube's [[Propagation Module]]. The first type is &amp;amp;quot;'''.TRN&amp;amp;quot;''' terrain file, which is EM.Cube's native terrain format. It is a basic digital elevation map with a very simple ASCII data file format. The resolution of the terrain map in the X and Y directions is specified in meters as STEPS. The (x, y, z) coordinates of the terrain points are then listed one point per line. The other type of terrain format supported by EM.Cube is the standard '''7.5min DEM''' file format with a '''.DEM''' file extension. &lt;br /&gt;
&lt;br /&gt;
To import an external terrain model, first you have to create a terrain group node in the Navigation Tree. Right click on the name of the terrain group in the Navigation Tree and select either '''Import Terrain...''' or '''Import DEM File...''' A standard Windows '''Open Dialog''' opens up, with the file type set to .TRN or .DEM extensions, respectively. You can browse your folders and find the right terrain model file to import.&lt;br /&gt;
&lt;br /&gt;
You can also export all the terrain objects in the project workspace as a terrain file with a '''.TRN''' file extension. You can even import a DEM terrain model from an external file and then save and export it as a native terrain (.TRN) file. To export the terrain, select '''File''' &amp;amp;gt; '''Export...''' from [[Propagation Module]]'s '''File Menu'''. The standard Windows Save Dialog opens up with the default file type set to '''.TRN'''. Type in a name for your new terrain file and click the '''Save''' button to export the terrain data.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-12_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figur: An imported external terrain model.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Surface Models ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP26.png|thumb|200px|Propagation Module's Penetrable Surface Dialog showing a three-layer wall composition]]&lt;br /&gt;
&lt;br /&gt;
Most of the time, your outdoor propagation scene consists of simple buildings made of single-layer walls with standard material properties (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;). In the case of a single-layer impenetrable surface, the specular interface is an infinite dielectric half-space, which reflects the impinging rays. Single-layer penetrable surfaces, on the other hand, involve finite-thickness dielectric walls, which both reflect and transmit the incident rays. Similarly, most of your indoor propagation scenes involve simple single-layer penetrable walls with the specified material properties &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. A thin wall acts like a finite-thickness dielectric slab that both reflects and transmits incident rays. In the case of the global ground or terrain objects, only ray reflection off the ground surface is considered.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[Propagation Module]], you can define multilayer surfaces with both reflection and transmission properties. You can define multilayer impenetrable buildings, multilayer penetrable walls, and multilayer terrain, with an arbitrary number of layers having different material compositions. You define a multilayer surface in the property dialog of a block, whether impenetrable, penetrable or terrain. In the section entitled '''Surface Type''', two options are available: '''Standard Material''' or '''User Defined Model'''. For simple multilayer walls, select the '''Standard Material''' option. You can add new layers with arbitrary thickness and material parameters to the existing layers. To insert a new layer, deselect any items in the layer list, and click the '''Add/Edit''' button to open the &amp;amp;quot;Add Layer&amp;amp;quot; Dialog. Here you can enter a name for the new layer and values for its '''Thickness''', &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. You may also delete any layer by selecting and highlighting it and clicking the '''Delete''' button. You can move layers up or down using the '''Move Up''' and '''Move Down''' buttons and change the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
You can also search EM.Cube's material database by clicking the '''Material''' button of &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. This opens the '''Materials''' Dialog. Inside the material list select and highlight any row and click the '''OK''' button. The selected material will fill out all the fields in the &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. Inside the Materials Dialog, you can type the few first letters of any material, and it will take you to the corresponding row of the list.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Transferring Objects From Or To Other Modules ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube's [[Propagation Module]] and draw a solid object like a box in the project workspace without having defined any surface groups, it is assumed to be of the impenetrable surface type. A default impenetrable surface group called Block_1 is automatically added to the Navigation Tree, which holds your newly drawn object. The default group has the material properties of &amp;amp;quot;Brick&amp;amp;quot; (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m.) with a dark brown color. You can continue drawing new objects in the project workspace and adding them under this block node. Or you can define a new surface type with different properties. By default, the last surface group that was defined is '''Active'''. The current active surface group is always listed in bold letters in the Navigation Tree. When you draw a new object, it is always inserted under the current active surface group. Any surface group can be activated by right clicking its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move any object from its current surface group into any other available surface group. First select the object, then right click on its surface and select '''MoveTo &amp;amp;gt; Propagation &amp;amp;gt;'''. A submenu appears which lists all the available surface groups where you can transfer the selected object. You can also move objects among surface groups by selecting their names in the Navigation Tree and using the contextual menu. In a similar way, you can transfer objects from [[Propagation Module]] to EM.Cube's other modules or vice versa. '''Keep in mind that all the external model files such as STEP, IGES, STL, etc. are first imported to EM.Cube's [[CubeCAD]], from which you can transfer them to other modules.''' First select the object, then right click and select '''MoveTo &amp;amp;gt;'''. In the submenu you will see a list of all the EM.Cube modules that have at least one available group where you can transfer your selected object. You can select multiple objects for transfer. When using the keyboard's '''Shift Key''' or '''Ctrl Key''' for multiple selection, make sure that those keys are held down, when you right click to access the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Defining Sources &amp;amp;amp; Observables ==&lt;br /&gt;
&lt;br /&gt;
Like every other electromagnetic solver, EM.Cube's SBR ray tracer requires a source for excitation and one or more observables for generation of simulation data. EM.Cube's new [[Propagation Module]] offers several types of sources and observables for a SBR simulation. You can mix and match different source types and observable types depending on the requirements of your modeling problem. There are two types of sources:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Transmitter Sets|Transmitter]]&lt;br /&gt;
* [[#Hertzian Dipole Sources|Hertzian Dipole]]&lt;br /&gt;
&lt;br /&gt;
There are four types of observables:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Receiver Sets|Receivers]]&lt;br /&gt;
* [[#Defining Field Sensors|Field Sensor]]&lt;br /&gt;
* Far Fields&lt;br /&gt;
* Huygens Surface&lt;br /&gt;
&lt;br /&gt;
The simplest SBR simulation can be performed using a short dipole source with a specified field sensor plane. In this way, EM.Cube computes the electric and magnetic fields radiated by your dipole source in the presence of your multipath propagation environment. A &amp;amp;quot;classic&amp;amp;quot; urban propagation scene can be set up using a &amp;amp;quot;Transmitter&amp;amp;quot; source and an array of &amp;amp;quot;Receiver&amp;amp;quot; observables. A transmitter is a point radiator with a user defined radiation pattern. A receiver is a polarization-matched isotropic point radiator that collects the received rays at its aperture. Using receivers, you can calculate the received power coverage map of your propagation scene. You can also calculate your channel's path loss between the transmitter and all the receivers. &amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18(1).png|thumb|[[Propagation Module]]'s Transmitter dialog with a short dipole radiator selected]]&lt;br /&gt;
Earlier versions of EM.Cube's [[Propagation Module]] used to offer an isotropic radiator with vertical or horizontal polarization as the simplest transmitter type. This release of EM.Cube has abandoned isotropic radiator transmitters because they do not exist physically in a real world. Instead, the default transmitter radiator type is now a Hertzian dipole. Note that before defining a transmitter, first you have to define a base set to establish the location of the transmitter. Most simulation scenes involve only a single transmitter. Your base set can be made up of a single point for this purpose. &lt;br /&gt;
&lt;br /&gt;
To define a new Transmitter Set, go to the '''Sources''' section of the Navigation Tree, right click on the '''Transmitters''' item and select '''Insert Transmitter...''' A dialog opens up that contains a default name for the new Transmitter Set as well as a dropdown list labeled '''Select Base Set'''. In this list you will see all the available base sets already defined in the project workspace. Select the desired base set to associate with the transmitter set. Note that if the base set contains more than one point, then more than one transmitter will be created and contained in your transmitter set. After defining a transmitter set, the base points change their color to the transmitter color, which is red by default.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Radiator&amp;amp;quot; section of the dialog, you have two options to choose from: &amp;amp;quot;Short Dipole&amp;amp;quot; and &amp;amp;quot;User Defined&amp;amp;quot;. The default option is short dipole. A short dipole radiator has a '''Length'''''dl'' expressed in project units, a current '''Amplitude''' in Amperes and a current '''Phase''' in degrees. The '''Direction''' of the dipole is determined by its unit vector that has three X, Y and Z components. By default, a Z-directed short dipole radiator is assumed. You can change all parameters of the dipole as you wish. Keep in mind that all the transmitters belonging to the same set have parallel radiators with identical properties.&lt;br /&gt;
&lt;br /&gt;
=== Defining Base Point Sets ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP1.png|thumb|[[Propagation Module]]'s Base Set dialog]]&lt;br /&gt;
In order to tie up transmitters and receivers with CAD objects in the project workspace, EM.Cube uses point objects to define transmitters and receivers. These point objects represent the base of the location of transmitters and receivers in the computational domain. Hence, they are grouped together as &amp;amp;quot;Base Sets&amp;amp;quot;. You can easily interchange the role of transmitters and receivers in a scene by switching their associated bases. The usefulness of concept of base sets will become apparent later when you place transmitters or receivers on an irregular terrain and adjust their elevation.   &lt;br /&gt;
&lt;br /&gt;
To create a new base set, right click on the '''Base Sets''' item of Navigation Tree and select '''Insert Base Set...''' A dialog for setting up the Base Set properties opens up.&lt;br /&gt;
&lt;br /&gt;
# Enter a name for the base set and change the default blue color if you wish. It is useful to differentiate the base sets associated with transmitters and receivers by their color.&lt;br /&gt;
# Click the '''OK''' button to close the Base Set Dialog.&lt;br /&gt;
&lt;br /&gt;
Once a base set node has been added to the Navigation Tree, it becomes the active node for new object drawing. Under base sets, you can only draw point objects. All other object creation tools are disabled. A point is initially drawn on the XY plane. Make sure to change the Z-coordinate of your radiator, otherwise, it will fall on the global ground at z = 0. You can also create arrays of base points under the same base set. This is particularly useful for setting up receiver grids to compute coverage maps. Simply select a point object and click the '''Array Tool''' of '''Tools Toolbar''' or use the keyboard shortcut &amp;amp;quot;A&amp;amp;quot;. Enter values for the X, Y or Z spacing as well as the number of elements along these three directions in the Array Dialog. In most propagation scenes you are interested in 2D horizontal arrays along a fixed Z coordinate (parallel to the XY plane).&lt;br /&gt;
&lt;br /&gt;
=== Defining Transmitter Sets ===&lt;br /&gt;
&lt;br /&gt;
A short dipole is the closest thing to an omni-directional radiator. The direction or orientation of the short dipole determines its polarization. In many applications, you may rather want to use a directional antenna for your transmitter. You can model a radiating structure using EM.Cube's FDTD, Planar, MoM3D or PO modules and generate a 3D radiation pattern data file for it. These data are stored in a specially formatted file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension, which contains columns of spherical &amp;amp;phi; and &amp;amp;theta; angles as well as the real and imaginary parts of the complex-valued far field components '''E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;''' and '''E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;'''. The &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field determine the polarization of the transmitting radiator. &lt;br /&gt;
&lt;br /&gt;
To define a directional transmitter radiator, you need to select the &amp;amp;quot;User Defined&amp;amp;quot; option in the &amp;amp;quot;Radiator&amp;amp;quot; section of the Transmitter Dialog. You can do this either at the time of creating a transmitter set, or afterwards by opening the property dialog of the transmitter set. In the &amp;amp;quot;Custom Pattern Parameters&amp;amp;quot;, click the '''Import Pattern''' button to set the path for the radiation data file. This opens up the standard Windows Open dialog, with the default file type or extension set to &amp;amp;quot;.RAD&amp;amp;quot;. Browse your folders to find the right data file. A radiation pattern file usually contains the value of &amp;amp;quot;Total Radiated Power&amp;amp;quot; in its file header. This is used by default for power calculations in the SBR simulation. However, you can check the box labeled &amp;amp;quot;'''Custom Power'''&amp;amp;quot; and enter a value for the transmitter power in Watts. EM.Cube can also rotate the imported radiation pattern arbitrarily. In this case, you need to specify the '''Rotation''' angles in degrees about the X-, Y- and Z-axes. Note that these rotations are performed sequentially and in order: first a rotation about the X-axis, then a rotation about the Y-axis, and finally a rotation about the Z-axis. &lt;br /&gt;
&lt;br /&gt;
[[File:PROP19(1).png]] [[File:PROP20(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Transmitter dialog with a user defined radiator selected.&lt;br /&gt;
&lt;br /&gt;
=== Multiple Transmitters vs. Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulations are fully coherent and 3D-polarimetric. This means that the phase and polarization of all the rays are maintained and processed during their bounces in the scene. Your propagation scene can have more than one transmitter. During an SBR simulation, all the rays emanating from all the transmitters are traced in the propagation scene. All the received rays at a given receiver location are summed coherently and vectorially. This is based on the principle of linear superposition. All the transmitters belonging to the same transmitter set have the same radiation properties. They are either parallel short dipole radiators with the same current amplitudes and phases, or parallel user defined radiators with identical radiation patterns. As these transmitters are placed at different spatial locations, they effectively form an antenna array with identical elements. The array factor is simply determined by the coordinates of the base points. If you want to have different amplitude or phases, then you need to define different transmitter sets.&lt;br /&gt;
&lt;br /&gt;
If that radiators are indeed the elements of an actual antenna array with a half wavelength spacing or so, we recommend that you import the radiation pattern of the array structure instead and replace the whole multi-radiator system with a single point transmitting radiator in your propagation scene. This case is usually encountered in MIMO systems, and using an equivalent point transmitter is an acceptable approximation because the total size of the array aperture is usually much smaller than the dimensions of your propagation scene and its representative length scales. In that case, you need to position the equivalent point radiator at the radiation center of the antenna array. This depends on the physical structure of the antenna array. However, keep in mind that any reasonable guess may still provide a good approximation without any significant error in the received ray data.    &lt;br /&gt;
&lt;br /&gt;
=== Defining Receiver Sets ===&lt;br /&gt;
&lt;br /&gt;
Receivers act as observables in a propagation scene. The objective of a SBR simulation is to calculate the far-zone electric fields and the total received power at the location of a receiver. In that sense, receivers indeed act as field observation points. You need to define at least one receiver in the scene before you can run a SBR simulation. You define the receivers of your scene by associating them with the base sets you have already defined in the project workspace. Unlike transmitters that usually one or few, a typical propagation scene may involve a large number of receivers. To generate a wireless coverage map, you need to define an array of points as your base set.    &lt;br /&gt;
&lt;br /&gt;
To define a new Receiver Set, go to the Observables section of the Navigation Tree, right click on the '''Receivers''' item and select '''Insert Receiver...''' A dialog opens up that contains a default name for the new Receiver Set as well as a dropdown list labeled '''Select Radiator Set'''. In this list you will see all the available base sets that you have already define in the project workspace. Select and designate the desired base set as the receiver set. Note that if the base set contains more than one point, all of them are designated as receivers. After defining a receiver set, the points change their color to the receiver color, which is yellow by default. The first element of the set is represented by a larger ball of the same color indicating that it is the selected receiver in the scene. The Receiver Set Dialog is also used to access individual receivers of the set for data visualization at the end of a simulation. At the end of an SBR simulation, the button labeled &amp;amp;quot;Show Ray Data&amp;amp;quot; becomes enabled. Clicking this button opens the Ray Data Dialog, where you can see a list of all the received rays at the selected receiver and their computed characteristics.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP21(1).png]] [[File:PROP22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Receiver dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Field Sensors ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|[[Propagation Module]]'s Field Sensor dialog]]&lt;br /&gt;
As an asymptotic electromagnetic field solver, the SBR simulation engine can compute the electric and magnetic field distributions in a specified plane. In order to view these field distributions, you must first define field sensor observables before running the SBR simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear. &lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.   &lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a SBR simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|E_{tot}|} = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|H_{tot}|} = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Computing Radiation Patterns In SBR ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
== Scene Discretization &amp;amp;amp; Adjustment ==&lt;br /&gt;
&lt;br /&gt;
=== The Need For Discretization Of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
In a typical SBR simulation, a ray is traced from the location of the source until it hits a scatterer. The SBR method assumes that the ray hits either a flat facet of the scatterer or one of its edges. In the case of hitting a flat facet, the specular point is used to launch new reflected and transmitted rays. The surface of the facet is treated as an infinite dielectric medium interface, at which the reflection and transmission coefficients are calculated. In the case of hitting an edge, new diffracted rays are generated in the scene. However, only those who reach a nearby receiver in their line of sight are ever taken into account. In other words, diffractions are treated locally.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to draw any type of surface or solid CAD objects under impenetrable and penetrable surface groups. Some of these objects have flat faces such as boxes, pyramids, rectangle or triangle strips, etc. Some others contain curved surfaces or curved boundaries such as cylinders, cones, etc. All the non-flat surfaces have to be discretized in the form of a collection of smaller flat facets. EM.Cube uses a triangular surface mesh generator to discretize the penetrable and impenetrable [[Surface Objects|surface objects]] of your propagation scene. This mesh generator is very similar to the ones used in EM.Cube's two other modules: MoM3D and Physical Optics (PO). &lt;br /&gt;
&lt;br /&gt;
You can build a variety of surface and [[Solid Objects|solid objects]] using EM.Cube's native &amp;amp;quot;Curve&amp;amp;quot; CAD objects like lines, polylines, circles, etc. You can use tools like Extrude, Loft, Strip-Sweep, Pipe-Sweep, etc. to transform curves into surface or [[Solid Objects|solid objects]]. '''However, keep in mind that all the &amp;amp;quot;Curve&amp;amp;quot; CAD objects are ignored by the SBR mesh generator and are therefore not sent to the simulation engine.'''&lt;br /&gt;
&lt;br /&gt;
=== Viewing SBR Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can view and examine the discretized version of your scene objects as they are sent to the SBR simulation engine. To view the mesh, click the '''Mesh''' [[File:mesh_tool.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''', or use the keyboard shortcut '''Ctrl+M'''. A triangular surface mesh of your physical structure appears in the project workspace. In this case, EM.Cube enters it mesh view mode. You can perform view operations like rotate view, pan, zoom, etc. But you cannot select objects, or move them or edit their properties. To get out of the Mesh View and return to EM.Cube's Normal View, press the '''Esc Key''' of the keyboard, or click the Mesh button of the Simulate Toolbar once again, or go to the Simulate Menu and deselect the '''Discretization &amp;amp;gt;''' '''Show Mesh''' item.&lt;br /&gt;
&lt;br /&gt;
You can adjust the mesh resolution and increase the geometric fidelity of discretization by creating more and finer triangular facets. On the other hand, you may want to reduce the mesh complexity and send to the SBR engine only a few coarse facets to model your buildings. To adjust the mesh resolution, open the Mesh Settings Dialog by clicking the '''Mesh Settings''' [[File:mesh_settings.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt;''' '''Mesh Settings...'''. This dialog provides a single parameters: '''Edge Length'''., which has a default value of 100 project units. If you are already in the Mesh View Mode and open the Mesh Settings Dialog, you can see the effect of changing the edge length using the '''Apply''' button. Click OK to close the dialog.&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules that express the default mesh density based on the wavelength, the resolution of the SBR mesh generator is expressed in project length units. The default edge length value of 100 units might be too large for non-flat objects. You may have to use a lower value to capture the curvature of your curved structures adequately. &lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-29.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Special Discretized Object Types ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, terrain objects are represented by and saved as special &amp;amp;quot;Tessellated&amp;amp;quot; objects with quadrilateral cells. This is true of terrain objects that you create yourself using EM.Cube's Terrain Generator as well as all the terrain objects that you import from external files to your project. The center of each cell represents the terrain elevation at that point. Tessellated objects are considered as discretized objects by EM.Cube and they are not meshed one more time by the SBR mesh generator. Each quadrilateral cell is divided into two triangular cells before being passed to the SBR simulation engine. Therefore, when using EM.Cube's Terrain Generator to create a new terrain object, you have to pay special attention to the resolution of the terrain object as it determines the total number of terrain facets sent to the simulation engine. A high resolution terrain, although looking better and more realistic, may easily lead to an enormous computational problem.&lt;br /&gt;
&lt;br /&gt;
You can use EM.Cube's &amp;amp;quot;Polymesh&amp;amp;quot; tool to discretize solid and surface CAD objects. You can manually control the mesh characteristics of polymesh objects including inserting new nodes on faces and edges or deleting existing nodes. In addition, EM.Cube's Solid Generator and Surface Generator tools create ploymesh solids and surfaces, respectively. Like tessellated object, polymesh objects are also considered as discretized objects by EM.Cube and they are not meshed again by the SBR mesh generator.   &lt;br /&gt;
&lt;br /&gt;
=== SBR Mesh Rules &amp;amp;amp; Considerations ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
=== Adjusting Block Elevation On Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, buildings and all other CAD objects are initially created on the XY plane by default. In other words, the Z-coordinate of the local coordinate system (LCS) of all blocks is set to zero until you change them. As long as you use the global ground, all is fine as your buildings are seated on the ground. When your propagation scene has an irregular terrain, you want to place your buildings on the terrain and not buried under it. Buildings in EM.Cube are not adjusted to the terrain elevation automatically. You need to instruct EM.Cube to do so.&lt;br /&gt;
&lt;br /&gt;
To update the building positions and adjust their elevation to the underlying terrain, right click on the '''Terrain''' item of the Navigation Tree and select '''Adjust Scene Elevation''' from the context menu. All the blocks in the scene are automatically elevated in the Z direction such that their bases sit on the terrain. In effect, all the blocks are translated along the global Z axis by proper amounts such that their local Z coordinate equals the Z-elevation of the underlying terrain object. This feature is particularly useful if you change the location of the terrain or import a new terrain after the blocks have been created.&lt;br /&gt;
&lt;br /&gt;
Note: You have to make sure that the resolution of your terrain, its fluctuation scale and building dimensions are all comparable. Otherwise, on a high-resolution, rapidly varying terrain, you will have buildings whose bottoms are in contact with the terrain only at a few points and parts of them hang in the air.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_adjust1_tn.png|400px]] [[File:prop_adjust2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Scene with Buildings and Terrain Before and After Adjusting Elevation&lt;br /&gt;
&lt;br /&gt;
=== Transmitters &amp;amp;amp; Receivers Above An Irregular Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, all the transmitters and receivers are tied up with point objects in the project workspace. These point objects are grouped and organized in base sets. When you move the point objects or change their coordinates, all of their associated transmitters or receivers immediately follow them to the new location. For example, you usually define a grid of receivers using a base set that is made up of a uniformly spaced array of points and spread them in your scene. All of these receivers have the same height because their associated base points all have the same Z-coordinate. When your receivers are located above a flat terrain like the global ground, their Z-coordinates are equal to their height above the ground, as the terrain elevation is fixed and equal to zero everywhere. The same is true for transmitters, too.   &lt;br /&gt;
&lt;br /&gt;
In many propagation modeling problems, your transmitters and receivers may be located above an irregular terrain with varying elevation across the scene. In that case, you may want to place your transmitters or receivers at a certain height above the underlying ground. The Z-coordinate of a transmitter or receiver is now the sum of the terrain elevation at the base point and the specified height. EM.Cube gives you the option to adjust the transmitter and receiver sets to the terrain elevation. This is done for individual transmitter sets and individual receiver sets. At the top of the Transmitter Dialog there is a check box labeled &amp;amp;quot;'''Adjust Tx Sets to Terrain Elevation'''&amp;amp;quot;. Similarly, at the top of the Receiver Dialog there is a check box labeled &amp;amp;quot;'''Adjust Rx Sets to Terrain Elevation'''&amp;amp;quot;. These boxes are unchecked by default. As a result, your transmitter sets or receiver sets coincide with their associated base points in the project workspace. If you check these boxes and place a transmitter set or a receiver set above an irregular terrain, the transmitters or receivers are elevated from the location of their associated base points by the amount of terrain elevation as can be seen in the figure below.   &lt;br /&gt;
&lt;br /&gt;
To better understand why there are two separate sets of points in the scene, note that a point array (CAD object) is used to create a uniformly spaced base set. The array object always preserves its grid topology as you move it around the scene. However, the transmitters or receivers associated with this point array object are elevated above the irregular terrain and no longer follow a strictly uniform grid. If you move the base set from its original position to a new location, the base points' topology will stay intact, while the associated transmitters or receivers will be redistributed above the terrain based on their new elevations.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_txrx1_tn.png|400px]] [[File:prop_txrx2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Transmitters and receivers adjusted above an uneven terrain and their associated base sets.&lt;br /&gt;
&lt;br /&gt;
== Running A SBR Simulation ==&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] offers three types of ray tracing simulations:&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
An SBR analysis is the simplest ray tracing simulation and involves the following steps:&lt;br /&gt;
&lt;br /&gt;
# Set the unit of project scene and the frequency of operation. Note that EM.Cube's default project unit is millimeter. When working with the [[Propagation Module]], pay attention to the project unit. Radio propagation problems usually require meter, mile or kilometer as the project unit.&lt;br /&gt;
# Create the blocks and draw the buildings at the desired locations.&lt;br /&gt;
# Keep the default ray domain and accept the default global ground or change its material properties.&lt;br /&gt;
# Define the base sets (at least one for the transmitter and one for the receiver).&lt;br /&gt;
# Define the transmitter and receiver(s) using the available base sets.&lt;br /&gt;
# Run the SBR simulation engine.&lt;br /&gt;
# Visualize the coverage map and plot other data.&lt;br /&gt;
&lt;br /&gt;
You can access the [[Propagation Module]]'s run dialog by clicking the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or by selecting '''Simulate &amp;amp;gt; Run...''' or using the keyboard shortcut '''Ctrl+R'''. When you click the '''Run''' button, a new window opens up that reports the different stages of the SBR simulation and indicates the progress of each stage. After the SBR simulation is successfully completed, a message pops up and prompts the completion of the process.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== SBR Simulation Parameters ===&lt;br /&gt;
&lt;br /&gt;
There are a number of SBR simulation settings that can be accessed and changed from the SBR Settings Dialog. To open this dialog, click the button labeled '''Settings''' on the right side of the '''Select Engine''' dropdown list in the Run Dialog. EM.Cube's SBR simulation engine allows you to separate the physical effects that are calculated during a ray tracing process. You can selectively enable or disable '''Ray Reflection''', '''Ray Transmission''' and '''Ray Diffraction'''. By default, all three effects are checked and included in the computations. Separating these effects sometimes help you better analyze your propagation scene and understand the impact of various blocks in the scene.&lt;br /&gt;
&lt;br /&gt;
EM.Cube requires a finite number of ray bounces for each original ray emanating from a transmitter. This is very important in situations that may involve resonance effects where rays get trapped among certain group of surfaces and may bounce back and forth indefinitely. This is set using the box labeled &amp;amp;quot;'''Max No. Ray Bounces'''&amp;amp;quot;, which has a default value of 10. Note that the maximum number of ray bounces directly affects the computation time as well as the size of output simulation data files. This can become critical for indoor propagation scenes, where most of the rays undergo a large number of reflections.   &lt;br /&gt;
&lt;br /&gt;
As rays travel in the scene and bounce from surfaces, they lose their power and their amplitudes diminish. From a practical point of view, only rays that have power above the receiver sensitivity threshold can be effectively received. Therefore, all the rays whose power fall below a specified power threshold are discarded. The '''Ray Power Threshold''' is specified in dBm and has a default value of -100dBm. Keep in mind that the value of this threshold directly affects the accuracy of the simulation results as well as the size of the output data file.&lt;br /&gt;
&lt;br /&gt;
You can also set the '''Angular Resolution''' of the transmitter rays in degrees. By default, every transmitter emanates equi-angular ray tubes at a resolution of 1 degree. Lower angular resolutions larger than 1° speed up the SBR simulation significantly, but they may compromise the accuracy. Higher angular resolutions less than 1° increase the accuracy of the simulating results, but they also increase the computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP13.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s SBR Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== The Coverage Map ===&lt;br /&gt;
&lt;br /&gt;
If the associated radiator set is isotropic, so will be the transmitter set. By default, an isotropic transmitter has vertical polarization. You can use the '''Polarization''' radio button to select one of the two options: '''Vertical''' or '''Horizontal'''. If the associated radiator set consists of '''Short Dipole''' or '''User Defined''' radiators, it is indicated in the transmitter property dialog. In the case of a short dipole radiator, you can set a value for the dipole current in Amperes. The radiation resistance of a short dipole of length ''dl'' is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; R_r = 80\pi^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:eqngr6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The radiated power of a short dipole carrying a current I&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; P_{rad} = \frac{1}{2} R_r |I_0|^2 = 40\pi^2 |I_0|^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:shortdipole.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For isotropic and user defined radiators you can set the '''Input Power''' and '''Phase''' of a transmitter set in Watts and degrees, respectively. This can be accessed from the '''Transmitter Chain''' dialog, which will be described in detail in the next section. The radiation pattern of the associated radiator set is normalized and used in conjunction with the input power value to create a weighted distribution of transmitted rays. In certain cases like hybrid simulations, you may want to use the actual values of the far field to define the transmitter power rather than a normalized radiation pattern. Note that the pattern (.RAD) file contains the value of total radiated power in its header. In this case, check the box labeled '''&amp;amp;quot;Calculate Power From Radiation Pattern&amp;amp;quot;'''. This is calculated directly from the complex &amp;amp;theta; and &amp;amp;phi; components of the far field data by integrating them over the entire space (4&amp;amp;pi; solid angle). Note that this option is available only when the radiator is of the User Defined type. When this box is checked, the transmitter chain button is grayed out. By default, an isotropic transmitter emanates rays uniformly in all directions at the angular resolution specified by the user. A transmitter with a user defined associated radiator may represent a highly directional radiation pattern with the main beam pointing in a certain direction. You can additionally force and limit the '''Angular Extents''' of rays to a certain solid angle around the transmitter. This is especially useful and computationally efficient when the transmitter is on one side of the scene, and all the scatterers and receivers are on the other side. In this case, there is no need to generate rays in all directions. To limit the angular extents of rays, define the Start and End values for both Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles. The value of the angular resolution of the rays can be changed from the Run Dialog as will be discussed later.&lt;br /&gt;
&lt;br /&gt;
In a regular SBR simulation, you have a transmitter and one or more arrays of receivers in your scene. At the end of the simulation, you can visualize the coverage map of the transmitter over the receiver sets. A coverage map shows the total '''Received Power''' by each of the receivers and is visualized as a color-coded intensity plot. You can visualize the coverage maps of individual receiver sets. At the end of a SBR simulation, each Received Power Coverage Map is listed under the receiver set's name in the Navigation Tree. To display a coverage map, simply click on its entry in the Navigation Tree. The coverage map plot appears in the Main Window overlaid on the scene. A legend box on the right shows the color scale and units (dB). The 3-D coverage maps are displayed as horizontal confetti above the receivers. If the receivers are packed close to each other, you will see a continuous confetti map. If the receivers are far apart, you will see individual colored squares. You can also visualize coverage maps as colored 3-D cubes. This may be useful when you set up your receivers in a vertical arrangement or the scene has a highly uneven terrain. To change the type of coverage map visualization, open the receiver set's property dialog and select the desired option for '''Coverage Map: Confetti''' or '''Cube''' in the '''&amp;amp;quot;Visualization Options&amp;amp;quot;''' section of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run11_tn.png|400px]] [[File:prop_run12_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Received power coverage map: (Left) confetti style, and (Right) cube style.&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the coverage map by right clicking on its entry in the Navigation Tree and selecting '''Properties...''' or by double-clicking on the legend box. In the Output Plot Settings dialog, you can choose from one of three Color Map options: '''Default''', '''Rainbow''' and '''Grayscale'''. The visualization plot uses default values for the color scale. In the section titled &amp;amp;quot;Limits&amp;amp;quot;, you can choose the radio button labeled '''User Defined'''. Then, you have to enter new values for the '''Lower''' and '''Upper''' Limits of the plot. You can also show or hide the Legend Box or change its '''Background''' and '''Foreground''' colors by clicking the buttons provided for this purpose.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run4.png]]&lt;br /&gt;
&lt;br /&gt;
Output Plot Settings&lt;br /&gt;
&lt;br /&gt;
=== The Ray Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a SBR simulation, each receiver receives a number of rays. Some receivers may not receive any rays at all. You can visualize all the rays received by a certain receiver from the active transmitter of the scene. To do this, right click the '''Receivers''' item of the Navigation Tree. From the context menu select '''Show Received Rays'''. All the rays received by the currently selected receiver of the scene are displayed in the scene. The rays are identified by labels, are ordered by their power and have different colors for better visualization. You can display the rays for only one receiver at a time. The receiver set property dialog has a list of all the individual receivers belonging to that set. To display the rays received by another receiver, you have to change the '''Selected Receiver''' in the receiver set's property dialog. If you keep the mouse focus on this dropdown list and roll your mouse scroll wheel, you can scan the selected receivers and move the rays from one receiver to the next in the list. To remove the visualized rays from the scene, right click the Receivers item of the Navigation Tree again and from the context menu select '''Hide Received Rays'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run5_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Visualization of received rays at the location of the selected receiver.&lt;br /&gt;
&lt;br /&gt;
You can also view the ray parameters by opening the property dialog of a receiver set. By default, the first receiver of the set is always selected. You can select any other receiver from the drop-down list labeled '''Selected Receiver'''. If you click the button labeled '''Show Ray Data''', a new dialog opens up with a table that contains all the received rays at the selected receiver and their parameters:&lt;br /&gt;
&lt;br /&gt;
* Delay is the total time delay that a ray experiences travelling from the transmitter to the receiver after all the reflections, transmissions and diffractions and is expressed in nanoseconds.&lt;br /&gt;
* Ray Field is the received electric field at the receiver location due to a specific ray and is given in dBV/m.&lt;br /&gt;
* Ray Power is the received power at the receiver due to a specific ray and is given in dBm.&lt;br /&gt;
* Angles of Arrival are the &amp;amp;theta; and &amp;amp;phi; angles of the incoming ray at the local spherical coordinate system of the receiver.&lt;br /&gt;
&lt;br /&gt;
The Ray Data Dialog also shows the '''Total Received Power''' in dBm and '''Total Received Field''' in dBV/m due to all the rays received by the receiver. You can sort the rays based on their delay, field, power, etc. To do so, simply click on the grey column label in the table to sort the rays in ascending order based on the selected parameter. You can also select any ray by clicking on its '''ID''' and highlighting its row in the table. In that case, the selected rays is highlighted in the Project Workspace and all the other rays become thin (faded).&lt;br /&gt;
&lt;br /&gt;
Note: The rays are summed up coherently at the receiver.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run6_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Analyzing a selected ray from the ray data dialog.&lt;br /&gt;
&lt;br /&gt;
=== Plotting Other Simulation Results ===&lt;br /&gt;
&lt;br /&gt;
Besides visualizing the coverage map and received rays in the EM.CUBE's [[Propagation Module]], you can also plot the '''Path Loss''' of all the receivers belonging to a receiver set as well as the '''Power Delay Profile''' of individual receivers. To plot these data, go the '''Observables''' section of the Navigation Tree and right click on the '''Receivers''' item. From the context menu, select '''Plot Path Loss''' or '''Plot Power Delay Profile''', respectively. The path loss data between the active transmitter and all the receivers belonging to a receiver set are plotted on a Cartesian graph. The horizontal axis of this graph represents the index of the receiver. Power Delay Profile is a bar chart that plots the power of individual rays received by the currently selected receiver versus their time delay. If there is a line of sight (LOS) between a transmitter and receiver, the LOS ray will have the smallest delay and therefore will appear first in the bar chart. Sometimes you may have several rays arriving at a receiver at the same time, i.e. all with the same delay, but with different power level. These will appear as stacked bars in the chart.&lt;br /&gt;
&lt;br /&gt;
You can also plot the path loss and power delay profile graphs and many others from EM.CUBE's data manager. You can open data manager by clicking the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or by selecting '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or by right clicking on the '''Data Manager''' item of the Navigation Tree and selecting Open Data Manager... from the contextual menu or by using the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the theta and phi angles of arrival and departure of the selected receiver. You can select any data file by clicking and highlighting its '''ID''' in the table and then clicking the '''Plot''' button.&lt;br /&gt;
&lt;br /&gt;
=== Output Data Files ===&lt;br /&gt;
&lt;br /&gt;
At the end of an SBR simulation, the results are written into a main output data file with the reserved name of SBR_Results.RTOUT. This file has the following format:&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Receiver Number&lt;br /&gt;
* Receiver Base X, Y , Z Coordinates&lt;br /&gt;
* Receiver Height&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
Number of Rays&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Ray Number&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Arrival in deg&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Departure in deg&lt;br /&gt;
* Delay in nsec&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''') &amp;amp;amp; Imag('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''')&lt;br /&gt;
* Power&lt;br /&gt;
&lt;br /&gt;
The angles of arrival are the &amp;amp;theta; and &amp;amp;phi; angles of a received ray measured in degrees and are referenced in the spherical coordinate systems centered at the location of the receiver. The angles of departure for a received ray are the &amp;amp;theta; and &amp;amp;phi; angles of the originating transmitter ray, measured in degrees and referenced in the spherical coordinate systems centered at the location of the active transmitter, which eventually arrives at the receiver. The total time delay is measured in nanoseconds between t = 0 nsec at the time of launch from the transmitter location till being received at the receiver location. The last four columns show the real and imaginary parts of the received electric fields with vertical and horizontal polarizations, respectively. The complex field values are normalized in a way that when their magnitude is squared, it equals the received ray power. If the active transmitter is an isotropic radiator with either a vertical or horizontal polarization, then the field components corresponding to the other polarization will have zero entries in the output data file.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run8_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A typical SBR output data file.&lt;br /&gt;
&lt;br /&gt;
=== Running A Frequency Sweep With SBR ===&lt;br /&gt;
&lt;br /&gt;
By default, you run a single-frequency simulation in EM.CUBE's [[Propagation Module]]. You set the operational frequency of a SBR simulation in the project's '''Frequency Dialog''', which can be accessed in a number of ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''Frequency''' [[File:freq_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]]'''Frequency Settings...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+F'''.&lt;br /&gt;
# By double clicking the frequency section (box) of the '''Status Bar'''.&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
[[File:prop_freq.png]]    [[File:prop_run10.png]]&lt;br /&gt;
&lt;br /&gt;
(Left) Project's frequency dialog and (Right) the frequency settings dialog.&lt;br /&gt;
&lt;br /&gt;
You can also select the '''Frequency Sweep''' option in the '''Simulation Mode''' drop-down list of the '''Run Dialog'''. Click the '''Settings...''' button on the right side of this dropdown list to open up the Frequency Settings Dialog. Based on the original values of the project center frequency and bandwidth, the '''Start Frequency''' and '''End Frequency''' have default values. You can also change the '''Number of Samples'''. Once you click the '''Run''' button, EM.CUBE performs a frequency sweep by assigning each of the frequency samples as the current operational frequency and running the SBR simulation engine at that frequency. All the simulation data at all frequency samples are saved into the output data files including &amp;amp;quot;SBR_results.RTOUT&amp;amp;quot;. After the completion of a frequency sweep simulation, as many coverage maps as the number of frequency samples are generated and added to the Navigation Tree under the Receiver Set's entry. You can click on each of the coverage maps corresponding to each of the frequency samples and visualize it in the project workspace. You can also animate the coverage maps. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. The coverage maps start to animate by their order on the Navigation Tree. Once the entire list is displayed sequentially, it starts all over again from the beginning of the list. During the animation, the '''Animation Controls''' dialog appears at the lower right corner of the screen. This dialog has a number of buttons for pause/resume, step forward/backward, and step to the end/start. The title of each coverage map is shown in the box labeled '''Sample''' as it is displayed in the main window. You can also change the speed of animation. The default frame duration has a value of 300 (3x100) milliseconds. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run13.png]]    [[File:prop_run14.png]]&lt;br /&gt;
&lt;br /&gt;
Multiple coverage maps on the Navigation Tree at the end of a frequency sweep and starting an animation from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run15_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Animation controls dialog in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep with SBR ===&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run24.png|thumb|300px|EM.CUBE's variable dialog]]&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run23.png|thumb|250px|Dialog for defining new variables]]&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE, all the CAD object properties as well as certain source, material and mesh parameters can be assigned as [[variables]]. [[Variables]] are defined to control and vary the values of such parameters either for editing purposes or to run parametric sweep or [[optimization]]. Variable are defined using the '''[[Variables]] Dialog''', which can be accessed in the three ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''[[Variables]]''' [[File:variable_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]] '''[[Variables]]...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+B'''.&lt;br /&gt;
&lt;br /&gt;
The [[variables]] dialog is initially empty. To add a new variable, click the '''Add''' button to open up the '''Add Variable/Syntax Dialog'''. In this dialog you have to type in a name for the new variable and choose a type. The default type is '''Uniformly Spaced Samples'''. You also need to specify the '''Start''', '''Stop''' and '''Step''' values for the variable. In the figure below, a variable called &amp;amp;quot;Tx_Height&amp;amp;quot; is defined that varies between 2 and 10 with equal steps of 2. This means the sample set {2,4,6,8,10}. When you return to the [[variables]] dialog, the syntax of the new variable is shown as 2:10:2. The last number in this syntax is always the variable step. In this example, this variable is going to be used to control the height of the transmitter in a propagation scene.&lt;br /&gt;
&lt;br /&gt;
Next, you have to attach the variable to the CAD object. In this case, the CAD object is the point object that represents the transmitter's radiator. To attach a variable to a CAD object, open the object's property dialog and type in the name of the variable as the value of a property or parameter. In this case, the variable Tx_Height is going to control the Z-Coordinate of the point object. Once the value of the object parameter is replaced by the name of an already defined variable, it is updated with the current value of that variable. In the case of a variable of &amp;amp;quot;Uniformly Spaced Samples&amp;amp;quot; type, the current value is the start value. This value will be incrementally varied during a parametric sweep simulation process. Note that a variable can take a fixed value or a discrete set of values, too. You can always open the [[variables]] dialog and change the value or syntax of any variable. To make a new or modified value effective, click the '''Apply''' button of the [[variables]] dialog. You can test the values by performing a '''Dry Run''' of the selected variable. This runs an animation of the project workspace as the value of the variable changes and all the related CAD objects are updated accordingly. Note that you can attach the same variable to more than one CAD object property or to the properties of different objects. You can also define multiple values or syntaxes to the same variable. To do so, open the '''Add Variable/Syntax Dialog''', and instead of typing in a new variable name, choose an existing variable name from the '''Name''' dropdown list. This will add a new value or syntax to the existing syntax(es) of the selected variable. When you return to the [[variables]] dialog, [[variables]] with more than one value or syntax will have a dropdown list in the '''Syntax''' column. You can choose any of these values or syntaxed at any time and make the change effective by clicking the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run25.png]]&lt;br /&gt;
&lt;br /&gt;
Replacing the value of a CAD object parameter with a variable name.&lt;br /&gt;
&lt;br /&gt;
To run a parametric sweep, open the '''Run Dialog''' and select the '''Parametric Sweep''' option in the '''Simulation Mode''' drop-down list. If you have not defined any [[variables]] in the project, the box in the '''[[Variables]]''' row before the '''View''' will be red. You have to turn it into green before you can run a simulation. By clicking the '''View''' button, you can open up the [[variables]] dialog from here. Once you click the '''Run''' button, EM.CUBE performs a parametric sweep by incrementally varying the values of all the defined [[variables]] from their start to stop values at the specified steps and updating all the related CAD objects. After the completion of a parametric sweep simulation, as many coverage maps as the total number of variable samples are generated and added to the Navigation Tree under the receiver set's entry. You can click on each of the coverage maps and visualize it in the project workspace. You can also animate the coverage maps sequentially. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run26.png]]&lt;br /&gt;
&lt;br /&gt;
Choosing parametric sweep as the simulation mode in the run dialog. Note that one variable has been defined and EM.CUBE is ready to run the simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run27_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The coverage map of the scene at the end of a parametric sweep where the sweep variable is the transmitter height.&lt;br /&gt;
&lt;br /&gt;
=== Statistical Analysis of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's coverage maps display the received power at the location of all the receivers. The receivers together from a set/ensemble, which might be uniformly spaced or distributed across the propagation scene or may consist of randomly scattered radiators. Every coverage map shows the '''Mean''' and '''Standard Deviation''' of the received power for all the receivers involved. These information are displayed at the bottom of the coverage map's legend box and are expressed in dB.&lt;br /&gt;
&lt;br /&gt;
In the [[Propagation Module]], when you ran a sweep simulation (frequency, transmitter or parametric), you also have the option to generate two additional coverage maps: one for the mean of all the individual sample coverage maps and another for their standard deviation. To do so, in the '''Run Dialog''', check the box labeled '''&amp;amp;quot;Create Mean and Standard Deviation Coverage Maps&amp;amp;quot;'''. Note that the mean and standard deviation values displayed on the individual coverage maps correspond to the spatial statistics of the receivers in the scene, while the mean and standard deviation coverage maps correspond to frequency, transmitter or variable sets defined for the sweep simulation. Also, note that both of the mean and standard deviation coverage maps have their own spatial mean and standard deviation values expressed in dB at the bottom of their legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run21_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The mean coverage map at the end of a transmitter sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run22_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The standard deviation coverage map at the end of a transmitter sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Terrano</id>
		<title>EM.Terrano</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Terrano"/>
				<updated>2013-06-14T14:51:33Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Multilayer Surface Models */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Taking out this picture for now for consistency&lt;br /&gt;
[[File:urban.png]]--&amp;gt;&lt;br /&gt;
EM.Terrano is a physics-based, site-specific, wave propagation modeling tool that enables engineers to quickly determine how radio waves propagate in urban, natural or mixed environments. The rapid growth of wireless communications along with the high costs associated with the design and deployment of effective wireless infrastructures underline a persistent need for computer aided communication network planning tools. Wireless engineers have long used simplistic statistical prediction models based on measurements that often exhibit considerable errors especially in areas having mixed building sizes.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Terrano has helped wireless engineers around the globe model the physical channel and the mechanisms by which radio signals propagate from transmitters to receivers. EM.Terrano’s advanced ray tracing simulator finds the dominant propagation paths specific to the site in question. It calculates the true signal characteristics at the actual locations using physical databases of the buildings and terrain at a given site, not those of a statistically average or representative environment. EM.Terrano’s ray tracer is based on the shoot-and-bounce-rays (SBR) method, which utilizes geometrical optics (GO) in combination with uniform theory of diffraction (UTD) models of building edges.&lt;br /&gt;
&lt;br /&gt;
The new EM.Terrano 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has created the opportunity to inject a host of new powerful features such as a highly customizable terrain generator, DEM terrain import, complex building constructions, and versatile interior wall arrangements for indoor propagation modeling. As a result of this seamless interface with EM.Cube's other modules, you can now model complex antenna systems in [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]], and generate antenna radiation patterns than can be used to model directional transmitters and receivers at the two ends of your propagation channel. Conversely, you can analyze a propagation scene in EM.Terrano and import the rays received at a certain receiver location as coherent plane wave sources to [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]]. You can also model periodic wall or ground structures using the periodic simulation capability of [[EM.Picasso]] or [[EM.Tempo]] and generate macromodels for their reflection and transmission coefficients as functions of the ray incidence angles. You can then define buildings or terrains in your propagation scene that are governed by such macromodels.&lt;br /&gt;
&lt;br /&gt;
== A Wireless Propagation Primer ==&lt;br /&gt;
Every wireless communication system involves a transmitter that transmits some sort of signal (voice, video, data, etc.), a receiver that receives and detects the transmitted signal, and a channel in which the signal is transmitted into the air and travels from the location of the transmitter to the location of the receiver. The channel is the physical medium in which the electromagnetic waves propagate. The successful design of a communication system depends on an accurate link budget analysis that determines whether the receiver receives adequate signal power to detect it against the background noise. The simplest channel is the free space. Real communication channels, however, are more complicated and involve a large number of wave scatterers. For example, in an urban environment, the obstructing buildings, vehicles and vegetation reflect, diffract or attenuate the propagating radio waves. As a result, the receiver receives a distorted signal that contains several components with different power levels and different time delays arriving from different angles.&lt;br /&gt;
&lt;br /&gt;
The different rays arriving at a receiver location create constructive and destructive interference patterns. This is known as the multipath effect. This together with the shadowing effects caused by building obstructions lead to channel fading. In many wireless applications, the total received power by the receiver is all that matters. In some others, the angle of arrival of the rays as well as their polarization are of immense interest. A fully polarimetric, coherent ray tracer like EM.Cube's Shooting-and-Bouncing-Rays (SBR) solver lets you compute and resolve all the rays received by a receiver including their power levels, time delays and angles of arrival.&lt;br /&gt;
&lt;br /&gt;
=== Free Space Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
In a free-space line-of-sight (LOS) communication system, the signal propagates directly from the transmitter to the receiver without encountering any obstacles (scatterers). Electromagnetic waves propagate in the form of spherical waves with a functional dependence of e&amp;lt;sup&amp;gt;j(&amp;amp;omega;&amp;lt;/sup&amp;gt;&amp;lt;sup&amp;gt;t-k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;R)&amp;lt;/sup&amp;gt;/R, where R is the distance between the transmitter and receiver, &amp;lt;math&amp;gt;\omega = 2\pi f&amp;lt;/math&amp;gt;, f is the signal frequency, &amp;lt;math&amp;gt;k_0 = \tfrac{\omega}{c} = \tfrac{2\pi}{\lambda}&amp;lt;/math&amp;gt;, c is the speed of light, and &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength at the operational frequency. By the time the signal arrives at the location of the receiver, it undergoes two changes. It is attenuated and its power drops by a factor of 1/R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, and additionally, it experiences a phase shift of &amp;lt;math&amp;gt;\tfrac{2\pi R}{\lambda_0}&amp;lt;/math&amp;gt;, which is equivalent to a time delay of R/c. The signal attenuation from the transmitter to the receiver is usually quantified by '''Path Loss''' defined as the ratio of the received signal power (P&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;) to the transmitted signal power (P&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;). Assuming isotropic transmitting and receiving radiators (i.e. radiating uniformly in all directions), the Path Loss in a free-space line-of-sight communication system is given by Friis’ formula:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = \left( \frac{\lambda_0}{4\pi R} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above formula assumes that the receiving antenna is polarization-matched. Normally, there is a polarization mismatch between the transmitting and receiving antennas. In the case of directional transmitting and receiving antennas, Friis’ formula takes the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = G_T G_R \left( \frac{\lambda_0}{4\pi R} \right)^2 ( \mathbf{ \hat{u}_T \cdot \hat{u}_R } )&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''u&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;''' and '''u&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''' are the unit polarization vectors of the transmitting and receiving antennas, and G&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt; and G&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; are their gains, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:los.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Line-of-Sight (LOS) Propagation Scenario.&lt;br /&gt;
&lt;br /&gt;
=== Multipath Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
Free-space line-of-sight communications is an ideal scenario that is typically used to model aerial or space applications. In ground-based systems, the presence of the ground as a very large reflecting surface affects the signal propagation to a large extent. Along the path from a transmitter to a receiver, the signal may also encounter many obstacles and scatterers such as buildings, vegetation, etc. In an urban canyon environment with many buildings of different heights and other scatterers, a line of sight between the transmitter and receiver can hardly be established. In such cases, the propagating signals bounce back and forth among the building surfaces. It is these reflected or diffracted signals that are often received and detected by the receiver. Such environments are referred to as “multipath”. The group of rays arriving at a specific receiver location experience different attenuations and different time delays. This gives rise to constructive and destructive interference patterns that cause fast fading. As a receiver moves locally, the receiver power level fluctuates sizably due to these fading effects.&lt;br /&gt;
&lt;br /&gt;
The use of statistical models for prediction of fading effects is widely popular among communication system designers. These models are either based on measurement data or derived from simplistic analytical frameworks. The statistical models often exhibit considerable errors especially in areas having mixed building sizes. In such cases, one needs to perform a physics-based, site-specific analysis of the propagation environment to accurately identify and establish all the possible signal paths from the transmitter to the receiver. This involves an electromagnetic analysis of the scene with all of its geometrical and physical details.  &lt;br /&gt;
&lt;br /&gt;
Link budget analysis for a multipath channel is a challenging task due to the large size of the computational domains involved. Typical propagation scenes usually involve length scales on the order of thousands of wavelengths. To calculate the path loss between the transmitter and receiver, one must solve Maxwell's equations in an extremely large space. Full-wave numerical techniques like the Finite Difference Time Domain (FDTD) method, which require a fine discretization of the computational domain, are therefore impractical for solving large-scale propagation problems. The practical solution is to use asymptotic techniques such as SBR, which utilize analytical techniques over large distances rather than a brute force discretization of the entire computational domain. Such asymptotic techniques, of course, have to compromise modeling accuracy for practical computation feasibility.&lt;br /&gt;
&lt;br /&gt;
[[File:multi1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A multipath propagation scene showing all the rays arriving at a particular receiver.&lt;br /&gt;
&lt;br /&gt;
=== The SBR Method ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] provides an asymptotic ray tracing simulation engine that is based on a technique known as Shooting-and-Bouncing-Rays (SBR). In this technique, propagating spherical waves are modeled as ray tubes or beams that emanate from a source, travel in space, bounce from obstacles and are collected by the receiver. As rays propagate away from their source (transmitter), they begin to spread (or diverge) over distance. In other words, the cross section or footprint of a ray tube expands as a function of the distance from the source. EM.Cube uses an accurate equi-angular ray generation scheme to that produces almost identical ray tubes in all directions to satisfy energy and power conservation requirements.&lt;br /&gt;
&lt;br /&gt;
When a ray hits an obstructing surface, one or more of the following phenomena may happen:&lt;br /&gt;
&lt;br /&gt;
# Reflection from the locally flat surface&lt;br /&gt;
# Transmission through the locally flat surface&lt;br /&gt;
# Diffraction from an edge between two conjoined locally flat surfaces&lt;br /&gt;
&lt;br /&gt;
EM.Cube discretizes all the objects of the scene into flat triangular facets. Obviously, rectangular and cubic objects preserve their geometric shapes through this discretization. Objects with curved surfaces such as cylinders, cones or spheres, are approximated by &amp;amp;quot;polymesh&amp;amp;quot; representations. The geometric fidelity of the resulting mesh depends on the specified mesh edge length. When a ray hits a triangular facet, the propagating spherical wave is approximated as a plane wave at the specular point. The reflection and transmission coefficients of the surface are calculated at the operational frequency and at the particular ray incident angle. &lt;br /&gt;
&lt;br /&gt;
A new reflected ray is generated at the specular point, which starts traveling and bouncing around in the scene. If the obstructing surface is penetrable, a second transmitted ray is generated and added to the scene. If the ray hits the edge of an obstacle, it is diffracted from that edge. This leads to the creation of a cone of new rays, which greatly complicate the computational problem. The Uniform Theory of Diffraction (UTD) is used to calculate the wedge diffraction coefficients at the edges of scattering blocks. Note that reflection, transmission and diffraction coefficients are all dependent on the polarization of the incident plane wave.&lt;br /&gt;
&lt;br /&gt;
A receiver may receive a large number of rays: direct line-of-sight rays from the transmitter, rays reflected or diffracted off the ground or terrain, rays reflected or diffracted from buildings or rays transmitted through buildings. Each received ray is characterized by its power, delay and angles of arrival, which are the spherical coordinate angles &amp;amp;theta; and &amp;amp;phi; of the incoming ray. The actual signal received and detected by the receiver is the superposition of all these rays with different power levels and different time delays. Most of the time, you will be interested in the coverage map of an area, which shows how much power is received by a grid of receivers spread over the area from a given fixed transmitter.&lt;br /&gt;
&lt;br /&gt;
=== Ray Reflection &amp;amp; Transmission ===&lt;br /&gt;
&lt;br /&gt;
[[File:reflect.png|thumb|350px|The Incident, Reflected and Transmitted Rays at the Interface Between Two Dielectric Media]]&lt;br /&gt;
&lt;br /&gt;
The incident, reflected and transmitted rays are each characterized by a triplet of unit vectors:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}, \hat{u}_{\perp}, \hat{k} } )&amp;lt;/math&amp;gt; representing the incident parallel polarization vector, incident perpendicular polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}', \hat{u}_{\perp}', \hat{k}' } )&amp;lt;/math&amp;gt; representing the reflected parallel polarization vector, reflected perpendicular polarization vector and reflected propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}'', \hat{u}_{\perp}'', \hat{k}'' } )&amp;lt;/math&amp;gt; representing the transmitted parallel polarization vector, transmitted perpendicular polarization vector and transmitted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The reflected ray is assumed to originate from a virtual image source point. The three triplets constitute three orthonormal basis systems. Below, it is assumed that the two dielectric media have permittivities &amp;amp;epsilon;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;epsilon;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, and permeabilities &amp;amp;mu;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;mu;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, respectively. A lossy medium with a conductivity &amp;amp;sigma; can be modeled by a complex permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = &amp;amp;epsilon;'&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; –j&amp;amp;sigma;/&amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. Assuming '''n''' to be the unit normal to the interface plane between the two media, and Z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;Omega; , the incident polarization vectors as well as all the reflected and transmitted vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp} = \frac{\hat{k} \times \hat{n}}{|\hat{k} \times \hat{n}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|} = \hat{u}_{\perp} \times \hat{k} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflected unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}' = \hat{k} - 2(\hat{k} \cdot \hat{n}) \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}' = \hat{u}_{\perp}' \times \hat{k}' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The transmitted unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}'' = \hat{n} \times a - \sqrt{1-a \cdot a} \; \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}'' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}'' = \hat{u}_{\perp}'' \times \hat{k}'' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{a} = (k_1/k_2) \mathbf{\hat{k} \times \hat{n}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_1 = k_0 \sqrt{\varepsilon_1 \mu_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_2 = k_0 \sqrt{\varepsilon_2 \mu_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_1 = Z_0 \sqrt{\mu_1 / \varepsilon_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_2 = Z_0 \sqrt{\mu_2 / \varepsilon_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sin\theta'' = \frac{k_1}{k_2}\sin\theta \text{ if } \sin\theta \le k_2/k_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml4.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml5.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflection coefficients at the interface are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penetration Through Thin Walls Or Surfaces ===&lt;br /&gt;
&lt;br /&gt;
[[File:thinwalltrans.png|thumb|350px|The Incident and Transmitted Rays through a Thin Wall]]&lt;br /&gt;
&lt;br /&gt;
In &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;, we assume that an incident ray gives rise to two rays, one is reflected at the specular point, and the other is transmitted almost in the same direction as the incident ray. The reflected ray is assumed to originate from a virtual image source point. Similar to the case of reflection and transmission at the interface between two dielectric media, here too we have three triplets of unit vectors, which all form orthonormal basis systems.&lt;br /&gt;
&lt;br /&gt;
The transmission coefficients are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\|} = \frac{(1-{\Gamma_{\|}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\|}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\perp} = \frac{(1-{\Gamma_{\perp}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\perp}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml21.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wedge Diffraction From Edges ===&lt;br /&gt;
&lt;br /&gt;
[[File:diffract.png|thumb|350px|The Incident Ray and Diffract Ray Cone at the Edge of a Building]]&lt;br /&gt;
&lt;br /&gt;
For the purpose of calculation of diffraction from building edges, we define a &amp;amp;quot;Wedge&amp;amp;quot; as having two faces, the 0-face and the ''n''-face. The wedge angle is a = (2-''n'')p, where the parameter ''n'' is required for the calculation of diffraction coefficients. All the diffracted rays lie on a cone with its vertex at the diffraction point and a wedge angle equal to the angle of incidence in the opposite direction. A diffracted ray is assumed to originate from a virtual image source point. Three triplets of unit vectors are defined as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_0, \hat{u}_l, \hat{t})}&amp;lt;/math&amp;gt; representing the unit vector normal to the edge and lying in the plane of the 0-face, the unit vector normal to the 0-face, and the unit vector along the edge, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f, \hat{u}_b, \hat{t})}&amp;lt;/math&amp;gt; representing the incident forward polarization vector, incident backward polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f', \hat{u}_b', \hat{t}')}&amp;lt;/math&amp;gt; representing the diffracted forward polarization vector, diffracted backward polarization vector and diffracted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The three triplets constitute three orthonormal basis systems. The propagation vector '''k'''' of the diffracted ray has to be constructed based on the diffraction cone as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{\hat{k}'} = \cos\phi_w \mathbf{\hat{u}_0} + \sin\phi_w \mathbf{\hat{u}_l} + &lt;br /&gt;
\mathbf{(\hat{k} \cdot \hat{t}) \hat{t}}, \quad 0 \le \phi_w \le \alpha&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the resolution of the angle &amp;amp;theta;&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt; is chosen to be the same as the resolution of the incident ray.&lt;br /&gt;
&lt;br /&gt;
The other unit vectors for the incident and diffracted rays are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f = \frac{\hat{k} \times \hat{t}}{|\hat{k} \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b = \hat{k} \times \hat{u}_f } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f' = \frac{\hat{k}' \times \hat{t}}{|\hat{k}' \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b' = \hat{k}' \times \hat{u}_f' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml9.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The diffraction coefficients are calculated in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_s = \frac{-e^{-j\pi/4}}{2n \sqrt{2\pi k} \sin\beta_0'}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \cot \left(\frac{\pi + (\phi-\phi')}{2n}\right) F[kLa^+(\phi-\phi')] +&lt;br /&gt;
  \cot \left(\frac{\pi - (\phi-\phi')}{2n}\right) F[kLa^-(\phi-\phi')] \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; R_{0 \perp} \cot \left(\frac{\pi - (\phi+\phi')}{2n}\right) F[kLa^-(\phi+\phi')] +&lt;br /&gt;
  R_{n \perp} \cot \left(\frac{\pi + (\phi+\phi')}{2n}\right) F[kLa^+(\phi+\phi')]&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_h = \frac{-e^{-j\pi/4}}{2n \sqrt{2\pi k} \sin\beta_0'}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \cot \left(\frac{\pi + (\phi-\phi')}{2n}\right) F[kLa^+(\phi-\phi')] +&lt;br /&gt;
  \cot \left(\frac{\pi - (\phi-\phi')}{2n}\right) F[kLa^-(\phi-\phi')] \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; R_{0 \|} \cot \left(\frac{\pi - (\phi+\phi')}{2n}\right) F[kLa^-(\phi+\phi')] +&lt;br /&gt;
  R_{n \|} \cot \left(\frac{\pi + (\phi+\phi')}{2n}\right) F[kLa^+(\phi+\phi')]&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml11.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where ''F(x)'' is the Fresnel Transition function:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = 2j \sqrt{x} e^{jx} \int_{\sqrt{x}}^{\infty} e^{-j\tau^2} \, d\tau &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, we have&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
s = |\rho_D - \rho_S| \\&lt;br /&gt;
s' = |\rho_D - \rho_r|&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L = \frac{s s' \sin^2 \beta'}{s + s'} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\pm}(\nu) = 2\cos^2 \left( \frac{2n\pi N^{\pm} - \nu}{2} \right), \quad \nu = \phi \pm \phi' &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml10.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml13.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;N^{\pm}&amp;lt;/math&amp;gt; are the integers which most closely satisfy the equations &amp;lt;math&amp;gt; 2n\pi N^{\pm} - \nu = \pm \pi &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SBR As An Asymptotic EM Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulation engine can be used as a versatile and powerful asymptotic electromagnetic (EM) solver. If you compare EM.Cube's [[Propagation Module]] with its other computational modules, you will notice a lot of similarities. While other modules group objects primarily by their material properties, [[Propagation Module]] categorizes the types of obstructing surfaces. Besides sharing the same ray-surface interaction mechanisms, all the objects belonging to a surface group also share the same material properties. [[Propagation Module]] offers similar source types and similar observable types as the other computational modules. For instance, the Hertzian dipole sources used in a SBR simulation are identical to those offered in PO, MoM3D and Planar modules. The plane wave sources are identical across all computational modules. [[Propagation Module]]'s sensor field planes, far field observables (either radiation patterns or RCS) and Huygens surfaces are all fully compatible with EM.Cube's other computational modules.&lt;br /&gt;
&lt;br /&gt;
As an asymptotic EM solver, the SBR engine can be used to model large-scale electromagnetic radiation and scattering problems. An example of this kind is radiation of simple or complex antennas in the presence of large scattering platforms. You have to keep in mind that by using an asymptotic technique in place of a full-wave method, you trade computational speed and lower memory requirements for modeling accuracy. In particular, the SBR method cannot take into account the electromagnetic coupling effects among nearby radiators or scatterers. However, when your scene spans thousands of wavelengths, an SBR simulation might often prove to be your sole practical solution.  &lt;br /&gt;
&lt;br /&gt;
=== Novelties Of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine utilizes an intelligent ray tracing algorithm based on the concept of  k-dimensional trees. A k-d tree is a space-partitioning data structure for organizing points in a k-dimensional space. k-d trees are particularly useful for searches that involve multidimensional search keys such as range searches and nearest neighbor searches. In a typical large radio propagation scene, there might be a large number of rays emanating from the transmitter that may never hit any obstacles. For example, upward-looking rays in an urban propagation scene quickly exit the computational domain. Rays that hit obstacles on their path, on the other hand, generate new reflected and transmitted rays. The k-d tree algorithm traces all these rays systematically in a very fast and efficient manner. Another major advantage of k-d trees is the fast processing of multi-transmitters scenes. Unlike the previous versions of the SBR solver which could handle one transmitter at a time and would superpose all the resulting rays at the end of the simulation, the new SBR shoots rays from all the transmitters at the same time.   &lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine performs fully polarimetric and coherent SBR simulations with arbitrary transmitter antenna patterns. The new engine solves directly for the vectorial field components at the receiver locations or field observation points. This is far more rigorous than the previous versions of the SBR solver which primarily utilized ray power calculations based on the two vertical and horizontal polarizations. In other words, EM.Cube's new SBR engine is a truly asymptotic &amp;amp;quot;field&amp;amp;quot; solver. As a result, you can visualize the magnitude and phase of all six electric and magnetic field components at any point in the computational domain. For power calculations at the receiver location, an isotropic, polarization-matched, receiving antenna is assumed.       &lt;br /&gt;
&lt;br /&gt;
In most scenes, the buildings and the ground or terrain can be assumed to be made of homogeneous materials. These are represented by their electrical properties such as permittivity e and electric conductivity s. More complex scenes may involve a multilayer ground or multilayer building walls. In such cases, one can no longer use the simple reflection or transmission coefficient formulas for homogeneous medium interfaces. EM.Cube calculates the reflection and transmission coefficients of multilayer structures as functions of incident angle, frequency and polarization and uses them at the respective specular points.  &lt;br /&gt;
&lt;br /&gt;
=== Limitations of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
It is very important to keep in mind that SBR is an asymptotic electromagnetic analysis technique that is based on Geometrical Optics (GO) and the Uniform Theory of Diffraction (UTD). It is not a &amp;amp;quot;full-wave&amp;amp;quot; technique, and it does not solve Maxwell's equations directly or numerically. SBR makes a number of assumptions, chief among them, a very high operational frequency such that the length scales involved are much larger than the operating wavelength. Under this assumed regime, electromagnetic waves start to behave like optical rays. Virtually all the calculations in SBR are based on far field approximations. &lt;br /&gt;
&lt;br /&gt;
In order to maintain a high computational speed for urban propagation problems, EM.Cube's SBR solver ignores double diffractions. Recall that diffractions from edges give rise to a large number of new secondary rays. The power of diffracted rays drops much faster than reflected rays. EM.Cube ignores diffracted rays that are not detected by any receiver. In other words, an edge-diffracted ray does not diffract again from another edge. However, reflected and penetrated rays do get diffracted from edges just as rays emanated directly from the sources do.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Propagation Scene ==&lt;br /&gt;
&lt;br /&gt;
An EM.Cube propagation scene typically consists of several elements. At a minimum, you need a transmitter (Tx) at some location to launch rays into the scene and a receiver (Rx) at another location to receive and collect the incoming rays. A transmitter and a receiver together make the simplest propagation scene, representing a free-space line-of-sight (LOS) channel. A transmitter is one of EM.Cube's several source types, while a receiver is one of EM.Cube's several observable types. A simpler source type is a Hertzian dipole. A simpler observable is a field sensor that is used to compute the electric and magnetic fields on a specified plane.&lt;br /&gt;
&lt;br /&gt;
An outdoor propagation scene may involve several buildings (modeled as impenetrable surfaces) and an underlying flat ground or irregular terrain surface. An indoor propagation scene may involve several walls (modeled as thin penetrable surfaces), a ceiling and a floor arranged according to a certain floor plan. You can also build mixed scenes involving both impenetrable and penetrable blocks, possibly along with irregular terrain surfaces. Your sources and observables can be placed anywhere in the scene. Your transmitters and receivers can be placed outdoors or indoors. A complete list of the various elements of a propagation scene is given in the '''Physical Structure''' section of [[Propagation Module]]'s Navigation Tree as follows:&lt;br /&gt;
&lt;br /&gt;
* Impenetrable Surfaces&lt;br /&gt;
* Penetrable Surfaces&lt;br /&gt;
* Terrain Surfaces&lt;br /&gt;
* Base Points&lt;br /&gt;
&lt;br /&gt;
Impenetrable, penetrable and terrain surfaces all obstruct the propagation of electromagnetic waves (rays) in the free space. What differentiates them is the types of physical phenomena that are used to model their interaction with the impinging rays. Base points are simply used to define transmitter and receiver locations in the scene. The following sections of this manual will describe each of these elements in detail.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Navigation Tree of EM.Cube's [[Propagation Module]].&lt;br /&gt;
&lt;br /&gt;
=== The Various Types Of Surfaces &amp;amp;amp; Blocks ===&lt;br /&gt;
&lt;br /&gt;
In a SBR simulation, the propagating rays hit the surface of building structures, walls, terrain (or global ground) and bounce back into the scene (reflection). Some rays penetrate thin walls or other penetrable surfaces and continue their path on the other side of the surface (transmission). The field intensity, phase and power of the reflected and transmitted rays depend on the material properties of the obstructing surface. The specular surface can be modeled as a simple homogeneous dielectric half-space or as a multilayer structure. In that respect, the buildings, walls, terrain or even the global ground all behave in a similar way:&lt;br /&gt;
&lt;br /&gt;
* They terminate an impinging ray and replace it with one or more new rays.&lt;br /&gt;
* They represent a specular interface between two media of different material compositions for calculating the reflection, transmission and possibly diffraction coefficients.&lt;br /&gt;
&lt;br /&gt;
EM.Cube has generalized the concept of '''Block''' as any object that obstructs and affects radio wave propagation. Rays hit the facets of a block and bounce off the surface of those facets or penetrate them and continue their propagation. Rays also get diffracted off the edges of these blocks. In EM.Cube's [[Propagation Module]], blocks are grouped together by the type of their interaction with rays. EM.Cube currently offers three types of blocks for use in a propagation scene:&lt;br /&gt;
&lt;br /&gt;
# '''Impenetrable Surfaces:''' Rays hit the facets of this type of blocks and bounce back, but they do not penetrate the object. It is assumed that the interior of such blocks or buildings are highly absorptive.&lt;br /&gt;
# '''Penetrable Surfaces:''' These blocks represent thin surfaces that are used to model the exterior and interior walls of buildings based on the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;. Rays reflect off the surface of penetrable surfaces and diffract off their edges. They also penetrate such thin surfaces and continue their paths on the other side of the wall.&lt;br /&gt;
# '''Terrain Surfaces:''' These blocks are used to provide one or more impenetrable, ground surfaces for the propagation scene. Rays simply bounce off terrain objects. The global ground acts as a flat super-terrain that covers the bottom of the entire computational domain. &lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to define block groups of each of the above three types. Each block group has the same color or texture and its members share the same material properties: permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and conductivity &amp;amp;sigma;. Also, all the penetrable surfaces belonging to the same block group have the same wall thickness. You can define many different block groups with certain properties and underneath each introduce many member objects with different geometrical shapes and dimensions. The table below summarizes the characteristics of each block type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Block Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Physical Effects&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Admissible Object Types&lt;br /&gt;
|-&lt;br /&gt;
| Impenetrable Surface&lt;br /&gt;
| Reflection, Diffraction&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Penetrable Surface&lt;br /&gt;
| Reflection, Diffraction, Transmission&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Terrain Surface&lt;br /&gt;
| Reflection&lt;br /&gt;
| Tessellated Objects Only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Impenetrable Surfaces For Outdoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(2).png|thumb|200px|[[Propagation Module]]'s Impenetrable Surface dialog]]   &lt;br /&gt;
&lt;br /&gt;
In outdoor propagation scenes such as &amp;amp;quot;Urban Canyons&amp;amp;quot;, you are primarily interested in the wireless coverage in the areas among buildings. You can assume that rays bounce off the exterior walls of these buildings but do not penetrate them. In other words, you ignore the transmitted rays and assume that they are either absorbed or diffused inside the buildings. This is not an unrealistic assumption. EM.Cube offers &amp;amp;quot;Impenetrable Blocks&amp;amp;quot; to model buildings in outdoor propagation scenes. A penetrable block has a color or texture property as well as material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and conductivity (s). By default, a brick building is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m. Impinging rays are reflected from the facets of impenetrable buildings or diffracted from their edges.&lt;br /&gt;
&lt;br /&gt;
To define a new impenetrable block group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on either the '''Impenetrable Surfaces''' item of the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the block properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the block group and select a color or texture.&lt;br /&gt;
# The electromagnetic model that determines ray-block interaction is selected under '''Specular Interface Type'''. Two options are available: '''Standard Material''' or '''User Defined Model'''. The former is the default choice and requires material properties, '''Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity''' (&amp;amp;sigma;), which are set to &amp;amp;quot;Brick&amp;amp;quot; by default. No magnetic properties are allowed for blocks.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Under an impenetrable block group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of an impenetrable surface. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. In this dialog, you can change the name of the material and its permittivity and electric conductivity. The box labeled &amp;amp;quot;Specify Loss Tangent&amp;amp;quot; is unchecked by default. If you check it, you can specify the '''Loss Tangent''' of the material, which, in turn, updates the value of electric conductivity at the center frequency of the project. You can also use EM.Cube's Material List, which will  be explained later.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to impenetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
=== Penetrable Surfaces For Indoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15(1).png|thumb|200px|[[Propagation Module]]'s Penetrable Surface dialog]]&lt;br /&gt;
&lt;br /&gt;
A typical indoor propagation scene usually involves an arrangement of walls that represent the interior of a building. The transmitters and receivers are then placed in the spaces among such walls. From the point of view of EM.Cube's SBR simulator, walls act like thin penetrable surfaces. EM.Cube uses the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot; to model penetrable surfaces. It assumes that rays simply penetrate a wall and exit at the same specular point on the opposite side of the wall. In other words, rays are not displaced by the walls, nor do they get trapped inside the walls (no internal reflection). This is equivalent to assuming a zero thickness for penetrable surfaces for the purpose of geometrical ray tracing, while the finite thickness of the &amp;amp;quot;thin&amp;amp;quot; surface is used for electromagnetic calculation of transmission coefficient. EM.Cube offers &amp;amp;quot;Penetrable Surface Blocks&amp;amp;quot; for the construction of rooms in indoor propagation scenes as well as modeling of hollow buildings and other structures. You can define many penetrable surface groups with arbitrary thicknesses and material properties (color, texture, permittivity and electric conductivity).&lt;br /&gt;
&lt;br /&gt;
To define a new penetrable surface group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on one of the '''Penetrable Surfaces''' item in the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the wall properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the surface group and select a color or texture.&lt;br /&gt;
# The properties of a penetrable surface are identical to those of an impenetrable surface, plus an additional thickness property.&lt;br /&gt;
# By default, a brick wall with a thickness of 0.5 units is assumed. You can change the '''Thickness''' of the penetrable surface as well as its '''Permittivity'''  &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and '''Electric Conductivity''' &amp;amp;sigma;.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Under a penetrable surface group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of a penetrable surface group including its default thickness. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. Similar to the case of impenetrable surfaces, from this dialog, you can change the material properties (permittivity and electric conductivity) as well as '''Thickness''', which is expressed in the project units. You can also use EM.Cube's Material List, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to penetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
You can construct several thin walls and arrange them as rooms. A regular room can be built by placing four vertical wall objects together with an optional horizontal wall at the top for the ceiling. Alternatively, you may use EM.Cube's hollow box objects or boxes with one or two capped end(s).  '''Keep in mind that all the penetrable surfaces belonging to a group have the same wall thickness, which is initially set to 0.5 project units by default. Also, note that solid CAD objects belonging to a penetrable surface group are treated as air-filled hollow structures.''' The thickness of penetrable surfaces is implied and not visualized when displaying objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Computational Domain &amp;amp;amp; Global Ground ===&lt;br /&gt;
&lt;br /&gt;
The SBR simulation engine requires a finite computational domain. All the stray rays that hit the boundaries of this finite domain are terminated during the simulation process. Such rays exit the computational domain and travel to the infinity, with no chance of ever reaching any receiver in the scene. When you define a propagation scene with various elements like buildings, walls, terrain, etc., a dynamic domain is automatically established and displayed as a wireframe box with green lines that surrounds the entire scene. Every time you create a new object, the domain is automatically adjusted and extended to enclose all the objects in the scene. You can change the size and color of the domain box through the Ray Domain Settings Dialog, which can be accessed in one of the following three ways:&lt;br /&gt;
&lt;br /&gt;
# Click the '''Domain''' [[File:image025.jpg]] button of the Simulation Toolbar.&lt;br /&gt;
# Select the '''Simulate''' &amp;amp;gt; '''Computational Domain''' &amp;amp;gt; '''Settings...''' item of the Simulate Menu.&lt;br /&gt;
# Right click on the '''Ray Domain''' item of the Navigation Tree and select '''Domain Settings...'''&lt;br /&gt;
# Use the keyboard shortcut '''Ctrl + A'''.&lt;br /&gt;
&lt;br /&gt;
The size of the Ray domain is specified in terms of six '''Offset''' parameters along the ±X, ±Y and ±Z directions. The default value of all these six offset parameters is 10 project units. You can change them arbitrarily. After changing these values, use the '''Apply''' button to make the changes effective while the dialog is still open.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Most outdoor and indoor propagation scenes include a flat ground at their bottom, which bounces incident rays back into the scene. EM.Cube's [[Propagation Module]] provides a global flat ground at z = 0. The global ground indeed acts as an impenetrable surface that blocks the entire computational domain from the z = 0 plane downward. It is displayed as a translucent green plane at z = 0 extending downward. The color of the ground plane is always the same as the color of the ray domain. The global ground is assumed to be made of a homogeneous dielectric material with a specified permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma;. By default, a rocky ground is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m. You can remove the global ground, in which case, you will have a free space scene. To disable the global ground, open up the Global Ground Settings Dialog, which can be accessed by right clicking on the '''Global Ground''' item in the Navigation Tree and selecting '''Global Ground Settings... '''Remove the check mark from the box labeled '''&amp;amp;quot;Include Half-Space Ground (z&amp;amp;lt;0)&amp;amp;quot;''' to disable the global ground. This will also remove the green translucent plane from the bottom of your scene. You can also change the material properties of the global ground and set new values for the permittivity and electric conductivity of the impenetrable, half-space, dielectric medium. '''Do not forget to disable the global ground if you want to model a free space propagation scene.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PROP4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s Global Ground Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Surfaces vs. Global Ground ===&lt;br /&gt;
&lt;br /&gt;
A terrain surface acts as a custom, unlevel or irregular ground for your propagation scene. EM.Cube's default global ground blocks the z &amp;amp;lt; 0 half-space everywhere in the computational domain. You can simply turn off the global ground and create one or more terrain objects and place them arbitrarily in the scene. You can also import an external terrain model or file. A terrain represents an impenetrable surface with a more complex surface profile. You can have one or more terrain objects of finite extents and place them on or above the global ground.&lt;br /&gt;
&lt;br /&gt;
Terrain objects have some important differences with objects of the &amp;amp;quot;Impenetrable Surface&amp;amp;quot; type:&lt;br /&gt;
&lt;br /&gt;
# While impenetrable blocks can be created using any of EM.Cube's solid or surface CAD object creation tools, terrain objects are created either using EM.Cube's '''Terrain Generator''' or by importing an external terrain file. &lt;br /&gt;
# Terrain objects belong to a special type of CAD objects called &amp;amp;quot;Tessellated Objects&amp;amp;quot;, which differ from other regular CAD [[Surface Objects|surface objects]] or EM.Cube's polymesh surfaces.&lt;br /&gt;
# Terrain surfaces do not diffract impinging rays at their many small edges.&lt;br /&gt;
# Terrain objects affect the elevation of other objects or transmitters or receivers that are located above them.&lt;br /&gt;
&lt;br /&gt;
Just as other blocks are grouped by their color, texture and material composition, terrain objects are also grouped in a similar fashion. Before you can generate or import a new terrain object, first you have to define a terrain group and specify its color/texture and material properties. To define a new terrain group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Terrain''' item in the Navigation Tree and select '''Insert New Terrain...''' A dialog for setting up the terrain properties opens up offering a of preloaded material type (Rock) with predefined green color and no texture.&lt;br /&gt;
* Specify a name for the terrain group and select a color or texture.&lt;br /&gt;
* Similar to other blocks, you have to specify the material properties, Permittivity (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and Electric Conductivity (&amp;amp;sigma;), of the terrain group. Rock with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m is the default material choice for a new terrain.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Terrain dialog.&lt;br /&gt;
&lt;br /&gt;
You can change the properties of a terrain surface group from its property dialog. Click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog, which is identical to the case of impenetrable surfaces. You can also use EM.Cube's Material List, which will be explained later. When a new terrain type is created, its node on the Navigation Tree becomes active. Under this node you can create and add new terrain objects. When a terrain node is active for drawing, all CAD object creation tools are disabled. You have three options for creating a new terrain object, which will be described in detail in the next sections of this manual:&lt;br /&gt;
&lt;br /&gt;
# Use EM.Cube's '''Terrain Generator'''.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.TRN'''&amp;amp;quot; type.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.DEM'''&amp;amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
=== Using Terrain Generator ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18.png|thumb|250px|[[Propagation Module]]'s Terrain Generator dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides a convenient and powerful Terrain Generator for creating a variety of terrain [[Surface Objects|surface objects]]. EM.Cube's Terrain Generator looks very similar to [[CubeCAD]]'s Surface Generator. However, whereas the Surface Generator creates a generic or polymesh surface object, Terrain Generator always creates another special type of object known as a '''Tessellated Object'''. A terrain object is much simpler than EM.Cube's polymesh objects and is usually made up of triangular or quadrilateral facets. As such, terrain objects have limited editing capabilities. For example, you can cut, copy, paste, translate or rotate  terrain objects. But operations like scaling, mirroring, grouping (composite), arraying, exploding, linking or Boolean operations do not work on terrain objects.&lt;br /&gt;
&lt;br /&gt;
To create a new terrain object using Terrain Generator, first you need to define a terrain group in the Navigation Tree. Right click on the name of the terrain node and select '''Terrain Generator...''' from the contextual menu. This opens up the Terrain Generator Dialog. Using Terrain Generator, you can build a single terrain surface or an array of surfaces patched together. Some of the available terrain models include:&lt;br /&gt;
&lt;br /&gt;
# Flat Plane&lt;br /&gt;
# Hill (Elliptic Quadratic)&lt;br /&gt;
# Mountain (Elliptic Cone)&lt;br /&gt;
# 1-D and 2-D Cliff&lt;br /&gt;
# Gaussian Hump&lt;br /&gt;
# Undulated Sinusoid&lt;br /&gt;
# Undulated Sinc&lt;br /&gt;
# Super-quadratic Plateau&lt;br /&gt;
# Custom Function&lt;br /&gt;
# XY Grid Data&lt;br /&gt;
&lt;br /&gt;
In all of the above models, you can set the height of the surface object to an any desired value. You set the lateral extents of the surface and its resolution along the X and Y directions in the boxes labeled '''Range Start''', '''Range Stop''' and '''Range Step'''. The step values along the X and Y directions are a measure of surface smoothness: the smaller the step values, the higher the resolution and the smoother the resulting terrain object.&lt;br /&gt;
&lt;br /&gt;
Some surface types have an additional shape factor called '''Alpha''' that is identical to the alpha parameter in the surface generator. For example, a Gaussian Hump is defined as exp(-r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/(2a&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)), where r is the polar radius. For a Super-quadratic Hump, the input parameter a defines the degree of the super-quadratic surface. a = 2 corresponds to an ellipsoid. Larger values of a get close to a rectangular base with rounded corners. An undulated sinusoidal surface is defined by cos(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*cos(pay/D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;), and an undulated sinc is defined by D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;*D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;*sin(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*sin(pay/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/(2pxy), where D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; are the X and Y dimensions, respectively. Terrain Generator creates a unit cell based on the specified surface type. From the same dialog, you can also produce an array arrangement of such unit cells. Simply enter any number of elements along the X and Y directions in the boxes labeled '''Array'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP19.png|800px]]  &lt;br /&gt;
&lt;br /&gt;
Figure: A 4 × 4 array of hill terrain objects.&lt;br /&gt;
&lt;br /&gt;
You can define any arbitrary surface by entering an equation of the two [[variables]] x and y as z = f(x,y). In this case, you have to select the '''Custom Function''' option in the dropdown list labeled '''Model'''. You should enter your equation as any mathematical expression in the box labeled '''Function f(x,y)'''. You can use any of EM.Cube's mathematical functions listed in the '''Function Dialog''' or combine several of them. Note that after selecting the custom function option, the height of the surface is determined by your equation, and the '''Height''' box is disabled. You can also introduce random noise and create a rough terrain. You can do this by setting a nonzero value for '''Noise''', which represent the RMS peak-to-valley amplitude of the surface roughness. The figures below show two custom terrain surfaces modeled by the equation z = (x.y)/20 defined over the range [0, 10] in both X and Y directions. Random noise has been added to both surfaces, with the noise amplitude being 0.2 and 0.5 for the left and right figures, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP21.png|400px]] [[File:PROP20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Two noisy custom terrain surfaces both defined as z = (x.y)/20: (Left) RMS noise amplitude = 0.2, (right) RMS noise amplitude = 0.5.&lt;br /&gt;
&lt;br /&gt;
=== Generating Grid-Based Terrain ===&lt;br /&gt;
&lt;br /&gt;
Every time you create a new terrain object using Terrain Generator, an ASCII data file named &amp;amp;quot;GeneratedTerrain&amp;amp;quot; with a &amp;amp;quot;'''.TRN'''&amp;amp;quot; file extension is created and placed in your project folder. This is EM.Cube's simple native terrain file format that basically lists all the (x, y, z) coordinates of the generated surface points on a horizontal, rectangular XY grid. Terrain Generator simply takes your custom function definition or one of the selected catalog surface types and generates the digital elevation data on the specified grid.  &lt;br /&gt;
&lt;br /&gt;
Another type of terrain model that the terrain generator provides is '''XY Grid Data'''. In this case, you define a rectangular XY grid with a uniform grid cell size along the X and Y directions and manually define the Z-elevation for each grid point. This is similar to the surface generator's &amp;amp;quot;2D Uniform Grid&amp;amp;quot; model type in [[CubeCAD]]. Based on your input to '''Range Start''', '''Range Stop''' and '''Range Step''' along X and Y, a 2D grid is set up and displayed in a table at the bottom of the terrain generator dialog. By default, all the Z-elevations are set to zero initially. You can click on each table cell and overwrite it with a new value. At the end, click the '''Create''' button of the dialog to add the new grid-based terrain object to the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:terrain10_tn.png]]&lt;br /&gt;
&lt;br /&gt;
A grid-based terrain object.&lt;br /&gt;
&lt;br /&gt;
=== Importing &amp;amp;amp; Exporting Terrain Models ===&lt;br /&gt;
&lt;br /&gt;
You can import two types of terrain in EM.Cube's [[Propagation Module]]. The first type is &amp;amp;quot;'''.TRN&amp;amp;quot;''' terrain file, which is EM.Cube's native terrain format. It is a basic digital elevation map with a very simple ASCII data file format. The resolution of the terrain map in the X and Y directions is specified in meters as STEPS. The (x, y, z) coordinates of the terrain points are then listed one point per line. The other type of terrain format supported by EM.Cube is the standard '''7.5min DEM''' file format with a '''.DEM''' file extension. &lt;br /&gt;
&lt;br /&gt;
To import an external terrain model, first you have to create a terrain group node in the Navigation Tree. Right click on the name of the terrain group in the Navigation Tree and select either '''Import Terrain...''' or '''Import DEM File...''' A standard Windows '''Open Dialog''' opens up, with the file type set to .TRN or .DEM extensions, respectively. You can browse your folders and find the right terrain model file to import.&lt;br /&gt;
&lt;br /&gt;
You can also export all the terrain objects in the project workspace as a terrain file with a '''.TRN''' file extension. You can even import a DEM terrain model from an external file and then save and export it as a native terrain (.TRN) file. To export the terrain, select '''File''' &amp;amp;gt; '''Export...''' from [[Propagation Module]]'s '''File Menu'''. The standard Windows Save Dialog opens up with the default file type set to '''.TRN'''. Type in a name for your new terrain file and click the '''Save''' button to export the terrain data.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-12_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figur: An imported external terrain model.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Surface Models ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP26.png|thumb|200px|Propagation Module's Penetrable Surface Dialog showing a three-layer wall composition]]&lt;br /&gt;
&lt;br /&gt;
Most of the time, your outdoor propagation scene consists of simple buildings made of single-layer walls with standard material properties (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;). In the case of a single-layer impenetrable surface, the specular interface is an infinite dielectric half-space, which reflects the impinging rays. Single-layer penetrable surfaces, on the other hand, involve finite-thickness dielectric walls, which both reflect and transmit the incident rays. Similarly, most of your indoor propagation scenes involve simple single-layer penetrable walls with the specified material properties &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. A thin wall acts like a finite-thickness dielectric slab that both reflects and transmits incident rays. In the case of the global ground or terrain objects, only ray reflection off the ground surface is considered.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[Propagation Module]], you can define multilayer surfaces with both reflection and transmission properties. You can define multilayer impenetrable buildings, multilayer penetrable walls, and multilayer terrain, with an arbitrary number of layers having different material compositions. You define a multilayer surface in the property dialog of a block, whether impenetrable, penetrable or terrain. In the section entitled '''Surface Type''', two options are available: '''Standard Material''' or '''User Defined Model'''. For simple multilayer walls, select the '''Standard Material''' option. You can add new layers with arbitrary thickness and material parameters to the existing layers. To insert a new layer, deselect any items in the layer list, and click the '''Add/Edit''' button to open the &amp;amp;quot;Add Layer&amp;amp;quot; Dialog. Here you can enter a name for the new layer and values for its '''Thickness''', &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. You may also delete any layer by selecting and highlighting it and clicking the '''Delete''' button. You can move layers up or down using the '''Move Up''' and '''Move Down''' buttons and change the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
You can also search EM.Cube's material database by clicking the '''Material''' button of &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. This opens the '''Materials''' Dialog. Inside the material list select and highlight any row and click the '''OK''' button. The selected material will fill out all the fields in the &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. Inside the Materials Dialog, you can type the few first letters of any material, and it will take you to the corresponding row of the list.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Transferring Objects From Or To Other Modules ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube's [[Propagation Module]] and draw a solid object like a box in the project workspace without having defined any surface groups, it is assumed to be of the impenetrable surface type. A default impenetrable surface group called Block_1 is automatically added to the Navigation Tree, which holds your newly drawn object. The default group has the material properties of &amp;amp;quot;Brick&amp;amp;quot; (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m.) with a dark brown color. You can continue drawing new objects in the project workspace and adding them under this block node. Or you can define a new surface type with different properties. By default, the last surface group that was defined is '''Active'''. The current active surface group is always listed in bold letters in the Navigation Tree. When you draw a new object, it is always inserted under the current active surface group. Any surface group can be activated by right clicking its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move any object from its current surface group into any other available surface group. First select the object, then right click on its surface and select '''MoveTo &amp;amp;gt; Propagation &amp;amp;gt;'''. A submenu appears which lists all the available surface groups where you can transfer the selected object. You can also move objects among surface groups by selecting their names in the Navigation Tree and using the contextual menu. In a similar way, you can transfer objects from [[Propagation Module]] to EM.Cube's other modules or vice versa. '''Keep in mind that all the external model files such as STEP, IGES, STL, etc. are first imported to EM.Cube's [[CubeCAD]], from which you can transfer them to other modules.''' First select the object, then right click and select '''MoveTo &amp;amp;gt;'''. In the submenu you will see a list of all the EM.Cube modules that have at least one available group where you can transfer your selected object. You can select multiple objects for transfer. When using the keyboard's '''Shift Key''' or '''Ctrl Key''' for multiple selection, make sure that those keys are held down, when you right click to access the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Defining Sources &amp;amp;amp; Observables ==&lt;br /&gt;
&lt;br /&gt;
Like every other electromagnetic solver, EM.Cube's SBR ray tracer requires a source for excitation and one or more observables for generation of simulation data. EM.Cube's new [[Propagation Module]] offers several types of sources and observables for a SBR simulation. You can mix and match different source types and observable types depending on the requirements of your modeling problem. There are two types of sources:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Transmitter Sets|Transmitter]]&lt;br /&gt;
* [[#Hertzian Dipole Sources|Hertzian Dipole]]&lt;br /&gt;
&lt;br /&gt;
There are four types of observables:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Receiver Sets|Receivers]]&lt;br /&gt;
* [[#Defining Field Sensors|Field Sensor]]&lt;br /&gt;
* Far Fields&lt;br /&gt;
* Huygens Surface&lt;br /&gt;
&lt;br /&gt;
The simplest SBR simulation can be performed using a short dipole source with a specified field sensor plane. In this way, EM.Cube computes the electric and magnetic fields radiated by your dipole source in the presence of your multipath propagation environment. A &amp;amp;quot;classic&amp;amp;quot; urban propagation scene can be set up using a &amp;amp;quot;Transmitter&amp;amp;quot; source and an array of &amp;amp;quot;Receiver&amp;amp;quot; observables. A transmitter is a point radiator with a user defined radiation pattern. A receiver is a polarization-matched isotropic point radiator that collects the received rays at its aperture. Using receivers, you can calculate the received power coverage map of your propagation scene. You can also calculate your channel's path loss between the transmitter and all the receivers. &amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18(1).png|thumb|[[Propagation Module]]'s Transmitter dialog with a short dipole radiator selected]]&lt;br /&gt;
Earlier versions of EM.Cube's [[Propagation Module]] used to offer an isotropic radiator with vertical or horizontal polarization as the simplest transmitter type. This release of EM.Cube has abandoned isotropic radiator transmitters because they do not exist physically in a real world. Instead, the default transmitter radiator type is now a Hertzian dipole. Note that before defining a transmitter, first you have to define a base set to establish the location of the transmitter. Most simulation scenes involve only a single transmitter. Your base set can be made up of a single point for this purpose. &lt;br /&gt;
&lt;br /&gt;
To define a new Transmitter Set, go to the '''Sources''' section of the Navigation Tree, right click on the '''Transmitters''' item and select '''Insert Transmitter...''' A dialog opens up that contains a default name for the new Transmitter Set as well as a dropdown list labeled '''Select Base Set'''. In this list you will see all the available base sets already defined in the project workspace. Select the desired base set to associate with the transmitter set. Note that if the base set contains more than one point, then more than one transmitter will be created and contained in your transmitter set. After defining a transmitter set, the base points change their color to the transmitter color, which is red by default.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Radiator&amp;amp;quot; section of the dialog, you have two options to choose from: &amp;amp;quot;Short Dipole&amp;amp;quot; and &amp;amp;quot;User Defined&amp;amp;quot;. The default option is short dipole. A short dipole radiator has a '''Length'''''dl'' expressed in project units, a current '''Amplitude''' in Amperes and a current '''Phase''' in degrees. The '''Direction''' of the dipole is determined by its unit vector that has three X, Y and Z components. By default, a Z-directed short dipole radiator is assumed. You can change all parameters of the dipole as you wish. Keep in mind that all the transmitters belonging to the same set have parallel radiators with identical properties.&lt;br /&gt;
&lt;br /&gt;
=== Defining Base Point Sets ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP1.png|thumb|[[Propagation Module]]'s Base Set dialog]]&lt;br /&gt;
In order to tie up transmitters and receivers with CAD objects in the project workspace, EM.Cube uses point objects to define transmitters and receivers. These point objects represent the base of the location of transmitters and receivers in the computational domain. Hence, they are grouped together as &amp;amp;quot;Base Sets&amp;amp;quot;. You can easily interchange the role of transmitters and receivers in a scene by switching their associated bases. The usefulness of concept of base sets will become apparent later when you place transmitters or receivers on an irregular terrain and adjust their elevation.   &lt;br /&gt;
&lt;br /&gt;
To create a new base set, right click on the '''Base Sets''' item of Navigation Tree and select '''Insert Base Set...''' A dialog for setting up the Base Set properties opens up.&lt;br /&gt;
&lt;br /&gt;
# Enter a name for the base set and change the default blue color if you wish. It is useful to differentiate the base sets associated with transmitters and receivers by their color.&lt;br /&gt;
# Click the '''OK''' button to close the Base Set Dialog.&lt;br /&gt;
&lt;br /&gt;
Once a base set node has been added to the Navigation Tree, it becomes the active node for new object drawing. Under base sets, you can only draw point objects. All other object creation tools are disabled. A point is initially drawn on the XY plane. Make sure to change the Z-coordinate of your radiator, otherwise, it will fall on the global ground at z = 0. You can also create arrays of base points under the same base set. This is particularly useful for setting up receiver grids to compute coverage maps. Simply select a point object and click the '''Array Tool''' of '''Tools Toolbar''' or use the keyboard shortcut &amp;amp;quot;A&amp;amp;quot;. Enter values for the X, Y or Z spacing as well as the number of elements along these three directions in the Array Dialog. In most propagation scenes you are interested in 2D horizontal arrays along a fixed Z coordinate (parallel to the XY plane).&lt;br /&gt;
&lt;br /&gt;
=== Defining Transmitter Sets ===&lt;br /&gt;
&lt;br /&gt;
A short dipole is the closest thing to an omni-directional radiator. The direction or orientation of the short dipole determines its polarization. In many applications, you may rather want to use a directional antenna for your transmitter. You can model a radiating structure using EM.Cube's FDTD, Planar, MoM3D or PO modules and generate a 3D radiation pattern data file for it. These data are stored in a specially formatted file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension, which contains columns of spherical &amp;amp;phi; and &amp;amp;theta; angles as well as the real and imaginary parts of the complex-valued far field components '''E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;''' and '''E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;'''. The &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field determine the polarization of the transmitting radiator. &lt;br /&gt;
&lt;br /&gt;
To define a directional transmitter radiator, you need to select the &amp;amp;quot;User Defined&amp;amp;quot; option in the &amp;amp;quot;Radiator&amp;amp;quot; section of the Transmitter Dialog. You can do this either at the time of creating a transmitter set, or afterwards by opening the property dialog of the transmitter set. In the &amp;amp;quot;Custom Pattern Parameters&amp;amp;quot;, click the '''Import Pattern''' button to set the path for the radiation data file. This opens up the standard Windows Open dialog, with the default file type or extension set to &amp;amp;quot;.RAD&amp;amp;quot;. Browse your folders to find the right data file. A radiation pattern file usually contains the value of &amp;amp;quot;Total Radiated Power&amp;amp;quot; in its file header. This is used by default for power calculations in the SBR simulation. However, you can check the box labeled &amp;amp;quot;'''Custom Power'''&amp;amp;quot; and enter a value for the transmitter power in Watts. EM.Cube can also rotate the imported radiation pattern arbitrarily. In this case, you need to specify the '''Rotation''' angles in degrees about the X-, Y- and Z-axes. Note that these rotations are performed sequentially and in order: first a rotation about the X-axis, then a rotation about the Y-axis, and finally a rotation about the Z-axis. &lt;br /&gt;
&lt;br /&gt;
[[File:PROP19(1).png]] [[File:PROP20(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Transmitter dialog with a user defined radiator selected.&lt;br /&gt;
&lt;br /&gt;
=== Multiple Transmitters vs. Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulations are fully coherent and 3D-polarimetric. This means that the phase and polarization of all the rays are maintained and processed during their bounces in the scene. Your propagation scene can have more than one transmitter. During an SBR simulation, all the rays emanating from all the transmitters are traced in the propagation scene. All the received rays at a given receiver location are summed coherently and vectorially. This is based on the principle of linear superposition. All the transmitters belonging to the same transmitter set have the same radiation properties. They are either parallel short dipole radiators with the same current amplitudes and phases, or parallel user defined radiators with identical radiation patterns. As these transmitters are placed at different spatial locations, they effectively form an antenna array with identical elements. The array factor is simply determined by the coordinates of the base points. If you want to have different amplitude or phases, then you need to define different transmitter sets.&lt;br /&gt;
&lt;br /&gt;
If that radiators are indeed the elements of an actual antenna array with a half wavelength spacing or so, we recommend that you import the radiation pattern of the array structure instead and replace the whole multi-radiator system with a single point transmitting radiator in your propagation scene. This case is usually encountered in MIMO systems, and using an equivalent point transmitter is an acceptable approximation because the total size of the array aperture is usually much smaller than the dimensions of your propagation scene and its representative length scales. In that case, you need to position the equivalent point radiator at the radiation center of the antenna array. This depends on the physical structure of the antenna array. However, keep in mind that any reasonable guess may still provide a good approximation without any significant error in the received ray data.    &lt;br /&gt;
&lt;br /&gt;
=== Defining Receiver Sets ===&lt;br /&gt;
&lt;br /&gt;
Receivers act as observables in a propagation scene. The objective of a SBR simulation is to calculate the far-zone electric fields and the total received power at the location of a receiver. In that sense, receivers indeed act as field observation points. You need to define at least one receiver in the scene before you can run a SBR simulation. You define the receivers of your scene by associating them with the base sets you have already defined in the project workspace. Unlike transmitters that usually one or few, a typical propagation scene may involve a large number of receivers. To generate a wireless coverage map, you need to define an array of points as your base set.    &lt;br /&gt;
&lt;br /&gt;
To define a new Receiver Set, go to the Observables section of the Navigation Tree, right click on the '''Receivers''' item and select '''Insert Receiver...''' A dialog opens up that contains a default name for the new Receiver Set as well as a dropdown list labeled '''Select Radiator Set'''. In this list you will see all the available base sets that you have already define in the project workspace. Select and designate the desired base set as the receiver set. Note that if the base set contains more than one point, all of them are designated as receivers. After defining a receiver set, the points change their color to the receiver color, which is yellow by default. The first element of the set is represented by a larger ball of the same color indicating that it is the selected receiver in the scene. The Receiver Set Dialog is also used to access individual receivers of the set for data visualization at the end of a simulation. At the end of an SBR simulation, the button labeled &amp;amp;quot;Show Ray Data&amp;amp;quot; becomes enabled. Clicking this button opens the Ray Data Dialog, where you can see a list of all the received rays at the selected receiver and their computed characteristics.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP21(1).png]] [[File:PROP22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Receiver dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Field Sensors ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|[[Propagation Module]]'s Field Sensor dialog]]&lt;br /&gt;
As an asymptotic electromagnetic field solver, the SBR simulation engine can compute the electric and magnetic field distributions in a specified plane. In order to view these field distributions, you must first define field sensor observables before running the SBR simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear. &lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.   &lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a SBR simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|E_{tot}|} = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|H_{tot}|} = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Computing Radiation Patterns In SBR ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
== Scene Discretization &amp;amp;amp; Adjustment ==&lt;br /&gt;
&lt;br /&gt;
=== The Need For Discretization Of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
In a typical SBR simulation, a ray is traced from the location of the source until it hits a scatterer. The SBR method assumes that the ray hits either a flat facet of the scatterer or one of its edges. In the case of hitting a flat facet, the specular point is used to launch new reflected and transmitted rays. The surface of the facet is treated as an infinite dielectric medium interface, at which the reflection and transmission coefficients are calculated. In the case of hitting an edge, new diffracted rays are generated in the scene. However, only those who reach a nearby receiver in their line of sight are ever taken into account. In other words, diffractions are treated locally.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to draw any type of surface or solid CAD objects under impenetrable and penetrable surface groups. Some of these objects have flat faces such as boxes, pyramids, rectangle or triangle strips, etc. Some others contain curved surfaces or curved boundaries such as cylinders, cones, etc. All the non-flat surfaces have to be discretized in the form of a collection of smaller flat facets. EM.Cube uses a triangular surface mesh generator to discretize the penetrable and impenetrable [[Surface Objects|surface objects]] of your propagation scene. This mesh generator is very similar to the ones used in EM.Cube's two other modules: MoM3D and Physical Optics (PO). &lt;br /&gt;
&lt;br /&gt;
You can build a variety of surface and [[Solid Objects|solid objects]] using EM.Cube's native &amp;amp;quot;Curve&amp;amp;quot; CAD objects like lines, polylines, circles, etc. You can use tools like Extrude, Loft, Strip-Sweep, Pipe-Sweep, etc. to transform curves into surface or [[Solid Objects|solid objects]]. '''However, keep in mind that all the &amp;amp;quot;Curve&amp;amp;quot; CAD objects are ignored by the SBR mesh generator and are therefore not sent to the simulation engine.'''&lt;br /&gt;
&lt;br /&gt;
=== Viewing SBR Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can view and examine the discretized version of your scene objects as they are sent to the SBR simulation engine. To view the mesh, click the '''Mesh''' [[File:mesh_tool.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''', or use the keyboard shortcut '''Ctrl+M'''. A triangular surface mesh of your physical structure appears in the project workspace. In this case, EM.Cube enters it mesh view mode. You can perform view operations like rotate view, pan, zoom, etc. But you cannot select objects, or move them or edit their properties. To get out of the Mesh View and return to EM.Cube's Normal View, press the '''Esc Key''' of the keyboard, or click the Mesh button of the Simulate Toolbar once again, or go to the Simulate Menu and deselect the '''Discretization &amp;amp;gt;''' '''Show Mesh''' item.&lt;br /&gt;
&lt;br /&gt;
You can adjust the mesh resolution and increase the geometric fidelity of discretization by creating more and finer triangular facets. On the other hand, you may want to reduce the mesh complexity and send to the SBR engine only a few coarse facets to model your buildings. To adjust the mesh resolution, open the Mesh Settings Dialog by clicking the '''Mesh Settings''' [[File:mesh_settings.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt;''' '''Mesh Settings...'''. This dialog provides a single parameters: '''Edge Length'''., which has a default value of 100 project units. If you are already in the Mesh View Mode and open the Mesh Settings Dialog, you can see the effect of changing the edge length using the '''Apply''' button. Click OK to close the dialog.&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules that express the default mesh density based on the wavelength, the resolution of the SBR mesh generator is expressed in project length units. The default edge length value of 100 units might be too large for non-flat objects. You may have to use a lower value to capture the curvature of your curved structures adequately. &lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-29.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Special Discretized Object Types ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, terrain objects are represented by and saved as special &amp;amp;quot;Tessellated&amp;amp;quot; objects with quadrilateral cells. This is true of terrain objects that you create yourself using EM.Cube's Terrain Generator as well as all the terrain objects that you import from external files to your project. The center of each cell represents the terrain elevation at that point. Tessellated objects are considered as discretized objects by EM.Cube and they are not meshed one more time by the SBR mesh generator. Each quadrilateral cell is divided into two triangular cells before being passed to the SBR simulation engine. Therefore, when using EM.Cube's Terrain Generator to create a new terrain object, you have to pay special attention to the resolution of the terrain object as it determines the total number of terrain facets sent to the simulation engine. A high resolution terrain, although looking better and more realistic, may easily lead to an enormous computational problem.&lt;br /&gt;
&lt;br /&gt;
You can use EM.Cube's &amp;amp;quot;Polymesh&amp;amp;quot; tool to discretize solid and surface CAD objects. You can manually control the mesh characteristics of polymesh objects including inserting new nodes on faces and edges or deleting existing nodes. In addition, EM.Cube's Solid Generator and Surface Generator tools create ploymesh solids and surfaces, respectively. Like tessellated object, polymesh objects are also considered as discretized objects by EM.Cube and they are not meshed again by the SBR mesh generator.   &lt;br /&gt;
&lt;br /&gt;
=== SBR Mesh Rules &amp;amp;amp; Considerations ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
=== Adjusting Block Elevation On Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, buildings and all other CAD objects are initially created on the XY plane by default. In other words, the Z-coordinate of the local coordinate system (LCS) of all blocks is set to zero until you change them. As long as you use the global ground, all is fine as your buildings are seated on the ground. When your propagation scene has an irregular terrain, you want to place your buildings on the terrain and not buried under it. Buildings in EM.Cube are not adjusted to the terrain elevation automatically. You need to instruct EM.Cube to do so.&lt;br /&gt;
&lt;br /&gt;
To update the building positions and adjust their elevation to the underlying terrain, right click on the '''Terrain''' item of the Navigation Tree and select '''Adjust Scene Elevation''' from the context menu. All the blocks in the scene are automatically elevated in the Z direction such that their bases sit on the terrain. In effect, all the blocks are translated along the global Z axis by proper amounts such that their local Z coordinate equals the Z-elevation of the underlying terrain object. This feature is particularly useful if you change the location of the terrain or import a new terrain after the blocks have been created.&lt;br /&gt;
&lt;br /&gt;
Note: You have to make sure that the resolution of your terrain, its fluctuation scale and building dimensions are all comparable. Otherwise, on a high-resolution, rapidly varying terrain, you will have buildings whose bottoms are in contact with the terrain only at a few points and parts of them hang in the air.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_adjust1_tn.png|400px]] [[File:prop_adjust2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Scene with Buildings and Terrain Before and After Adjusting Elevation&lt;br /&gt;
&lt;br /&gt;
=== Transmitters &amp;amp;amp; Receivers Above An Irregular Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, all the transmitters and receivers are tied up with point objects in the project workspace. These point objects are grouped and organized in base sets. When you move the point objects or change their coordinates, all of their associated transmitters or receivers immediately follow them to the new location. For example, you usually define a grid of receivers using a base set that is made up of a uniformly spaced array of points and spread them in your scene. All of these receivers have the same height because their associated base points all have the same Z-coordinate. When your receivers are located above a flat terrain like the global ground, their Z-coordinates are equal to their height above the ground, as the terrain elevation is fixed and equal to zero everywhere. The same is true for transmitters, too.   &lt;br /&gt;
&lt;br /&gt;
In many propagation modeling problems, your transmitters and receivers may be located above an irregular terrain with varying elevation across the scene. In that case, you may want to place your transmitters or receivers at a certain height above the underlying ground. The Z-coordinate of a transmitter or receiver is now the sum of the terrain elevation at the base point and the specified height. EM.Cube gives you the option to adjust the transmitter and receiver sets to the terrain elevation. This is done for individual transmitter sets and individual receiver sets. At the top of the Transmitter Dialog there is a check box labeled &amp;amp;quot;'''Adjust Tx Sets to Terrain Elevation'''&amp;amp;quot;. Similarly, at the top of the Receiver Dialog there is a check box labeled &amp;amp;quot;'''Adjust Rx Sets to Terrain Elevation'''&amp;amp;quot;. These boxes are unchecked by default. As a result, your transmitter sets or receiver sets coincide with their associated base points in the project workspace. If you check these boxes and place a transmitter set or a receiver set above an irregular terrain, the transmitters or receivers are elevated from the location of their associated base points by the amount of terrain elevation as can be seen in the figure below.   &lt;br /&gt;
&lt;br /&gt;
To better understand why there are two separate sets of points in the scene, note that a point array (CAD object) is used to create a uniformly spaced base set. The array object always preserves its grid topology as you move it around the scene. However, the transmitters or receivers associated with this point array object are elevated above the irregular terrain and no longer follow a strictly uniform grid. If you move the base set from its original position to a new location, the base points' topology will stay intact, while the associated transmitters or receivers will be redistributed above the terrain based on their new elevations.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_txrx1_tn.png|400px]] [[File:prop_txrx2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Transmitters and receivers adjusted above an uneven terrain and their associated base sets.&lt;br /&gt;
&lt;br /&gt;
== Running A SBR Simulation ==&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] offers three types of ray tracing simulations:&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
An SBR analysis is the simplest ray tracing simulation and involves the following steps:&lt;br /&gt;
&lt;br /&gt;
# Set the unit of project scene and the frequency of operation. Note that EM.Cube's default project unit is millimeter. When working with the [[Propagation Module]], pay attention to the project unit. Radio propagation problems usually require meter, mile or kilometer as the project unit.&lt;br /&gt;
# Create the blocks and draw the buildings at the desired locations.&lt;br /&gt;
# Keep the default ray domain and accept the default global ground or change its material properties.&lt;br /&gt;
# Define the base sets (at least one for the transmitter and one for the receiver).&lt;br /&gt;
# Define the transmitter and receiver(s) using the available base sets.&lt;br /&gt;
# Run the SBR simulation engine.&lt;br /&gt;
# Visualize the coverage map and plot other data.&lt;br /&gt;
&lt;br /&gt;
You can access the [[Propagation Module]]'s run dialog by clicking the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or by selecting '''Simulate &amp;amp;gt; Run...''' or using the keyboard shortcut '''Ctrl+R'''. When you click the '''Run''' button, a new window opens up that reports the different stages of the SBR simulation and indicates the progress of each stage. After the SBR simulation is successfully completed, a message pops up and prompts the completion of the process.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== SBR Simulation Parameters ===&lt;br /&gt;
&lt;br /&gt;
There are a number of SBR simulation settings that can be accessed and changed from the SBR Settings Dialog. To open this dialog, click the button labeled '''Settings''' on the right side of the '''Select Engine''' dropdown list in the Run Dialog. EM.Cube's SBR simulation engine allows you to separate the physical effects that are calculated during a ray tracing process. You can selectively enable or disable '''Ray Reflection''', '''Ray Transmission''' and '''Ray Diffraction'''. By default, all three effects are checked and included in the computations. Separating these effects sometimes help you better analyze your propagation scene and understand the impact of various blocks in the scene.&lt;br /&gt;
&lt;br /&gt;
EM.Cube requires a finite number of ray bounces for each original ray emanating from a transmitter. This is very important in situations that may involve resonance effects where rays get trapped among certain group of surfaces and may bounce back and forth indefinitely. This is set using the box labeled &amp;amp;quot;'''Max No. Ray Bounces'''&amp;amp;quot;, which has a default value of 10. Note that the maximum number of ray bounces directly affects the computation time as well as the size of output simulation data files. This can become critical for indoor propagation scenes, where most of the rays undergo a large number of reflections.   &lt;br /&gt;
&lt;br /&gt;
As rays travel in the scene and bounce from surfaces, they lose their power and their amplitudes diminish. From a practical point of view, only rays that have power above the receiver sensitivity threshold can be effectively received. Therefore, all the rays whose power fall below a specified power threshold are discarded. The '''Ray Power Threshold''' is specified in dBm and has a default value of -100dBm. Keep in mind that the value of this threshold directly affects the accuracy of the simulation results as well as the size of the output data file.&lt;br /&gt;
&lt;br /&gt;
You can also set the '''Angular Resolution''' of the transmitter rays in degrees. By default, every transmitter emanates equi-angular ray tubes at a resolution of 1 degree. Lower angular resolutions larger than 1° speed up the SBR simulation significantly, but they may compromise the accuracy. Higher angular resolutions less than 1° increase the accuracy of the simulating results, but they also increase the computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP13.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s SBR Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== The Coverage Map ===&lt;br /&gt;
&lt;br /&gt;
If the associated radiator set is isotropic, so will be the transmitter set. By default, an isotropic transmitter has vertical polarization. You can use the '''Polarization''' radio button to select one of the two options: '''Vertical''' or '''Horizontal'''. If the associated radiator set consists of '''Short Dipole''' or '''User Defined''' radiators, it is indicated in the transmitter property dialog. In the case of a short dipole radiator, you can set a value for the dipole current in Amperes. The radiation resistance of a short dipole of length ''dl'' is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; R_r = 80\pi^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:eqngr6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The radiated power of a short dipole carrying a current I&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; P_{rad} = \frac{1}{2} R_r |I_0|^2 = 40\pi^2 |I_0|^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:shortdipole.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For isotropic and user defined radiators you can set the '''Input Power''' and '''Phase''' of a transmitter set in Watts and degrees, respectively. This can be accessed from the '''Transmitter Chain''' dialog, which will be described in detail in the next section. The radiation pattern of the associated radiator set is normalized and used in conjunction with the input power value to create a weighted distribution of transmitted rays. In certain cases like hybrid simulations, you may want to use the actual values of the far field to define the transmitter power rather than a normalized radiation pattern. Note that the pattern (.RAD) file contains the value of total radiated power in its header. In this case, check the box labeled '''&amp;amp;quot;Calculate Power From Radiation Pattern&amp;amp;quot;'''. This is calculated directly from the complex &amp;amp;theta; and &amp;amp;phi; components of the far field data by integrating them over the entire space (4&amp;amp;pi; solid angle). Note that this option is available only when the radiator is of the User Defined type. When this box is checked, the transmitter chain button is grayed out. By default, an isotropic transmitter emanates rays uniformly in all directions at the angular resolution specified by the user. A transmitter with a user defined associated radiator may represent a highly directional radiation pattern with the main beam pointing in a certain direction. You can additionally force and limit the '''Angular Extents''' of rays to a certain solid angle around the transmitter. This is especially useful and computationally efficient when the transmitter is on one side of the scene, and all the scatterers and receivers are on the other side. In this case, there is no need to generate rays in all directions. To limit the angular extents of rays, define the Start and End values for both Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles. The value of the angular resolution of the rays can be changed from the Run Dialog as will be discussed later.&lt;br /&gt;
&lt;br /&gt;
In a regular SBR simulation, you have a transmitter and one or more arrays of receivers in your scene. At the end of the simulation, you can visualize the coverage map of the transmitter over the receiver sets. A coverage map shows the total '''Received Power''' by each of the receivers and is visualized as a color-coded intensity plot. You can visualize the coverage maps of individual receiver sets. At the end of a SBR simulation, each Received Power Coverage Map is listed under the receiver set's name in the Navigation Tree. To display a coverage map, simply click on its entry in the Navigation Tree. The coverage map plot appears in the Main Window overlaid on the scene. A legend box on the right shows the color scale and units (dB). The 3-D coverage maps are displayed as horizontal confetti above the receivers. If the receivers are packed close to each other, you will see a continuous confetti map. If the receivers are far apart, you will see individual colored squares. You can also visualize coverage maps as colored 3-D cubes. This may be useful when you set up your receivers in a vertical arrangement or the scene has a highly uneven terrain. To change the type of coverage map visualization, open the receiver set's property dialog and select the desired option for '''Coverage Map: Confetti''' or '''Cube''' in the '''&amp;amp;quot;Visualization Options&amp;amp;quot;''' section of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run11_tn.png|400px]] [[File:prop_run12_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Received power coverage map: (Left) confetti style, and (Right) cube style.&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the coverage map by right clicking on its entry in the Navigation Tree and selecting '''Properties...''' or by double-clicking on the legend box. In the Output Plot Settings dialog, you can choose from one of three Color Map options: '''Default''', '''Rainbow''' and '''Grayscale'''. The visualization plot uses default values for the color scale. In the section titled &amp;amp;quot;Limits&amp;amp;quot;, you can choose the radio button labeled '''User Defined'''. Then, you have to enter new values for the '''Lower''' and '''Upper''' Limits of the plot. You can also show or hide the Legend Box or change its '''Background''' and '''Foreground''' colors by clicking the buttons provided for this purpose.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run4.png]]&lt;br /&gt;
&lt;br /&gt;
Output Plot Settings&lt;br /&gt;
&lt;br /&gt;
=== The Ray Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a SBR simulation, each receiver receives a number of rays. Some receivers may not receive any rays at all. You can visualize all the rays received by a certain receiver from the active transmitter of the scene. To do this, right click the '''Receivers''' item of the Navigation Tree. From the context menu select '''Show Received Rays'''. All the rays received by the currently selected receiver of the scene are displayed in the scene. The rays are identified by labels, are ordered by their power and have different colors for better visualization. You can display the rays for only one receiver at a time. The receiver set property dialog has a list of all the individual receivers belonging to that set. To display the rays received by another receiver, you have to change the '''Selected Receiver''' in the receiver set's property dialog. If you keep the mouse focus on this dropdown list and roll your mouse scroll wheel, you can scan the selected receivers and move the rays from one receiver to the next in the list. To remove the visualized rays from the scene, right click the Receivers item of the Navigation Tree again and from the context menu select '''Hide Received Rays'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run5_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Visualization of received rays at the location of the selected receiver.&lt;br /&gt;
&lt;br /&gt;
You can also view the ray parameters by opening the property dialog of a receiver set. By default, the first receiver of the set is always selected. You can select any other receiver from the drop-down list labeled '''Selected Receiver'''. If you click the button labeled '''Show Ray Data''', a new dialog opens up with a table that contains all the received rays at the selected receiver and their parameters:&lt;br /&gt;
&lt;br /&gt;
* Delay is the total time delay that a ray experiences travelling from the transmitter to the receiver after all the reflections, transmissions and diffractions and is expressed in nanoseconds.&lt;br /&gt;
* Ray Field is the received electric field at the receiver location due to a specific ray and is given in dBV/m.&lt;br /&gt;
* Ray Power is the received power at the receiver due to a specific ray and is given in dBm.&lt;br /&gt;
* Angles of Arrival are the &amp;amp;theta; and &amp;amp;phi; angles of the incoming ray at the local spherical coordinate system of the receiver.&lt;br /&gt;
&lt;br /&gt;
The Ray Data Dialog also shows the '''Total Received Power''' in dBm and '''Total Received Field''' in dBV/m due to all the rays received by the receiver. You can sort the rays based on their delay, field, power, etc. To do so, simply click on the grey column label in the table to sort the rays in ascending order based on the selected parameter. You can also select any ray by clicking on its '''ID''' and highlighting its row in the table. In that case, the selected rays is highlighted in the Project Workspace and all the other rays become thin (faded).&lt;br /&gt;
&lt;br /&gt;
Note: The rays are summed up coherently at the receiver.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run6_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Analyzing a selected ray from the ray data dialog.&lt;br /&gt;
&lt;br /&gt;
=== Plotting Other Simulation Results ===&lt;br /&gt;
&lt;br /&gt;
Besides visualizing the coverage map and received rays in the EM.CUBE's [[Propagation Module]], you can also plot the '''Path Loss''' of all the receivers belonging to a receiver set as well as the '''Power Delay Profile''' of individual receivers. To plot these data, go the '''Observables''' section of the Navigation Tree and right click on the '''Receivers''' item. From the context menu, select '''Plot Path Loss''' or '''Plot Power Delay Profile''', respectively. The path loss data between the active transmitter and all the receivers belonging to a receiver set are plotted on a Cartesian graph. The horizontal axis of this graph represents the index of the receiver. Power Delay Profile is a bar chart that plots the power of individual rays received by the currently selected receiver versus their time delay. If there is a line of sight (LOS) between a transmitter and receiver, the LOS ray will have the smallest delay and therefore will appear first in the bar chart. Sometimes you may have several rays arriving at a receiver at the same time, i.e. all with the same delay, but with different power level. These will appear as stacked bars in the chart.&lt;br /&gt;
&lt;br /&gt;
You can also plot the path loss and power delay profile graphs and many others from EM.CUBE's data manager. You can open data manager by clicking the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or by selecting '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or by right clicking on the '''Data Manager''' item of the Navigation Tree and selecting Open Data Manager... from the contextual menu or by using the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the theta and phi angles of arrival and departure of the selected receiver. You can select any data file by clicking and highlighting its '''ID''' in the table and then clicking the '''Plot''' button.&lt;br /&gt;
&lt;br /&gt;
=== Output Data Files ===&lt;br /&gt;
&lt;br /&gt;
At the end of an SBR simulation, the results are written into a main output data file with the reserved name of SBR_Results.RTOUT. This file has the following format:&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Receiver Number&lt;br /&gt;
* Receiver Base X, Y , Z Coordinates&lt;br /&gt;
* Receiver Height&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
Number of Rays&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Ray Number&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Arrival in deg&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Departure in deg&lt;br /&gt;
* Delay in nsec&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''') &amp;amp;amp; Imag('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''')&lt;br /&gt;
* Power&lt;br /&gt;
&lt;br /&gt;
The angles of arrival are the &amp;amp;theta; and &amp;amp;phi; angles of a received ray measured in degrees and are referenced in the spherical coordinate systems centered at the location of the receiver. The angles of departure for a received ray are the &amp;amp;theta; and &amp;amp;phi; angles of the originating transmitter ray, measured in degrees and referenced in the spherical coordinate systems centered at the location of the active transmitter, which eventually arrives at the receiver. The total time delay is measured in nanoseconds between t = 0 nsec at the time of launch from the transmitter location till being received at the receiver location. The last four columns show the real and imaginary parts of the received electric fields with vertical and horizontal polarizations, respectively. The complex field values are normalized in a way that when their magnitude is squared, it equals the received ray power. If the active transmitter is an isotropic radiator with either a vertical or horizontal polarization, then the field components corresponding to the other polarization will have zero entries in the output data file.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run8_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A typical SBR output data file.&lt;br /&gt;
&lt;br /&gt;
=== Running A Frequency Sweep With SBR ===&lt;br /&gt;
&lt;br /&gt;
By default, you run a single-frequency simulation in EM.CUBE's [[Propagation Module]]. You set the operational frequency of a SBR simulation in the project's '''Frequency Dialog''', which can be accessed in a number of ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''Frequency''' [[File:freq_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]]'''Frequency Settings...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+F'''.&lt;br /&gt;
# By double clicking the frequency section (box) of the '''Status Bar'''.&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
[[File:prop_freq.png]]    [[File:prop_run10.png]]&lt;br /&gt;
&lt;br /&gt;
(Left) Project's frequency dialog and (Right) the frequency settings dialog.&lt;br /&gt;
&lt;br /&gt;
You can also select the '''Frequency Sweep''' option in the '''Simulation Mode''' drop-down list of the '''Run Dialog'''. Click the '''Settings...''' button on the right side of this dropdown list to open up the Frequency Settings Dialog. Based on the original values of the project center frequency and bandwidth, the '''Start Frequency''' and '''End Frequency''' have default values. You can also change the '''Number of Samples'''. Once you click the '''Run''' button, EM.CUBE performs a frequency sweep by assigning each of the frequency samples as the current operational frequency and running the SBR simulation engine at that frequency. All the simulation data at all frequency samples are saved into the output data files including &amp;amp;quot;SBR_results.RTOUT&amp;amp;quot;. After the completion of a frequency sweep simulation, as many coverage maps as the number of frequency samples are generated and added to the Navigation Tree under the Receiver Set's entry. You can click on each of the coverage maps corresponding to each of the frequency samples and visualize it in the project workspace. You can also animate the coverage maps. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. The coverage maps start to animate by their order on the Navigation Tree. Once the entire list is displayed sequentially, it starts all over again from the beginning of the list. During the animation, the '''Animation Controls''' dialog appears at the lower right corner of the screen. This dialog has a number of buttons for pause/resume, step forward/backward, and step to the end/start. The title of each coverage map is shown in the box labeled '''Sample''' as it is displayed in the main window. You can also change the speed of animation. The default frame duration has a value of 300 (3x100) milliseconds. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run13.png]]    [[File:prop_run14.png]]&lt;br /&gt;
&lt;br /&gt;
Multiple coverage maps on the Navigation Tree at the end of a frequency sweep and starting an animation from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run15_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Animation controls dialog in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep with SBR ===&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run24.png|thumb|300px|EM.CUBE's variable dialog]]&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run23.png|thumb|250px|Dialog for defining new variables]]&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE, all the CAD object properties as well as certain source, material and mesh parameters can be assigned as [[variables]]. [[Variables]] are defined to control and vary the values of such parameters either for editing purposes or to run parametric sweep or [[optimization]]. Variable are defined using the '''[[Variables]] Dialog''', which can be accessed in the three ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''[[Variables]]''' [[File:variable_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]] '''[[Variables]]...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+B'''.&lt;br /&gt;
&lt;br /&gt;
The [[variables]] dialog is initially empty. To add a new variable, click the '''Add''' button to open up the '''Add Variable/Syntax Dialog'''. In this dialog you have to type in a name for the new variable and choose a type. The default type is '''Uniformly Spaced Samples'''. You also need to specify the '''Start''', '''Stop''' and '''Step''' values for the variable. In the figure below, a variable called &amp;amp;quot;Tx_Height&amp;amp;quot; is defined that varies between 2 and 10 with equal steps of 2. This means the sample set {2,4,6,8,10}. When you return to the [[variables]] dialog, the syntax of the new variable is shown as 2:10:2. The last number in this syntax is always the variable step. In this example, this variable is going to be used to control the height of the transmitter in a propagation scene.&lt;br /&gt;
&lt;br /&gt;
Next, you have to attach the variable to the CAD object. In this case, the CAD object is the point object that represents the transmitter's radiator. To attach a variable to a CAD object, open the object's property dialog and type in the name of the variable as the value of a property or parameter. In this case, the variable Tx_Height is going to control the Z-Coordinate of the point object. Once the value of the object parameter is replaced by the name of an already defined variable, it is updated with the current value of that variable. In the case of a variable of &amp;amp;quot;Uniformly Spaced Samples&amp;amp;quot; type, the current value is the start value. This value will be incrementally varied during a parametric sweep simulation process. Note that a variable can take a fixed value or a discrete set of values, too. You can always open the [[variables]] dialog and change the value or syntax of any variable. To make a new or modified value effective, click the '''Apply''' button of the [[variables]] dialog. You can test the values by performing a '''Dry Run''' of the selected variable. This runs an animation of the project workspace as the value of the variable changes and all the related CAD objects are updated accordingly. Note that you can attach the same variable to more than one CAD object property or to the properties of different objects. You can also define multiple values or syntaxes to the same variable. To do so, open the '''Add Variable/Syntax Dialog''', and instead of typing in a new variable name, choose an existing variable name from the '''Name''' dropdown list. This will add a new value or syntax to the existing syntax(es) of the selected variable. When you return to the [[variables]] dialog, [[variables]] with more than one value or syntax will have a dropdown list in the '''Syntax''' column. You can choose any of these values or syntaxed at any time and make the change effective by clicking the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run25.png]]&lt;br /&gt;
&lt;br /&gt;
Replacing the value of a CAD object parameter with a variable name.&lt;br /&gt;
&lt;br /&gt;
To run a parametric sweep, open the '''Run Dialog''' and select the '''Parametric Sweep''' option in the '''Simulation Mode''' drop-down list. If you have not defined any [[variables]] in the project, the box in the '''[[Variables]]''' row before the '''View''' will be red. You have to turn it into green before you can run a simulation. By clicking the '''View''' button, you can open up the [[variables]] dialog from here. Once you click the '''Run''' button, EM.CUBE performs a parametric sweep by incrementally varying the values of all the defined [[variables]] from their start to stop values at the specified steps and updating all the related CAD objects. After the completion of a parametric sweep simulation, as many coverage maps as the total number of variable samples are generated and added to the Navigation Tree under the receiver set's entry. You can click on each of the coverage maps and visualize it in the project workspace. You can also animate the coverage maps sequentially. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run26.png]]&lt;br /&gt;
&lt;br /&gt;
Choosing parametric sweep as the simulation mode in the run dialog. Note that one variable has been defined and EM.CUBE is ready to run the simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run27_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The coverage map of the scene at the end of a parametric sweep where the sweep variable is the transmitter height.&lt;br /&gt;
&lt;br /&gt;
=== Statistical Analysis of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's coverage maps display the received power at the location of all the receivers. The receivers together from a set/ensemble, which might be uniformly spaced or distributed across the propagation scene or may consist of randomly scattered radiators. Every coverage map shows the '''Mean''' and '''Standard Deviation''' of the received power for all the receivers involved. These information are displayed at the bottom of the coverage map's legend box and are expressed in dB.&lt;br /&gt;
&lt;br /&gt;
In the [[Propagation Module]], when you ran a sweep simulation (frequency, transmitter or parametric), you also have the option to generate two additional coverage maps: one for the mean of all the individual sample coverage maps and another for their standard deviation. To do so, in the '''Run Dialog''', check the box labeled '''&amp;amp;quot;Create Mean and Standard Deviation Coverage Maps&amp;amp;quot;'''. Note that the mean and standard deviation values displayed on the individual coverage maps correspond to the spatial statistics of the receivers in the scene, while the mean and standard deviation coverage maps correspond to frequency, transmitter or variable sets defined for the sweep simulation. Also, note that both of the mean and standard deviation coverage maps have their own spatial mean and standard deviation values expressed in dB at the bottom of their legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run21_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The mean coverage map at the end of a transmitter sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run22_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The standard deviation coverage map at the end of a transmitter sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Terrano</id>
		<title>EM.Terrano</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Terrano"/>
				<updated>2013-06-14T14:51:12Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Penetrable Surfaces For Indoor Scenes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Taking out this picture for now for consistency&lt;br /&gt;
[[File:urban.png]]--&amp;gt;&lt;br /&gt;
EM.Terrano is a physics-based, site-specific, wave propagation modeling tool that enables engineers to quickly determine how radio waves propagate in urban, natural or mixed environments. The rapid growth of wireless communications along with the high costs associated with the design and deployment of effective wireless infrastructures underline a persistent need for computer aided communication network planning tools. Wireless engineers have long used simplistic statistical prediction models based on measurements that often exhibit considerable errors especially in areas having mixed building sizes.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Terrano has helped wireless engineers around the globe model the physical channel and the mechanisms by which radio signals propagate from transmitters to receivers. EM.Terrano’s advanced ray tracing simulator finds the dominant propagation paths specific to the site in question. It calculates the true signal characteristics at the actual locations using physical databases of the buildings and terrain at a given site, not those of a statistically average or representative environment. EM.Terrano’s ray tracer is based on the shoot-and-bounce-rays (SBR) method, which utilizes geometrical optics (GO) in combination with uniform theory of diffraction (UTD) models of building edges.&lt;br /&gt;
&lt;br /&gt;
The new EM.Terrano 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has created the opportunity to inject a host of new powerful features such as a highly customizable terrain generator, DEM terrain import, complex building constructions, and versatile interior wall arrangements for indoor propagation modeling. As a result of this seamless interface with EM.Cube's other modules, you can now model complex antenna systems in [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]], and generate antenna radiation patterns than can be used to model directional transmitters and receivers at the two ends of your propagation channel. Conversely, you can analyze a propagation scene in EM.Terrano and import the rays received at a certain receiver location as coherent plane wave sources to [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]]. You can also model periodic wall or ground structures using the periodic simulation capability of [[EM.Picasso]] or [[EM.Tempo]] and generate macromodels for their reflection and transmission coefficients as functions of the ray incidence angles. You can then define buildings or terrains in your propagation scene that are governed by such macromodels.&lt;br /&gt;
&lt;br /&gt;
== A Wireless Propagation Primer ==&lt;br /&gt;
Every wireless communication system involves a transmitter that transmits some sort of signal (voice, video, data, etc.), a receiver that receives and detects the transmitted signal, and a channel in which the signal is transmitted into the air and travels from the location of the transmitter to the location of the receiver. The channel is the physical medium in which the electromagnetic waves propagate. The successful design of a communication system depends on an accurate link budget analysis that determines whether the receiver receives adequate signal power to detect it against the background noise. The simplest channel is the free space. Real communication channels, however, are more complicated and involve a large number of wave scatterers. For example, in an urban environment, the obstructing buildings, vehicles and vegetation reflect, diffract or attenuate the propagating radio waves. As a result, the receiver receives a distorted signal that contains several components with different power levels and different time delays arriving from different angles.&lt;br /&gt;
&lt;br /&gt;
The different rays arriving at a receiver location create constructive and destructive interference patterns. This is known as the multipath effect. This together with the shadowing effects caused by building obstructions lead to channel fading. In many wireless applications, the total received power by the receiver is all that matters. In some others, the angle of arrival of the rays as well as their polarization are of immense interest. A fully polarimetric, coherent ray tracer like EM.Cube's Shooting-and-Bouncing-Rays (SBR) solver lets you compute and resolve all the rays received by a receiver including their power levels, time delays and angles of arrival.&lt;br /&gt;
&lt;br /&gt;
=== Free Space Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
In a free-space line-of-sight (LOS) communication system, the signal propagates directly from the transmitter to the receiver without encountering any obstacles (scatterers). Electromagnetic waves propagate in the form of spherical waves with a functional dependence of e&amp;lt;sup&amp;gt;j(&amp;amp;omega;&amp;lt;/sup&amp;gt;&amp;lt;sup&amp;gt;t-k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;R)&amp;lt;/sup&amp;gt;/R, where R is the distance between the transmitter and receiver, &amp;lt;math&amp;gt;\omega = 2\pi f&amp;lt;/math&amp;gt;, f is the signal frequency, &amp;lt;math&amp;gt;k_0 = \tfrac{\omega}{c} = \tfrac{2\pi}{\lambda}&amp;lt;/math&amp;gt;, c is the speed of light, and &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength at the operational frequency. By the time the signal arrives at the location of the receiver, it undergoes two changes. It is attenuated and its power drops by a factor of 1/R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, and additionally, it experiences a phase shift of &amp;lt;math&amp;gt;\tfrac{2\pi R}{\lambda_0}&amp;lt;/math&amp;gt;, which is equivalent to a time delay of R/c. The signal attenuation from the transmitter to the receiver is usually quantified by '''Path Loss''' defined as the ratio of the received signal power (P&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;) to the transmitted signal power (P&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;). Assuming isotropic transmitting and receiving radiators (i.e. radiating uniformly in all directions), the Path Loss in a free-space line-of-sight communication system is given by Friis’ formula:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = \left( \frac{\lambda_0}{4\pi R} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above formula assumes that the receiving antenna is polarization-matched. Normally, there is a polarization mismatch between the transmitting and receiving antennas. In the case of directional transmitting and receiving antennas, Friis’ formula takes the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = G_T G_R \left( \frac{\lambda_0}{4\pi R} \right)^2 ( \mathbf{ \hat{u}_T \cdot \hat{u}_R } )&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''u&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;''' and '''u&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''' are the unit polarization vectors of the transmitting and receiving antennas, and G&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt; and G&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; are their gains, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:los.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Line-of-Sight (LOS) Propagation Scenario.&lt;br /&gt;
&lt;br /&gt;
=== Multipath Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
Free-space line-of-sight communications is an ideal scenario that is typically used to model aerial or space applications. In ground-based systems, the presence of the ground as a very large reflecting surface affects the signal propagation to a large extent. Along the path from a transmitter to a receiver, the signal may also encounter many obstacles and scatterers such as buildings, vegetation, etc. In an urban canyon environment with many buildings of different heights and other scatterers, a line of sight between the transmitter and receiver can hardly be established. In such cases, the propagating signals bounce back and forth among the building surfaces. It is these reflected or diffracted signals that are often received and detected by the receiver. Such environments are referred to as “multipath”. The group of rays arriving at a specific receiver location experience different attenuations and different time delays. This gives rise to constructive and destructive interference patterns that cause fast fading. As a receiver moves locally, the receiver power level fluctuates sizably due to these fading effects.&lt;br /&gt;
&lt;br /&gt;
The use of statistical models for prediction of fading effects is widely popular among communication system designers. These models are either based on measurement data or derived from simplistic analytical frameworks. The statistical models often exhibit considerable errors especially in areas having mixed building sizes. In such cases, one needs to perform a physics-based, site-specific analysis of the propagation environment to accurately identify and establish all the possible signal paths from the transmitter to the receiver. This involves an electromagnetic analysis of the scene with all of its geometrical and physical details.  &lt;br /&gt;
&lt;br /&gt;
Link budget analysis for a multipath channel is a challenging task due to the large size of the computational domains involved. Typical propagation scenes usually involve length scales on the order of thousands of wavelengths. To calculate the path loss between the transmitter and receiver, one must solve Maxwell's equations in an extremely large space. Full-wave numerical techniques like the Finite Difference Time Domain (FDTD) method, which require a fine discretization of the computational domain, are therefore impractical for solving large-scale propagation problems. The practical solution is to use asymptotic techniques such as SBR, which utilize analytical techniques over large distances rather than a brute force discretization of the entire computational domain. Such asymptotic techniques, of course, have to compromise modeling accuracy for practical computation feasibility.&lt;br /&gt;
&lt;br /&gt;
[[File:multi1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A multipath propagation scene showing all the rays arriving at a particular receiver.&lt;br /&gt;
&lt;br /&gt;
=== The SBR Method ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] provides an asymptotic ray tracing simulation engine that is based on a technique known as Shooting-and-Bouncing-Rays (SBR). In this technique, propagating spherical waves are modeled as ray tubes or beams that emanate from a source, travel in space, bounce from obstacles and are collected by the receiver. As rays propagate away from their source (transmitter), they begin to spread (or diverge) over distance. In other words, the cross section or footprint of a ray tube expands as a function of the distance from the source. EM.Cube uses an accurate equi-angular ray generation scheme to that produces almost identical ray tubes in all directions to satisfy energy and power conservation requirements.&lt;br /&gt;
&lt;br /&gt;
When a ray hits an obstructing surface, one or more of the following phenomena may happen:&lt;br /&gt;
&lt;br /&gt;
# Reflection from the locally flat surface&lt;br /&gt;
# Transmission through the locally flat surface&lt;br /&gt;
# Diffraction from an edge between two conjoined locally flat surfaces&lt;br /&gt;
&lt;br /&gt;
EM.Cube discretizes all the objects of the scene into flat triangular facets. Obviously, rectangular and cubic objects preserve their geometric shapes through this discretization. Objects with curved surfaces such as cylinders, cones or spheres, are approximated by &amp;amp;quot;polymesh&amp;amp;quot; representations. The geometric fidelity of the resulting mesh depends on the specified mesh edge length. When a ray hits a triangular facet, the propagating spherical wave is approximated as a plane wave at the specular point. The reflection and transmission coefficients of the surface are calculated at the operational frequency and at the particular ray incident angle. &lt;br /&gt;
&lt;br /&gt;
A new reflected ray is generated at the specular point, which starts traveling and bouncing around in the scene. If the obstructing surface is penetrable, a second transmitted ray is generated and added to the scene. If the ray hits the edge of an obstacle, it is diffracted from that edge. This leads to the creation of a cone of new rays, which greatly complicate the computational problem. The Uniform Theory of Diffraction (UTD) is used to calculate the wedge diffraction coefficients at the edges of scattering blocks. Note that reflection, transmission and diffraction coefficients are all dependent on the polarization of the incident plane wave.&lt;br /&gt;
&lt;br /&gt;
A receiver may receive a large number of rays: direct line-of-sight rays from the transmitter, rays reflected or diffracted off the ground or terrain, rays reflected or diffracted from buildings or rays transmitted through buildings. Each received ray is characterized by its power, delay and angles of arrival, which are the spherical coordinate angles &amp;amp;theta; and &amp;amp;phi; of the incoming ray. The actual signal received and detected by the receiver is the superposition of all these rays with different power levels and different time delays. Most of the time, you will be interested in the coverage map of an area, which shows how much power is received by a grid of receivers spread over the area from a given fixed transmitter.&lt;br /&gt;
&lt;br /&gt;
=== Ray Reflection &amp;amp; Transmission ===&lt;br /&gt;
&lt;br /&gt;
[[File:reflect.png|thumb|350px|The Incident, Reflected and Transmitted Rays at the Interface Between Two Dielectric Media]]&lt;br /&gt;
&lt;br /&gt;
The incident, reflected and transmitted rays are each characterized by a triplet of unit vectors:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}, \hat{u}_{\perp}, \hat{k} } )&amp;lt;/math&amp;gt; representing the incident parallel polarization vector, incident perpendicular polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}', \hat{u}_{\perp}', \hat{k}' } )&amp;lt;/math&amp;gt; representing the reflected parallel polarization vector, reflected perpendicular polarization vector and reflected propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}'', \hat{u}_{\perp}'', \hat{k}'' } )&amp;lt;/math&amp;gt; representing the transmitted parallel polarization vector, transmitted perpendicular polarization vector and transmitted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The reflected ray is assumed to originate from a virtual image source point. The three triplets constitute three orthonormal basis systems. Below, it is assumed that the two dielectric media have permittivities &amp;amp;epsilon;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;epsilon;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, and permeabilities &amp;amp;mu;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;mu;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, respectively. A lossy medium with a conductivity &amp;amp;sigma; can be modeled by a complex permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = &amp;amp;epsilon;'&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; –j&amp;amp;sigma;/&amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. Assuming '''n''' to be the unit normal to the interface plane between the two media, and Z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;Omega; , the incident polarization vectors as well as all the reflected and transmitted vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp} = \frac{\hat{k} \times \hat{n}}{|\hat{k} \times \hat{n}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|} = \hat{u}_{\perp} \times \hat{k} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflected unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}' = \hat{k} - 2(\hat{k} \cdot \hat{n}) \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}' = \hat{u}_{\perp}' \times \hat{k}' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The transmitted unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}'' = \hat{n} \times a - \sqrt{1-a \cdot a} \; \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}'' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}'' = \hat{u}_{\perp}'' \times \hat{k}'' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{a} = (k_1/k_2) \mathbf{\hat{k} \times \hat{n}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_1 = k_0 \sqrt{\varepsilon_1 \mu_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_2 = k_0 \sqrt{\varepsilon_2 \mu_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_1 = Z_0 \sqrt{\mu_1 / \varepsilon_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_2 = Z_0 \sqrt{\mu_2 / \varepsilon_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sin\theta'' = \frac{k_1}{k_2}\sin\theta \text{ if } \sin\theta \le k_2/k_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml4.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml5.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflection coefficients at the interface are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penetration Through Thin Walls Or Surfaces ===&lt;br /&gt;
&lt;br /&gt;
[[File:thinwalltrans.png|thumb|350px|The Incident and Transmitted Rays through a Thin Wall]]&lt;br /&gt;
&lt;br /&gt;
In &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;, we assume that an incident ray gives rise to two rays, one is reflected at the specular point, and the other is transmitted almost in the same direction as the incident ray. The reflected ray is assumed to originate from a virtual image source point. Similar to the case of reflection and transmission at the interface between two dielectric media, here too we have three triplets of unit vectors, which all form orthonormal basis systems.&lt;br /&gt;
&lt;br /&gt;
The transmission coefficients are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\|} = \frac{(1-{\Gamma_{\|}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\|}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\perp} = \frac{(1-{\Gamma_{\perp}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\perp}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml21.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wedge Diffraction From Edges ===&lt;br /&gt;
&lt;br /&gt;
[[File:diffract.png|thumb|350px|The Incident Ray and Diffract Ray Cone at the Edge of a Building]]&lt;br /&gt;
&lt;br /&gt;
For the purpose of calculation of diffraction from building edges, we define a &amp;amp;quot;Wedge&amp;amp;quot; as having two faces, the 0-face and the ''n''-face. The wedge angle is a = (2-''n'')p, where the parameter ''n'' is required for the calculation of diffraction coefficients. All the diffracted rays lie on a cone with its vertex at the diffraction point and a wedge angle equal to the angle of incidence in the opposite direction. A diffracted ray is assumed to originate from a virtual image source point. Three triplets of unit vectors are defined as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_0, \hat{u}_l, \hat{t})}&amp;lt;/math&amp;gt; representing the unit vector normal to the edge and lying in the plane of the 0-face, the unit vector normal to the 0-face, and the unit vector along the edge, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f, \hat{u}_b, \hat{t})}&amp;lt;/math&amp;gt; representing the incident forward polarization vector, incident backward polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f', \hat{u}_b', \hat{t}')}&amp;lt;/math&amp;gt; representing the diffracted forward polarization vector, diffracted backward polarization vector and diffracted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The three triplets constitute three orthonormal basis systems. The propagation vector '''k'''' of the diffracted ray has to be constructed based on the diffraction cone as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{\hat{k}'} = \cos\phi_w \mathbf{\hat{u}_0} + \sin\phi_w \mathbf{\hat{u}_l} + &lt;br /&gt;
\mathbf{(\hat{k} \cdot \hat{t}) \hat{t}}, \quad 0 \le \phi_w \le \alpha&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the resolution of the angle &amp;amp;theta;&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt; is chosen to be the same as the resolution of the incident ray.&lt;br /&gt;
&lt;br /&gt;
The other unit vectors for the incident and diffracted rays are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f = \frac{\hat{k} \times \hat{t}}{|\hat{k} \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b = \hat{k} \times \hat{u}_f } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f' = \frac{\hat{k}' \times \hat{t}}{|\hat{k}' \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b' = \hat{k}' \times \hat{u}_f' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml9.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The diffraction coefficients are calculated in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_s = \frac{-e^{-j\pi/4}}{2n \sqrt{2\pi k} \sin\beta_0'}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \cot \left(\frac{\pi + (\phi-\phi')}{2n}\right) F[kLa^+(\phi-\phi')] +&lt;br /&gt;
  \cot \left(\frac{\pi - (\phi-\phi')}{2n}\right) F[kLa^-(\phi-\phi')] \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; R_{0 \perp} \cot \left(\frac{\pi - (\phi+\phi')}{2n}\right) F[kLa^-(\phi+\phi')] +&lt;br /&gt;
  R_{n \perp} \cot \left(\frac{\pi + (\phi+\phi')}{2n}\right) F[kLa^+(\phi+\phi')]&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_h = \frac{-e^{-j\pi/4}}{2n \sqrt{2\pi k} \sin\beta_0'}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \cot \left(\frac{\pi + (\phi-\phi')}{2n}\right) F[kLa^+(\phi-\phi')] +&lt;br /&gt;
  \cot \left(\frac{\pi - (\phi-\phi')}{2n}\right) F[kLa^-(\phi-\phi')] \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; R_{0 \|} \cot \left(\frac{\pi - (\phi+\phi')}{2n}\right) F[kLa^-(\phi+\phi')] +&lt;br /&gt;
  R_{n \|} \cot \left(\frac{\pi + (\phi+\phi')}{2n}\right) F[kLa^+(\phi+\phi')]&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml11.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where ''F(x)'' is the Fresnel Transition function:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = 2j \sqrt{x} e^{jx} \int_{\sqrt{x}}^{\infty} e^{-j\tau^2} \, d\tau &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, we have&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
s = |\rho_D - \rho_S| \\&lt;br /&gt;
s' = |\rho_D - \rho_r|&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L = \frac{s s' \sin^2 \beta'}{s + s'} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\pm}(\nu) = 2\cos^2 \left( \frac{2n\pi N^{\pm} - \nu}{2} \right), \quad \nu = \phi \pm \phi' &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml10.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml13.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;N^{\pm}&amp;lt;/math&amp;gt; are the integers which most closely satisfy the equations &amp;lt;math&amp;gt; 2n\pi N^{\pm} - \nu = \pm \pi &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SBR As An Asymptotic EM Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulation engine can be used as a versatile and powerful asymptotic electromagnetic (EM) solver. If you compare EM.Cube's [[Propagation Module]] with its other computational modules, you will notice a lot of similarities. While other modules group objects primarily by their material properties, [[Propagation Module]] categorizes the types of obstructing surfaces. Besides sharing the same ray-surface interaction mechanisms, all the objects belonging to a surface group also share the same material properties. [[Propagation Module]] offers similar source types and similar observable types as the other computational modules. For instance, the Hertzian dipole sources used in a SBR simulation are identical to those offered in PO, MoM3D and Planar modules. The plane wave sources are identical across all computational modules. [[Propagation Module]]'s sensor field planes, far field observables (either radiation patterns or RCS) and Huygens surfaces are all fully compatible with EM.Cube's other computational modules.&lt;br /&gt;
&lt;br /&gt;
As an asymptotic EM solver, the SBR engine can be used to model large-scale electromagnetic radiation and scattering problems. An example of this kind is radiation of simple or complex antennas in the presence of large scattering platforms. You have to keep in mind that by using an asymptotic technique in place of a full-wave method, you trade computational speed and lower memory requirements for modeling accuracy. In particular, the SBR method cannot take into account the electromagnetic coupling effects among nearby radiators or scatterers. However, when your scene spans thousands of wavelengths, an SBR simulation might often prove to be your sole practical solution.  &lt;br /&gt;
&lt;br /&gt;
=== Novelties Of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine utilizes an intelligent ray tracing algorithm based on the concept of  k-dimensional trees. A k-d tree is a space-partitioning data structure for organizing points in a k-dimensional space. k-d trees are particularly useful for searches that involve multidimensional search keys such as range searches and nearest neighbor searches. In a typical large radio propagation scene, there might be a large number of rays emanating from the transmitter that may never hit any obstacles. For example, upward-looking rays in an urban propagation scene quickly exit the computational domain. Rays that hit obstacles on their path, on the other hand, generate new reflected and transmitted rays. The k-d tree algorithm traces all these rays systematically in a very fast and efficient manner. Another major advantage of k-d trees is the fast processing of multi-transmitters scenes. Unlike the previous versions of the SBR solver which could handle one transmitter at a time and would superpose all the resulting rays at the end of the simulation, the new SBR shoots rays from all the transmitters at the same time.   &lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine performs fully polarimetric and coherent SBR simulations with arbitrary transmitter antenna patterns. The new engine solves directly for the vectorial field components at the receiver locations or field observation points. This is far more rigorous than the previous versions of the SBR solver which primarily utilized ray power calculations based on the two vertical and horizontal polarizations. In other words, EM.Cube's new SBR engine is a truly asymptotic &amp;amp;quot;field&amp;amp;quot; solver. As a result, you can visualize the magnitude and phase of all six electric and magnetic field components at any point in the computational domain. For power calculations at the receiver location, an isotropic, polarization-matched, receiving antenna is assumed.       &lt;br /&gt;
&lt;br /&gt;
In most scenes, the buildings and the ground or terrain can be assumed to be made of homogeneous materials. These are represented by their electrical properties such as permittivity e and electric conductivity s. More complex scenes may involve a multilayer ground or multilayer building walls. In such cases, one can no longer use the simple reflection or transmission coefficient formulas for homogeneous medium interfaces. EM.Cube calculates the reflection and transmission coefficients of multilayer structures as functions of incident angle, frequency and polarization and uses them at the respective specular points.  &lt;br /&gt;
&lt;br /&gt;
=== Limitations of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
It is very important to keep in mind that SBR is an asymptotic electromagnetic analysis technique that is based on Geometrical Optics (GO) and the Uniform Theory of Diffraction (UTD). It is not a &amp;amp;quot;full-wave&amp;amp;quot; technique, and it does not solve Maxwell's equations directly or numerically. SBR makes a number of assumptions, chief among them, a very high operational frequency such that the length scales involved are much larger than the operating wavelength. Under this assumed regime, electromagnetic waves start to behave like optical rays. Virtually all the calculations in SBR are based on far field approximations. &lt;br /&gt;
&lt;br /&gt;
In order to maintain a high computational speed for urban propagation problems, EM.Cube's SBR solver ignores double diffractions. Recall that diffractions from edges give rise to a large number of new secondary rays. The power of diffracted rays drops much faster than reflected rays. EM.Cube ignores diffracted rays that are not detected by any receiver. In other words, an edge-diffracted ray does not diffract again from another edge. However, reflected and penetrated rays do get diffracted from edges just as rays emanated directly from the sources do.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Propagation Scene ==&lt;br /&gt;
&lt;br /&gt;
An EM.Cube propagation scene typically consists of several elements. At a minimum, you need a transmitter (Tx) at some location to launch rays into the scene and a receiver (Rx) at another location to receive and collect the incoming rays. A transmitter and a receiver together make the simplest propagation scene, representing a free-space line-of-sight (LOS) channel. A transmitter is one of EM.Cube's several source types, while a receiver is one of EM.Cube's several observable types. A simpler source type is a Hertzian dipole. A simpler observable is a field sensor that is used to compute the electric and magnetic fields on a specified plane.&lt;br /&gt;
&lt;br /&gt;
An outdoor propagation scene may involve several buildings (modeled as impenetrable surfaces) and an underlying flat ground or irregular terrain surface. An indoor propagation scene may involve several walls (modeled as thin penetrable surfaces), a ceiling and a floor arranged according to a certain floor plan. You can also build mixed scenes involving both impenetrable and penetrable blocks, possibly along with irregular terrain surfaces. Your sources and observables can be placed anywhere in the scene. Your transmitters and receivers can be placed outdoors or indoors. A complete list of the various elements of a propagation scene is given in the '''Physical Structure''' section of [[Propagation Module]]'s Navigation Tree as follows:&lt;br /&gt;
&lt;br /&gt;
* Impenetrable Surfaces&lt;br /&gt;
* Penetrable Surfaces&lt;br /&gt;
* Terrain Surfaces&lt;br /&gt;
* Base Points&lt;br /&gt;
&lt;br /&gt;
Impenetrable, penetrable and terrain surfaces all obstruct the propagation of electromagnetic waves (rays) in the free space. What differentiates them is the types of physical phenomena that are used to model their interaction with the impinging rays. Base points are simply used to define transmitter and receiver locations in the scene. The following sections of this manual will describe each of these elements in detail.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Navigation Tree of EM.Cube's [[Propagation Module]].&lt;br /&gt;
&lt;br /&gt;
=== The Various Types Of Surfaces &amp;amp;amp; Blocks ===&lt;br /&gt;
&lt;br /&gt;
In a SBR simulation, the propagating rays hit the surface of building structures, walls, terrain (or global ground) and bounce back into the scene (reflection). Some rays penetrate thin walls or other penetrable surfaces and continue their path on the other side of the surface (transmission). The field intensity, phase and power of the reflected and transmitted rays depend on the material properties of the obstructing surface. The specular surface can be modeled as a simple homogeneous dielectric half-space or as a multilayer structure. In that respect, the buildings, walls, terrain or even the global ground all behave in a similar way:&lt;br /&gt;
&lt;br /&gt;
* They terminate an impinging ray and replace it with one or more new rays.&lt;br /&gt;
* They represent a specular interface between two media of different material compositions for calculating the reflection, transmission and possibly diffraction coefficients.&lt;br /&gt;
&lt;br /&gt;
EM.Cube has generalized the concept of '''Block''' as any object that obstructs and affects radio wave propagation. Rays hit the facets of a block and bounce off the surface of those facets or penetrate them and continue their propagation. Rays also get diffracted off the edges of these blocks. In EM.Cube's [[Propagation Module]], blocks are grouped together by the type of their interaction with rays. EM.Cube currently offers three types of blocks for use in a propagation scene:&lt;br /&gt;
&lt;br /&gt;
# '''Impenetrable Surfaces:''' Rays hit the facets of this type of blocks and bounce back, but they do not penetrate the object. It is assumed that the interior of such blocks or buildings are highly absorptive.&lt;br /&gt;
# '''Penetrable Surfaces:''' These blocks represent thin surfaces that are used to model the exterior and interior walls of buildings based on the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;. Rays reflect off the surface of penetrable surfaces and diffract off their edges. They also penetrate such thin surfaces and continue their paths on the other side of the wall.&lt;br /&gt;
# '''Terrain Surfaces:''' These blocks are used to provide one or more impenetrable, ground surfaces for the propagation scene. Rays simply bounce off terrain objects. The global ground acts as a flat super-terrain that covers the bottom of the entire computational domain. &lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to define block groups of each of the above three types. Each block group has the same color or texture and its members share the same material properties: permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and conductivity &amp;amp;sigma;. Also, all the penetrable surfaces belonging to the same block group have the same wall thickness. You can define many different block groups with certain properties and underneath each introduce many member objects with different geometrical shapes and dimensions. The table below summarizes the characteristics of each block type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Block Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Physical Effects&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Admissible Object Types&lt;br /&gt;
|-&lt;br /&gt;
| Impenetrable Surface&lt;br /&gt;
| Reflection, Diffraction&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Penetrable Surface&lt;br /&gt;
| Reflection, Diffraction, Transmission&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Terrain Surface&lt;br /&gt;
| Reflection&lt;br /&gt;
| Tessellated Objects Only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Impenetrable Surfaces For Outdoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(2).png|thumb|200px|[[Propagation Module]]'s Impenetrable Surface dialog]]   &lt;br /&gt;
&lt;br /&gt;
In outdoor propagation scenes such as &amp;amp;quot;Urban Canyons&amp;amp;quot;, you are primarily interested in the wireless coverage in the areas among buildings. You can assume that rays bounce off the exterior walls of these buildings but do not penetrate them. In other words, you ignore the transmitted rays and assume that they are either absorbed or diffused inside the buildings. This is not an unrealistic assumption. EM.Cube offers &amp;amp;quot;Impenetrable Blocks&amp;amp;quot; to model buildings in outdoor propagation scenes. A penetrable block has a color or texture property as well as material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and conductivity (s). By default, a brick building is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m. Impinging rays are reflected from the facets of impenetrable buildings or diffracted from their edges.&lt;br /&gt;
&lt;br /&gt;
To define a new impenetrable block group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on either the '''Impenetrable Surfaces''' item of the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the block properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the block group and select a color or texture.&lt;br /&gt;
# The electromagnetic model that determines ray-block interaction is selected under '''Specular Interface Type'''. Two options are available: '''Standard Material''' or '''User Defined Model'''. The former is the default choice and requires material properties, '''Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity''' (&amp;amp;sigma;), which are set to &amp;amp;quot;Brick&amp;amp;quot; by default. No magnetic properties are allowed for blocks.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Under an impenetrable block group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of an impenetrable surface. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. In this dialog, you can change the name of the material and its permittivity and electric conductivity. The box labeled &amp;amp;quot;Specify Loss Tangent&amp;amp;quot; is unchecked by default. If you check it, you can specify the '''Loss Tangent''' of the material, which, in turn, updates the value of electric conductivity at the center frequency of the project. You can also use EM.Cube's Material List, which will  be explained later.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to impenetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
=== Penetrable Surfaces For Indoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15(1).png|thumb|200px|[[Propagation Module]]'s Penetrable Surface dialog]]&lt;br /&gt;
&lt;br /&gt;
A typical indoor propagation scene usually involves an arrangement of walls that represent the interior of a building. The transmitters and receivers are then placed in the spaces among such walls. From the point of view of EM.Cube's SBR simulator, walls act like thin penetrable surfaces. EM.Cube uses the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot; to model penetrable surfaces. It assumes that rays simply penetrate a wall and exit at the same specular point on the opposite side of the wall. In other words, rays are not displaced by the walls, nor do they get trapped inside the walls (no internal reflection). This is equivalent to assuming a zero thickness for penetrable surfaces for the purpose of geometrical ray tracing, while the finite thickness of the &amp;amp;quot;thin&amp;amp;quot; surface is used for electromagnetic calculation of transmission coefficient. EM.Cube offers &amp;amp;quot;Penetrable Surface Blocks&amp;amp;quot; for the construction of rooms in indoor propagation scenes as well as modeling of hollow buildings and other structures. You can define many penetrable surface groups with arbitrary thicknesses and material properties (color, texture, permittivity and electric conductivity).&lt;br /&gt;
&lt;br /&gt;
To define a new penetrable surface group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on one of the '''Penetrable Surfaces''' item in the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the wall properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the surface group and select a color or texture.&lt;br /&gt;
# The properties of a penetrable surface are identical to those of an impenetrable surface, plus an additional thickness property.&lt;br /&gt;
# By default, a brick wall with a thickness of 0.5 units is assumed. You can change the '''Thickness''' of the penetrable surface as well as its '''Permittivity'''  &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and '''Electric Conductivity''' &amp;amp;sigma;.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Under a penetrable surface group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of a penetrable surface group including its default thickness. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. Similar to the case of impenetrable surfaces, from this dialog, you can change the material properties (permittivity and electric conductivity) as well as '''Thickness''', which is expressed in the project units. You can also use EM.Cube's Material List, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to penetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
You can construct several thin walls and arrange them as rooms. A regular room can be built by placing four vertical wall objects together with an optional horizontal wall at the top for the ceiling. Alternatively, you may use EM.Cube's hollow box objects or boxes with one or two capped end(s).  '''Keep in mind that all the penetrable surfaces belonging to a group have the same wall thickness, which is initially set to 0.5 project units by default. Also, note that solid CAD objects belonging to a penetrable surface group are treated as air-filled hollow structures.''' The thickness of penetrable surfaces is implied and not visualized when displaying objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Computational Domain &amp;amp;amp; Global Ground ===&lt;br /&gt;
&lt;br /&gt;
The SBR simulation engine requires a finite computational domain. All the stray rays that hit the boundaries of this finite domain are terminated during the simulation process. Such rays exit the computational domain and travel to the infinity, with no chance of ever reaching any receiver in the scene. When you define a propagation scene with various elements like buildings, walls, terrain, etc., a dynamic domain is automatically established and displayed as a wireframe box with green lines that surrounds the entire scene. Every time you create a new object, the domain is automatically adjusted and extended to enclose all the objects in the scene. You can change the size and color of the domain box through the Ray Domain Settings Dialog, which can be accessed in one of the following three ways:&lt;br /&gt;
&lt;br /&gt;
# Click the '''Domain''' [[File:image025.jpg]] button of the Simulation Toolbar.&lt;br /&gt;
# Select the '''Simulate''' &amp;amp;gt; '''Computational Domain''' &amp;amp;gt; '''Settings...''' item of the Simulate Menu.&lt;br /&gt;
# Right click on the '''Ray Domain''' item of the Navigation Tree and select '''Domain Settings...'''&lt;br /&gt;
# Use the keyboard shortcut '''Ctrl + A'''.&lt;br /&gt;
&lt;br /&gt;
The size of the Ray domain is specified in terms of six '''Offset''' parameters along the ±X, ±Y and ±Z directions. The default value of all these six offset parameters is 10 project units. You can change them arbitrarily. After changing these values, use the '''Apply''' button to make the changes effective while the dialog is still open.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Most outdoor and indoor propagation scenes include a flat ground at their bottom, which bounces incident rays back into the scene. EM.Cube's [[Propagation Module]] provides a global flat ground at z = 0. The global ground indeed acts as an impenetrable surface that blocks the entire computational domain from the z = 0 plane downward. It is displayed as a translucent green plane at z = 0 extending downward. The color of the ground plane is always the same as the color of the ray domain. The global ground is assumed to be made of a homogeneous dielectric material with a specified permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma;. By default, a rocky ground is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m. You can remove the global ground, in which case, you will have a free space scene. To disable the global ground, open up the Global Ground Settings Dialog, which can be accessed by right clicking on the '''Global Ground''' item in the Navigation Tree and selecting '''Global Ground Settings... '''Remove the check mark from the box labeled '''&amp;amp;quot;Include Half-Space Ground (z&amp;amp;lt;0)&amp;amp;quot;''' to disable the global ground. This will also remove the green translucent plane from the bottom of your scene. You can also change the material properties of the global ground and set new values for the permittivity and electric conductivity of the impenetrable, half-space, dielectric medium. '''Do not forget to disable the global ground if you want to model a free space propagation scene.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PROP4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s Global Ground Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Surfaces vs. Global Ground ===&lt;br /&gt;
&lt;br /&gt;
A terrain surface acts as a custom, unlevel or irregular ground for your propagation scene. EM.Cube's default global ground blocks the z &amp;amp;lt; 0 half-space everywhere in the computational domain. You can simply turn off the global ground and create one or more terrain objects and place them arbitrarily in the scene. You can also import an external terrain model or file. A terrain represents an impenetrable surface with a more complex surface profile. You can have one or more terrain objects of finite extents and place them on or above the global ground.&lt;br /&gt;
&lt;br /&gt;
Terrain objects have some important differences with objects of the &amp;amp;quot;Impenetrable Surface&amp;amp;quot; type:&lt;br /&gt;
&lt;br /&gt;
# While impenetrable blocks can be created using any of EM.Cube's solid or surface CAD object creation tools, terrain objects are created either using EM.Cube's '''Terrain Generator''' or by importing an external terrain file. &lt;br /&gt;
# Terrain objects belong to a special type of CAD objects called &amp;amp;quot;Tessellated Objects&amp;amp;quot;, which differ from other regular CAD [[Surface Objects|surface objects]] or EM.Cube's polymesh surfaces.&lt;br /&gt;
# Terrain surfaces do not diffract impinging rays at their many small edges.&lt;br /&gt;
# Terrain objects affect the elevation of other objects or transmitters or receivers that are located above them.&lt;br /&gt;
&lt;br /&gt;
Just as other blocks are grouped by their color, texture and material composition, terrain objects are also grouped in a similar fashion. Before you can generate or import a new terrain object, first you have to define a terrain group and specify its color/texture and material properties. To define a new terrain group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Terrain''' item in the Navigation Tree and select '''Insert New Terrain...''' A dialog for setting up the terrain properties opens up offering a of preloaded material type (Rock) with predefined green color and no texture.&lt;br /&gt;
* Specify a name for the terrain group and select a color or texture.&lt;br /&gt;
* Similar to other blocks, you have to specify the material properties, Permittivity (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and Electric Conductivity (&amp;amp;sigma;), of the terrain group. Rock with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m is the default material choice for a new terrain.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Terrain dialog.&lt;br /&gt;
&lt;br /&gt;
You can change the properties of a terrain surface group from its property dialog. Click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog, which is identical to the case of impenetrable surfaces. You can also use EM.Cube's Material List, which will be explained later. When a new terrain type is created, its node on the Navigation Tree becomes active. Under this node you can create and add new terrain objects. When a terrain node is active for drawing, all CAD object creation tools are disabled. You have three options for creating a new terrain object, which will be described in detail in the next sections of this manual:&lt;br /&gt;
&lt;br /&gt;
# Use EM.Cube's '''Terrain Generator'''.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.TRN'''&amp;amp;quot; type.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.DEM'''&amp;amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
=== Using Terrain Generator ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18.png|thumb|250px|[[Propagation Module]]'s Terrain Generator dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides a convenient and powerful Terrain Generator for creating a variety of terrain [[Surface Objects|surface objects]]. EM.Cube's Terrain Generator looks very similar to [[CubeCAD]]'s Surface Generator. However, whereas the Surface Generator creates a generic or polymesh surface object, Terrain Generator always creates another special type of object known as a '''Tessellated Object'''. A terrain object is much simpler than EM.Cube's polymesh objects and is usually made up of triangular or quadrilateral facets. As such, terrain objects have limited editing capabilities. For example, you can cut, copy, paste, translate or rotate  terrain objects. But operations like scaling, mirroring, grouping (composite), arraying, exploding, linking or Boolean operations do not work on terrain objects.&lt;br /&gt;
&lt;br /&gt;
To create a new terrain object using Terrain Generator, first you need to define a terrain group in the Navigation Tree. Right click on the name of the terrain node and select '''Terrain Generator...''' from the contextual menu. This opens up the Terrain Generator Dialog. Using Terrain Generator, you can build a single terrain surface or an array of surfaces patched together. Some of the available terrain models include:&lt;br /&gt;
&lt;br /&gt;
# Flat Plane&lt;br /&gt;
# Hill (Elliptic Quadratic)&lt;br /&gt;
# Mountain (Elliptic Cone)&lt;br /&gt;
# 1-D and 2-D Cliff&lt;br /&gt;
# Gaussian Hump&lt;br /&gt;
# Undulated Sinusoid&lt;br /&gt;
# Undulated Sinc&lt;br /&gt;
# Super-quadratic Plateau&lt;br /&gt;
# Custom Function&lt;br /&gt;
# XY Grid Data&lt;br /&gt;
&lt;br /&gt;
In all of the above models, you can set the height of the surface object to an any desired value. You set the lateral extents of the surface and its resolution along the X and Y directions in the boxes labeled '''Range Start''', '''Range Stop''' and '''Range Step'''. The step values along the X and Y directions are a measure of surface smoothness: the smaller the step values, the higher the resolution and the smoother the resulting terrain object.&lt;br /&gt;
&lt;br /&gt;
Some surface types have an additional shape factor called '''Alpha''' that is identical to the alpha parameter in the surface generator. For example, a Gaussian Hump is defined as exp(-r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/(2a&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)), where r is the polar radius. For a Super-quadratic Hump, the input parameter a defines the degree of the super-quadratic surface. a = 2 corresponds to an ellipsoid. Larger values of a get close to a rectangular base with rounded corners. An undulated sinusoidal surface is defined by cos(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*cos(pay/D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;), and an undulated sinc is defined by D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;*D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;*sin(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*sin(pay/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/(2pxy), where D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; are the X and Y dimensions, respectively. Terrain Generator creates a unit cell based on the specified surface type. From the same dialog, you can also produce an array arrangement of such unit cells. Simply enter any number of elements along the X and Y directions in the boxes labeled '''Array'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP19.png|800px]]  &lt;br /&gt;
&lt;br /&gt;
Figure: A 4 × 4 array of hill terrain objects.&lt;br /&gt;
&lt;br /&gt;
You can define any arbitrary surface by entering an equation of the two [[variables]] x and y as z = f(x,y). In this case, you have to select the '''Custom Function''' option in the dropdown list labeled '''Model'''. You should enter your equation as any mathematical expression in the box labeled '''Function f(x,y)'''. You can use any of EM.Cube's mathematical functions listed in the '''Function Dialog''' or combine several of them. Note that after selecting the custom function option, the height of the surface is determined by your equation, and the '''Height''' box is disabled. You can also introduce random noise and create a rough terrain. You can do this by setting a nonzero value for '''Noise''', which represent the RMS peak-to-valley amplitude of the surface roughness. The figures below show two custom terrain surfaces modeled by the equation z = (x.y)/20 defined over the range [0, 10] in both X and Y directions. Random noise has been added to both surfaces, with the noise amplitude being 0.2 and 0.5 for the left and right figures, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP21.png|400px]] [[File:PROP20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Two noisy custom terrain surfaces both defined as z = (x.y)/20: (Left) RMS noise amplitude = 0.2, (right) RMS noise amplitude = 0.5.&lt;br /&gt;
&lt;br /&gt;
=== Generating Grid-Based Terrain ===&lt;br /&gt;
&lt;br /&gt;
Every time you create a new terrain object using Terrain Generator, an ASCII data file named &amp;amp;quot;GeneratedTerrain&amp;amp;quot; with a &amp;amp;quot;'''.TRN'''&amp;amp;quot; file extension is created and placed in your project folder. This is EM.Cube's simple native terrain file format that basically lists all the (x, y, z) coordinates of the generated surface points on a horizontal, rectangular XY grid. Terrain Generator simply takes your custom function definition or one of the selected catalog surface types and generates the digital elevation data on the specified grid.  &lt;br /&gt;
&lt;br /&gt;
Another type of terrain model that the terrain generator provides is '''XY Grid Data'''. In this case, you define a rectangular XY grid with a uniform grid cell size along the X and Y directions and manually define the Z-elevation for each grid point. This is similar to the surface generator's &amp;amp;quot;2D Uniform Grid&amp;amp;quot; model type in [[CubeCAD]]. Based on your input to '''Range Start''', '''Range Stop''' and '''Range Step''' along X and Y, a 2D grid is set up and displayed in a table at the bottom of the terrain generator dialog. By default, all the Z-elevations are set to zero initially. You can click on each table cell and overwrite it with a new value. At the end, click the '''Create''' button of the dialog to add the new grid-based terrain object to the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:terrain10_tn.png]]&lt;br /&gt;
&lt;br /&gt;
A grid-based terrain object.&lt;br /&gt;
&lt;br /&gt;
=== Importing &amp;amp;amp; Exporting Terrain Models ===&lt;br /&gt;
&lt;br /&gt;
You can import two types of terrain in EM.Cube's [[Propagation Module]]. The first type is &amp;amp;quot;'''.TRN&amp;amp;quot;''' terrain file, which is EM.Cube's native terrain format. It is a basic digital elevation map with a very simple ASCII data file format. The resolution of the terrain map in the X and Y directions is specified in meters as STEPS. The (x, y, z) coordinates of the terrain points are then listed one point per line. The other type of terrain format supported by EM.Cube is the standard '''7.5min DEM''' file format with a '''.DEM''' file extension. &lt;br /&gt;
&lt;br /&gt;
To import an external terrain model, first you have to create a terrain group node in the Navigation Tree. Right click on the name of the terrain group in the Navigation Tree and select either '''Import Terrain...''' or '''Import DEM File...''' A standard Windows '''Open Dialog''' opens up, with the file type set to .TRN or .DEM extensions, respectively. You can browse your folders and find the right terrain model file to import.&lt;br /&gt;
&lt;br /&gt;
You can also export all the terrain objects in the project workspace as a terrain file with a '''.TRN''' file extension. You can even import a DEM terrain model from an external file and then save and export it as a native terrain (.TRN) file. To export the terrain, select '''File''' &amp;amp;gt; '''Export...''' from [[Propagation Module]]'s '''File Menu'''. The standard Windows Save Dialog opens up with the default file type set to '''.TRN'''. Type in a name for your new terrain file and click the '''Save''' button to export the terrain data.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-12_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figur: An imported external terrain model.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Surface Models ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP26.png|thumb|250px|Propagation Module's Penetrable Surface Dialog showing a three-layer wall composition]]&lt;br /&gt;
&lt;br /&gt;
Most of the time, your outdoor propagation scene consists of simple buildings made of single-layer walls with standard material properties (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;). In the case of a single-layer impenetrable surface, the specular interface is an infinite dielectric half-space, which reflects the impinging rays. Single-layer penetrable surfaces, on the other hand, involve finite-thickness dielectric walls, which both reflect and transmit the incident rays. Similarly, most of your indoor propagation scenes involve simple single-layer penetrable walls with the specified material properties &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. A thin wall acts like a finite-thickness dielectric slab that both reflects and transmits incident rays. In the case of the global ground or terrain objects, only ray reflection off the ground surface is considered.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[Propagation Module]], you can define multilayer surfaces with both reflection and transmission properties. You can define multilayer impenetrable buildings, multilayer penetrable walls, and multilayer terrain, with an arbitrary number of layers having different material compositions. You define a multilayer surface in the property dialog of a block, whether impenetrable, penetrable or terrain. In the section entitled '''Surface Type''', two options are available: '''Standard Material''' or '''User Defined Model'''. For simple multilayer walls, select the '''Standard Material''' option. You can add new layers with arbitrary thickness and material parameters to the existing layers. To insert a new layer, deselect any items in the layer list, and click the '''Add/Edit''' button to open the &amp;amp;quot;Add Layer&amp;amp;quot; Dialog. Here you can enter a name for the new layer and values for its '''Thickness''', &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. You may also delete any layer by selecting and highlighting it and clicking the '''Delete''' button. You can move layers up or down using the '''Move Up''' and '''Move Down''' buttons and change the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
You can also search EM.Cube's material database by clicking the '''Material''' button of &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. This opens the '''Materials''' Dialog. Inside the material list select and highlight any row and click the '''OK''' button. The selected material will fill out all the fields in the &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. Inside the Materials Dialog, you can type the few first letters of any material, and it will take you to the corresponding row of the list.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Transferring Objects From Or To Other Modules ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube's [[Propagation Module]] and draw a solid object like a box in the project workspace without having defined any surface groups, it is assumed to be of the impenetrable surface type. A default impenetrable surface group called Block_1 is automatically added to the Navigation Tree, which holds your newly drawn object. The default group has the material properties of &amp;amp;quot;Brick&amp;amp;quot; (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m.) with a dark brown color. You can continue drawing new objects in the project workspace and adding them under this block node. Or you can define a new surface type with different properties. By default, the last surface group that was defined is '''Active'''. The current active surface group is always listed in bold letters in the Navigation Tree. When you draw a new object, it is always inserted under the current active surface group. Any surface group can be activated by right clicking its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move any object from its current surface group into any other available surface group. First select the object, then right click on its surface and select '''MoveTo &amp;amp;gt; Propagation &amp;amp;gt;'''. A submenu appears which lists all the available surface groups where you can transfer the selected object. You can also move objects among surface groups by selecting their names in the Navigation Tree and using the contextual menu. In a similar way, you can transfer objects from [[Propagation Module]] to EM.Cube's other modules or vice versa. '''Keep in mind that all the external model files such as STEP, IGES, STL, etc. are first imported to EM.Cube's [[CubeCAD]], from which you can transfer them to other modules.''' First select the object, then right click and select '''MoveTo &amp;amp;gt;'''. In the submenu you will see a list of all the EM.Cube modules that have at least one available group where you can transfer your selected object. You can select multiple objects for transfer. When using the keyboard's '''Shift Key''' or '''Ctrl Key''' for multiple selection, make sure that those keys are held down, when you right click to access the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Defining Sources &amp;amp;amp; Observables ==&lt;br /&gt;
&lt;br /&gt;
Like every other electromagnetic solver, EM.Cube's SBR ray tracer requires a source for excitation and one or more observables for generation of simulation data. EM.Cube's new [[Propagation Module]] offers several types of sources and observables for a SBR simulation. You can mix and match different source types and observable types depending on the requirements of your modeling problem. There are two types of sources:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Transmitter Sets|Transmitter]]&lt;br /&gt;
* [[#Hertzian Dipole Sources|Hertzian Dipole]]&lt;br /&gt;
&lt;br /&gt;
There are four types of observables:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Receiver Sets|Receivers]]&lt;br /&gt;
* [[#Defining Field Sensors|Field Sensor]]&lt;br /&gt;
* Far Fields&lt;br /&gt;
* Huygens Surface&lt;br /&gt;
&lt;br /&gt;
The simplest SBR simulation can be performed using a short dipole source with a specified field sensor plane. In this way, EM.Cube computes the electric and magnetic fields radiated by your dipole source in the presence of your multipath propagation environment. A &amp;amp;quot;classic&amp;amp;quot; urban propagation scene can be set up using a &amp;amp;quot;Transmitter&amp;amp;quot; source and an array of &amp;amp;quot;Receiver&amp;amp;quot; observables. A transmitter is a point radiator with a user defined radiation pattern. A receiver is a polarization-matched isotropic point radiator that collects the received rays at its aperture. Using receivers, you can calculate the received power coverage map of your propagation scene. You can also calculate your channel's path loss between the transmitter and all the receivers. &amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18(1).png|thumb|[[Propagation Module]]'s Transmitter dialog with a short dipole radiator selected]]&lt;br /&gt;
Earlier versions of EM.Cube's [[Propagation Module]] used to offer an isotropic radiator with vertical or horizontal polarization as the simplest transmitter type. This release of EM.Cube has abandoned isotropic radiator transmitters because they do not exist physically in a real world. Instead, the default transmitter radiator type is now a Hertzian dipole. Note that before defining a transmitter, first you have to define a base set to establish the location of the transmitter. Most simulation scenes involve only a single transmitter. Your base set can be made up of a single point for this purpose. &lt;br /&gt;
&lt;br /&gt;
To define a new Transmitter Set, go to the '''Sources''' section of the Navigation Tree, right click on the '''Transmitters''' item and select '''Insert Transmitter...''' A dialog opens up that contains a default name for the new Transmitter Set as well as a dropdown list labeled '''Select Base Set'''. In this list you will see all the available base sets already defined in the project workspace. Select the desired base set to associate with the transmitter set. Note that if the base set contains more than one point, then more than one transmitter will be created and contained in your transmitter set. After defining a transmitter set, the base points change their color to the transmitter color, which is red by default.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Radiator&amp;amp;quot; section of the dialog, you have two options to choose from: &amp;amp;quot;Short Dipole&amp;amp;quot; and &amp;amp;quot;User Defined&amp;amp;quot;. The default option is short dipole. A short dipole radiator has a '''Length'''''dl'' expressed in project units, a current '''Amplitude''' in Amperes and a current '''Phase''' in degrees. The '''Direction''' of the dipole is determined by its unit vector that has three X, Y and Z components. By default, a Z-directed short dipole radiator is assumed. You can change all parameters of the dipole as you wish. Keep in mind that all the transmitters belonging to the same set have parallel radiators with identical properties.&lt;br /&gt;
&lt;br /&gt;
=== Defining Base Point Sets ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP1.png|thumb|[[Propagation Module]]'s Base Set dialog]]&lt;br /&gt;
In order to tie up transmitters and receivers with CAD objects in the project workspace, EM.Cube uses point objects to define transmitters and receivers. These point objects represent the base of the location of transmitters and receivers in the computational domain. Hence, they are grouped together as &amp;amp;quot;Base Sets&amp;amp;quot;. You can easily interchange the role of transmitters and receivers in a scene by switching their associated bases. The usefulness of concept of base sets will become apparent later when you place transmitters or receivers on an irregular terrain and adjust their elevation.   &lt;br /&gt;
&lt;br /&gt;
To create a new base set, right click on the '''Base Sets''' item of Navigation Tree and select '''Insert Base Set...''' A dialog for setting up the Base Set properties opens up.&lt;br /&gt;
&lt;br /&gt;
# Enter a name for the base set and change the default blue color if you wish. It is useful to differentiate the base sets associated with transmitters and receivers by their color.&lt;br /&gt;
# Click the '''OK''' button to close the Base Set Dialog.&lt;br /&gt;
&lt;br /&gt;
Once a base set node has been added to the Navigation Tree, it becomes the active node for new object drawing. Under base sets, you can only draw point objects. All other object creation tools are disabled. A point is initially drawn on the XY plane. Make sure to change the Z-coordinate of your radiator, otherwise, it will fall on the global ground at z = 0. You can also create arrays of base points under the same base set. This is particularly useful for setting up receiver grids to compute coverage maps. Simply select a point object and click the '''Array Tool''' of '''Tools Toolbar''' or use the keyboard shortcut &amp;amp;quot;A&amp;amp;quot;. Enter values for the X, Y or Z spacing as well as the number of elements along these three directions in the Array Dialog. In most propagation scenes you are interested in 2D horizontal arrays along a fixed Z coordinate (parallel to the XY plane).&lt;br /&gt;
&lt;br /&gt;
=== Defining Transmitter Sets ===&lt;br /&gt;
&lt;br /&gt;
A short dipole is the closest thing to an omni-directional radiator. The direction or orientation of the short dipole determines its polarization. In many applications, you may rather want to use a directional antenna for your transmitter. You can model a radiating structure using EM.Cube's FDTD, Planar, MoM3D or PO modules and generate a 3D radiation pattern data file for it. These data are stored in a specially formatted file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension, which contains columns of spherical &amp;amp;phi; and &amp;amp;theta; angles as well as the real and imaginary parts of the complex-valued far field components '''E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;''' and '''E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;'''. The &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field determine the polarization of the transmitting radiator. &lt;br /&gt;
&lt;br /&gt;
To define a directional transmitter radiator, you need to select the &amp;amp;quot;User Defined&amp;amp;quot; option in the &amp;amp;quot;Radiator&amp;amp;quot; section of the Transmitter Dialog. You can do this either at the time of creating a transmitter set, or afterwards by opening the property dialog of the transmitter set. In the &amp;amp;quot;Custom Pattern Parameters&amp;amp;quot;, click the '''Import Pattern''' button to set the path for the radiation data file. This opens up the standard Windows Open dialog, with the default file type or extension set to &amp;amp;quot;.RAD&amp;amp;quot;. Browse your folders to find the right data file. A radiation pattern file usually contains the value of &amp;amp;quot;Total Radiated Power&amp;amp;quot; in its file header. This is used by default for power calculations in the SBR simulation. However, you can check the box labeled &amp;amp;quot;'''Custom Power'''&amp;amp;quot; and enter a value for the transmitter power in Watts. EM.Cube can also rotate the imported radiation pattern arbitrarily. In this case, you need to specify the '''Rotation''' angles in degrees about the X-, Y- and Z-axes. Note that these rotations are performed sequentially and in order: first a rotation about the X-axis, then a rotation about the Y-axis, and finally a rotation about the Z-axis. &lt;br /&gt;
&lt;br /&gt;
[[File:PROP19(1).png]] [[File:PROP20(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Transmitter dialog with a user defined radiator selected.&lt;br /&gt;
&lt;br /&gt;
=== Multiple Transmitters vs. Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulations are fully coherent and 3D-polarimetric. This means that the phase and polarization of all the rays are maintained and processed during their bounces in the scene. Your propagation scene can have more than one transmitter. During an SBR simulation, all the rays emanating from all the transmitters are traced in the propagation scene. All the received rays at a given receiver location are summed coherently and vectorially. This is based on the principle of linear superposition. All the transmitters belonging to the same transmitter set have the same radiation properties. They are either parallel short dipole radiators with the same current amplitudes and phases, or parallel user defined radiators with identical radiation patterns. As these transmitters are placed at different spatial locations, they effectively form an antenna array with identical elements. The array factor is simply determined by the coordinates of the base points. If you want to have different amplitude or phases, then you need to define different transmitter sets.&lt;br /&gt;
&lt;br /&gt;
If that radiators are indeed the elements of an actual antenna array with a half wavelength spacing or so, we recommend that you import the radiation pattern of the array structure instead and replace the whole multi-radiator system with a single point transmitting radiator in your propagation scene. This case is usually encountered in MIMO systems, and using an equivalent point transmitter is an acceptable approximation because the total size of the array aperture is usually much smaller than the dimensions of your propagation scene and its representative length scales. In that case, you need to position the equivalent point radiator at the radiation center of the antenna array. This depends on the physical structure of the antenna array. However, keep in mind that any reasonable guess may still provide a good approximation without any significant error in the received ray data.    &lt;br /&gt;
&lt;br /&gt;
=== Defining Receiver Sets ===&lt;br /&gt;
&lt;br /&gt;
Receivers act as observables in a propagation scene. The objective of a SBR simulation is to calculate the far-zone electric fields and the total received power at the location of a receiver. In that sense, receivers indeed act as field observation points. You need to define at least one receiver in the scene before you can run a SBR simulation. You define the receivers of your scene by associating them with the base sets you have already defined in the project workspace. Unlike transmitters that usually one or few, a typical propagation scene may involve a large number of receivers. To generate a wireless coverage map, you need to define an array of points as your base set.    &lt;br /&gt;
&lt;br /&gt;
To define a new Receiver Set, go to the Observables section of the Navigation Tree, right click on the '''Receivers''' item and select '''Insert Receiver...''' A dialog opens up that contains a default name for the new Receiver Set as well as a dropdown list labeled '''Select Radiator Set'''. In this list you will see all the available base sets that you have already define in the project workspace. Select and designate the desired base set as the receiver set. Note that if the base set contains more than one point, all of them are designated as receivers. After defining a receiver set, the points change their color to the receiver color, which is yellow by default. The first element of the set is represented by a larger ball of the same color indicating that it is the selected receiver in the scene. The Receiver Set Dialog is also used to access individual receivers of the set for data visualization at the end of a simulation. At the end of an SBR simulation, the button labeled &amp;amp;quot;Show Ray Data&amp;amp;quot; becomes enabled. Clicking this button opens the Ray Data Dialog, where you can see a list of all the received rays at the selected receiver and their computed characteristics.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP21(1).png]] [[File:PROP22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Receiver dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Field Sensors ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|[[Propagation Module]]'s Field Sensor dialog]]&lt;br /&gt;
As an asymptotic electromagnetic field solver, the SBR simulation engine can compute the electric and magnetic field distributions in a specified plane. In order to view these field distributions, you must first define field sensor observables before running the SBR simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear. &lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.   &lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a SBR simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|E_{tot}|} = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|H_{tot}|} = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Computing Radiation Patterns In SBR ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
== Scene Discretization &amp;amp;amp; Adjustment ==&lt;br /&gt;
&lt;br /&gt;
=== The Need For Discretization Of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
In a typical SBR simulation, a ray is traced from the location of the source until it hits a scatterer. The SBR method assumes that the ray hits either a flat facet of the scatterer or one of its edges. In the case of hitting a flat facet, the specular point is used to launch new reflected and transmitted rays. The surface of the facet is treated as an infinite dielectric medium interface, at which the reflection and transmission coefficients are calculated. In the case of hitting an edge, new diffracted rays are generated in the scene. However, only those who reach a nearby receiver in their line of sight are ever taken into account. In other words, diffractions are treated locally.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to draw any type of surface or solid CAD objects under impenetrable and penetrable surface groups. Some of these objects have flat faces such as boxes, pyramids, rectangle or triangle strips, etc. Some others contain curved surfaces or curved boundaries such as cylinders, cones, etc. All the non-flat surfaces have to be discretized in the form of a collection of smaller flat facets. EM.Cube uses a triangular surface mesh generator to discretize the penetrable and impenetrable [[Surface Objects|surface objects]] of your propagation scene. This mesh generator is very similar to the ones used in EM.Cube's two other modules: MoM3D and Physical Optics (PO). &lt;br /&gt;
&lt;br /&gt;
You can build a variety of surface and [[Solid Objects|solid objects]] using EM.Cube's native &amp;amp;quot;Curve&amp;amp;quot; CAD objects like lines, polylines, circles, etc. You can use tools like Extrude, Loft, Strip-Sweep, Pipe-Sweep, etc. to transform curves into surface or [[Solid Objects|solid objects]]. '''However, keep in mind that all the &amp;amp;quot;Curve&amp;amp;quot; CAD objects are ignored by the SBR mesh generator and are therefore not sent to the simulation engine.'''&lt;br /&gt;
&lt;br /&gt;
=== Viewing SBR Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can view and examine the discretized version of your scene objects as they are sent to the SBR simulation engine. To view the mesh, click the '''Mesh''' [[File:mesh_tool.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''', or use the keyboard shortcut '''Ctrl+M'''. A triangular surface mesh of your physical structure appears in the project workspace. In this case, EM.Cube enters it mesh view mode. You can perform view operations like rotate view, pan, zoom, etc. But you cannot select objects, or move them or edit their properties. To get out of the Mesh View and return to EM.Cube's Normal View, press the '''Esc Key''' of the keyboard, or click the Mesh button of the Simulate Toolbar once again, or go to the Simulate Menu and deselect the '''Discretization &amp;amp;gt;''' '''Show Mesh''' item.&lt;br /&gt;
&lt;br /&gt;
You can adjust the mesh resolution and increase the geometric fidelity of discretization by creating more and finer triangular facets. On the other hand, you may want to reduce the mesh complexity and send to the SBR engine only a few coarse facets to model your buildings. To adjust the mesh resolution, open the Mesh Settings Dialog by clicking the '''Mesh Settings''' [[File:mesh_settings.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt;''' '''Mesh Settings...'''. This dialog provides a single parameters: '''Edge Length'''., which has a default value of 100 project units. If you are already in the Mesh View Mode and open the Mesh Settings Dialog, you can see the effect of changing the edge length using the '''Apply''' button. Click OK to close the dialog.&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules that express the default mesh density based on the wavelength, the resolution of the SBR mesh generator is expressed in project length units. The default edge length value of 100 units might be too large for non-flat objects. You may have to use a lower value to capture the curvature of your curved structures adequately. &lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-29.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Special Discretized Object Types ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, terrain objects are represented by and saved as special &amp;amp;quot;Tessellated&amp;amp;quot; objects with quadrilateral cells. This is true of terrain objects that you create yourself using EM.Cube's Terrain Generator as well as all the terrain objects that you import from external files to your project. The center of each cell represents the terrain elevation at that point. Tessellated objects are considered as discretized objects by EM.Cube and they are not meshed one more time by the SBR mesh generator. Each quadrilateral cell is divided into two triangular cells before being passed to the SBR simulation engine. Therefore, when using EM.Cube's Terrain Generator to create a new terrain object, you have to pay special attention to the resolution of the terrain object as it determines the total number of terrain facets sent to the simulation engine. A high resolution terrain, although looking better and more realistic, may easily lead to an enormous computational problem.&lt;br /&gt;
&lt;br /&gt;
You can use EM.Cube's &amp;amp;quot;Polymesh&amp;amp;quot; tool to discretize solid and surface CAD objects. You can manually control the mesh characteristics of polymesh objects including inserting new nodes on faces and edges or deleting existing nodes. In addition, EM.Cube's Solid Generator and Surface Generator tools create ploymesh solids and surfaces, respectively. Like tessellated object, polymesh objects are also considered as discretized objects by EM.Cube and they are not meshed again by the SBR mesh generator.   &lt;br /&gt;
&lt;br /&gt;
=== SBR Mesh Rules &amp;amp;amp; Considerations ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
=== Adjusting Block Elevation On Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, buildings and all other CAD objects are initially created on the XY plane by default. In other words, the Z-coordinate of the local coordinate system (LCS) of all blocks is set to zero until you change them. As long as you use the global ground, all is fine as your buildings are seated on the ground. When your propagation scene has an irregular terrain, you want to place your buildings on the terrain and not buried under it. Buildings in EM.Cube are not adjusted to the terrain elevation automatically. You need to instruct EM.Cube to do so.&lt;br /&gt;
&lt;br /&gt;
To update the building positions and adjust their elevation to the underlying terrain, right click on the '''Terrain''' item of the Navigation Tree and select '''Adjust Scene Elevation''' from the context menu. All the blocks in the scene are automatically elevated in the Z direction such that their bases sit on the terrain. In effect, all the blocks are translated along the global Z axis by proper amounts such that their local Z coordinate equals the Z-elevation of the underlying terrain object. This feature is particularly useful if you change the location of the terrain or import a new terrain after the blocks have been created.&lt;br /&gt;
&lt;br /&gt;
Note: You have to make sure that the resolution of your terrain, its fluctuation scale and building dimensions are all comparable. Otherwise, on a high-resolution, rapidly varying terrain, you will have buildings whose bottoms are in contact with the terrain only at a few points and parts of them hang in the air.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_adjust1_tn.png|400px]] [[File:prop_adjust2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Scene with Buildings and Terrain Before and After Adjusting Elevation&lt;br /&gt;
&lt;br /&gt;
=== Transmitters &amp;amp;amp; Receivers Above An Irregular Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, all the transmitters and receivers are tied up with point objects in the project workspace. These point objects are grouped and organized in base sets. When you move the point objects or change their coordinates, all of their associated transmitters or receivers immediately follow them to the new location. For example, you usually define a grid of receivers using a base set that is made up of a uniformly spaced array of points and spread them in your scene. All of these receivers have the same height because their associated base points all have the same Z-coordinate. When your receivers are located above a flat terrain like the global ground, their Z-coordinates are equal to their height above the ground, as the terrain elevation is fixed and equal to zero everywhere. The same is true for transmitters, too.   &lt;br /&gt;
&lt;br /&gt;
In many propagation modeling problems, your transmitters and receivers may be located above an irregular terrain with varying elevation across the scene. In that case, you may want to place your transmitters or receivers at a certain height above the underlying ground. The Z-coordinate of a transmitter or receiver is now the sum of the terrain elevation at the base point and the specified height. EM.Cube gives you the option to adjust the transmitter and receiver sets to the terrain elevation. This is done for individual transmitter sets and individual receiver sets. At the top of the Transmitter Dialog there is a check box labeled &amp;amp;quot;'''Adjust Tx Sets to Terrain Elevation'''&amp;amp;quot;. Similarly, at the top of the Receiver Dialog there is a check box labeled &amp;amp;quot;'''Adjust Rx Sets to Terrain Elevation'''&amp;amp;quot;. These boxes are unchecked by default. As a result, your transmitter sets or receiver sets coincide with their associated base points in the project workspace. If you check these boxes and place a transmitter set or a receiver set above an irregular terrain, the transmitters or receivers are elevated from the location of their associated base points by the amount of terrain elevation as can be seen in the figure below.   &lt;br /&gt;
&lt;br /&gt;
To better understand why there are two separate sets of points in the scene, note that a point array (CAD object) is used to create a uniformly spaced base set. The array object always preserves its grid topology as you move it around the scene. However, the transmitters or receivers associated with this point array object are elevated above the irregular terrain and no longer follow a strictly uniform grid. If you move the base set from its original position to a new location, the base points' topology will stay intact, while the associated transmitters or receivers will be redistributed above the terrain based on their new elevations.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_txrx1_tn.png|400px]] [[File:prop_txrx2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Transmitters and receivers adjusted above an uneven terrain and their associated base sets.&lt;br /&gt;
&lt;br /&gt;
== Running A SBR Simulation ==&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] offers three types of ray tracing simulations:&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
An SBR analysis is the simplest ray tracing simulation and involves the following steps:&lt;br /&gt;
&lt;br /&gt;
# Set the unit of project scene and the frequency of operation. Note that EM.Cube's default project unit is millimeter. When working with the [[Propagation Module]], pay attention to the project unit. Radio propagation problems usually require meter, mile or kilometer as the project unit.&lt;br /&gt;
# Create the blocks and draw the buildings at the desired locations.&lt;br /&gt;
# Keep the default ray domain and accept the default global ground or change its material properties.&lt;br /&gt;
# Define the base sets (at least one for the transmitter and one for the receiver).&lt;br /&gt;
# Define the transmitter and receiver(s) using the available base sets.&lt;br /&gt;
# Run the SBR simulation engine.&lt;br /&gt;
# Visualize the coverage map and plot other data.&lt;br /&gt;
&lt;br /&gt;
You can access the [[Propagation Module]]'s run dialog by clicking the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or by selecting '''Simulate &amp;amp;gt; Run...''' or using the keyboard shortcut '''Ctrl+R'''. When you click the '''Run''' button, a new window opens up that reports the different stages of the SBR simulation and indicates the progress of each stage. After the SBR simulation is successfully completed, a message pops up and prompts the completion of the process.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== SBR Simulation Parameters ===&lt;br /&gt;
&lt;br /&gt;
There are a number of SBR simulation settings that can be accessed and changed from the SBR Settings Dialog. To open this dialog, click the button labeled '''Settings''' on the right side of the '''Select Engine''' dropdown list in the Run Dialog. EM.Cube's SBR simulation engine allows you to separate the physical effects that are calculated during a ray tracing process. You can selectively enable or disable '''Ray Reflection''', '''Ray Transmission''' and '''Ray Diffraction'''. By default, all three effects are checked and included in the computations. Separating these effects sometimes help you better analyze your propagation scene and understand the impact of various blocks in the scene.&lt;br /&gt;
&lt;br /&gt;
EM.Cube requires a finite number of ray bounces for each original ray emanating from a transmitter. This is very important in situations that may involve resonance effects where rays get trapped among certain group of surfaces and may bounce back and forth indefinitely. This is set using the box labeled &amp;amp;quot;'''Max No. Ray Bounces'''&amp;amp;quot;, which has a default value of 10. Note that the maximum number of ray bounces directly affects the computation time as well as the size of output simulation data files. This can become critical for indoor propagation scenes, where most of the rays undergo a large number of reflections.   &lt;br /&gt;
&lt;br /&gt;
As rays travel in the scene and bounce from surfaces, they lose their power and their amplitudes diminish. From a practical point of view, only rays that have power above the receiver sensitivity threshold can be effectively received. Therefore, all the rays whose power fall below a specified power threshold are discarded. The '''Ray Power Threshold''' is specified in dBm and has a default value of -100dBm. Keep in mind that the value of this threshold directly affects the accuracy of the simulation results as well as the size of the output data file.&lt;br /&gt;
&lt;br /&gt;
You can also set the '''Angular Resolution''' of the transmitter rays in degrees. By default, every transmitter emanates equi-angular ray tubes at a resolution of 1 degree. Lower angular resolutions larger than 1° speed up the SBR simulation significantly, but they may compromise the accuracy. Higher angular resolutions less than 1° increase the accuracy of the simulating results, but they also increase the computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP13.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s SBR Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== The Coverage Map ===&lt;br /&gt;
&lt;br /&gt;
If the associated radiator set is isotropic, so will be the transmitter set. By default, an isotropic transmitter has vertical polarization. You can use the '''Polarization''' radio button to select one of the two options: '''Vertical''' or '''Horizontal'''. If the associated radiator set consists of '''Short Dipole''' or '''User Defined''' radiators, it is indicated in the transmitter property dialog. In the case of a short dipole radiator, you can set a value for the dipole current in Amperes. The radiation resistance of a short dipole of length ''dl'' is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; R_r = 80\pi^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:eqngr6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The radiated power of a short dipole carrying a current I&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; P_{rad} = \frac{1}{2} R_r |I_0|^2 = 40\pi^2 |I_0|^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:shortdipole.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For isotropic and user defined radiators you can set the '''Input Power''' and '''Phase''' of a transmitter set in Watts and degrees, respectively. This can be accessed from the '''Transmitter Chain''' dialog, which will be described in detail in the next section. The radiation pattern of the associated radiator set is normalized and used in conjunction with the input power value to create a weighted distribution of transmitted rays. In certain cases like hybrid simulations, you may want to use the actual values of the far field to define the transmitter power rather than a normalized radiation pattern. Note that the pattern (.RAD) file contains the value of total radiated power in its header. In this case, check the box labeled '''&amp;amp;quot;Calculate Power From Radiation Pattern&amp;amp;quot;'''. This is calculated directly from the complex &amp;amp;theta; and &amp;amp;phi; components of the far field data by integrating them over the entire space (4&amp;amp;pi; solid angle). Note that this option is available only when the radiator is of the User Defined type. When this box is checked, the transmitter chain button is grayed out. By default, an isotropic transmitter emanates rays uniformly in all directions at the angular resolution specified by the user. A transmitter with a user defined associated radiator may represent a highly directional radiation pattern with the main beam pointing in a certain direction. You can additionally force and limit the '''Angular Extents''' of rays to a certain solid angle around the transmitter. This is especially useful and computationally efficient when the transmitter is on one side of the scene, and all the scatterers and receivers are on the other side. In this case, there is no need to generate rays in all directions. To limit the angular extents of rays, define the Start and End values for both Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles. The value of the angular resolution of the rays can be changed from the Run Dialog as will be discussed later.&lt;br /&gt;
&lt;br /&gt;
In a regular SBR simulation, you have a transmitter and one or more arrays of receivers in your scene. At the end of the simulation, you can visualize the coverage map of the transmitter over the receiver sets. A coverage map shows the total '''Received Power''' by each of the receivers and is visualized as a color-coded intensity plot. You can visualize the coverage maps of individual receiver sets. At the end of a SBR simulation, each Received Power Coverage Map is listed under the receiver set's name in the Navigation Tree. To display a coverage map, simply click on its entry in the Navigation Tree. The coverage map plot appears in the Main Window overlaid on the scene. A legend box on the right shows the color scale and units (dB). The 3-D coverage maps are displayed as horizontal confetti above the receivers. If the receivers are packed close to each other, you will see a continuous confetti map. If the receivers are far apart, you will see individual colored squares. You can also visualize coverage maps as colored 3-D cubes. This may be useful when you set up your receivers in a vertical arrangement or the scene has a highly uneven terrain. To change the type of coverage map visualization, open the receiver set's property dialog and select the desired option for '''Coverage Map: Confetti''' or '''Cube''' in the '''&amp;amp;quot;Visualization Options&amp;amp;quot;''' section of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run11_tn.png|400px]] [[File:prop_run12_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Received power coverage map: (Left) confetti style, and (Right) cube style.&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the coverage map by right clicking on its entry in the Navigation Tree and selecting '''Properties...''' or by double-clicking on the legend box. In the Output Plot Settings dialog, you can choose from one of three Color Map options: '''Default''', '''Rainbow''' and '''Grayscale'''. The visualization plot uses default values for the color scale. In the section titled &amp;amp;quot;Limits&amp;amp;quot;, you can choose the radio button labeled '''User Defined'''. Then, you have to enter new values for the '''Lower''' and '''Upper''' Limits of the plot. You can also show or hide the Legend Box or change its '''Background''' and '''Foreground''' colors by clicking the buttons provided for this purpose.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run4.png]]&lt;br /&gt;
&lt;br /&gt;
Output Plot Settings&lt;br /&gt;
&lt;br /&gt;
=== The Ray Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a SBR simulation, each receiver receives a number of rays. Some receivers may not receive any rays at all. You can visualize all the rays received by a certain receiver from the active transmitter of the scene. To do this, right click the '''Receivers''' item of the Navigation Tree. From the context menu select '''Show Received Rays'''. All the rays received by the currently selected receiver of the scene are displayed in the scene. The rays are identified by labels, are ordered by their power and have different colors for better visualization. You can display the rays for only one receiver at a time. The receiver set property dialog has a list of all the individual receivers belonging to that set. To display the rays received by another receiver, you have to change the '''Selected Receiver''' in the receiver set's property dialog. If you keep the mouse focus on this dropdown list and roll your mouse scroll wheel, you can scan the selected receivers and move the rays from one receiver to the next in the list. To remove the visualized rays from the scene, right click the Receivers item of the Navigation Tree again and from the context menu select '''Hide Received Rays'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run5_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Visualization of received rays at the location of the selected receiver.&lt;br /&gt;
&lt;br /&gt;
You can also view the ray parameters by opening the property dialog of a receiver set. By default, the first receiver of the set is always selected. You can select any other receiver from the drop-down list labeled '''Selected Receiver'''. If you click the button labeled '''Show Ray Data''', a new dialog opens up with a table that contains all the received rays at the selected receiver and their parameters:&lt;br /&gt;
&lt;br /&gt;
* Delay is the total time delay that a ray experiences travelling from the transmitter to the receiver after all the reflections, transmissions and diffractions and is expressed in nanoseconds.&lt;br /&gt;
* Ray Field is the received electric field at the receiver location due to a specific ray and is given in dBV/m.&lt;br /&gt;
* Ray Power is the received power at the receiver due to a specific ray and is given in dBm.&lt;br /&gt;
* Angles of Arrival are the &amp;amp;theta; and &amp;amp;phi; angles of the incoming ray at the local spherical coordinate system of the receiver.&lt;br /&gt;
&lt;br /&gt;
The Ray Data Dialog also shows the '''Total Received Power''' in dBm and '''Total Received Field''' in dBV/m due to all the rays received by the receiver. You can sort the rays based on their delay, field, power, etc. To do so, simply click on the grey column label in the table to sort the rays in ascending order based on the selected parameter. You can also select any ray by clicking on its '''ID''' and highlighting its row in the table. In that case, the selected rays is highlighted in the Project Workspace and all the other rays become thin (faded).&lt;br /&gt;
&lt;br /&gt;
Note: The rays are summed up coherently at the receiver.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run6_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Analyzing a selected ray from the ray data dialog.&lt;br /&gt;
&lt;br /&gt;
=== Plotting Other Simulation Results ===&lt;br /&gt;
&lt;br /&gt;
Besides visualizing the coverage map and received rays in the EM.CUBE's [[Propagation Module]], you can also plot the '''Path Loss''' of all the receivers belonging to a receiver set as well as the '''Power Delay Profile''' of individual receivers. To plot these data, go the '''Observables''' section of the Navigation Tree and right click on the '''Receivers''' item. From the context menu, select '''Plot Path Loss''' or '''Plot Power Delay Profile''', respectively. The path loss data between the active transmitter and all the receivers belonging to a receiver set are plotted on a Cartesian graph. The horizontal axis of this graph represents the index of the receiver. Power Delay Profile is a bar chart that plots the power of individual rays received by the currently selected receiver versus their time delay. If there is a line of sight (LOS) between a transmitter and receiver, the LOS ray will have the smallest delay and therefore will appear first in the bar chart. Sometimes you may have several rays arriving at a receiver at the same time, i.e. all with the same delay, but with different power level. These will appear as stacked bars in the chart.&lt;br /&gt;
&lt;br /&gt;
You can also plot the path loss and power delay profile graphs and many others from EM.CUBE's data manager. You can open data manager by clicking the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or by selecting '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or by right clicking on the '''Data Manager''' item of the Navigation Tree and selecting Open Data Manager... from the contextual menu or by using the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the theta and phi angles of arrival and departure of the selected receiver. You can select any data file by clicking and highlighting its '''ID''' in the table and then clicking the '''Plot''' button.&lt;br /&gt;
&lt;br /&gt;
=== Output Data Files ===&lt;br /&gt;
&lt;br /&gt;
At the end of an SBR simulation, the results are written into a main output data file with the reserved name of SBR_Results.RTOUT. This file has the following format:&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Receiver Number&lt;br /&gt;
* Receiver Base X, Y , Z Coordinates&lt;br /&gt;
* Receiver Height&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
Number of Rays&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Ray Number&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Arrival in deg&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Departure in deg&lt;br /&gt;
* Delay in nsec&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''') &amp;amp;amp; Imag('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''')&lt;br /&gt;
* Power&lt;br /&gt;
&lt;br /&gt;
The angles of arrival are the &amp;amp;theta; and &amp;amp;phi; angles of a received ray measured in degrees and are referenced in the spherical coordinate systems centered at the location of the receiver. The angles of departure for a received ray are the &amp;amp;theta; and &amp;amp;phi; angles of the originating transmitter ray, measured in degrees and referenced in the spherical coordinate systems centered at the location of the active transmitter, which eventually arrives at the receiver. The total time delay is measured in nanoseconds between t = 0 nsec at the time of launch from the transmitter location till being received at the receiver location. The last four columns show the real and imaginary parts of the received electric fields with vertical and horizontal polarizations, respectively. The complex field values are normalized in a way that when their magnitude is squared, it equals the received ray power. If the active transmitter is an isotropic radiator with either a vertical or horizontal polarization, then the field components corresponding to the other polarization will have zero entries in the output data file.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run8_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A typical SBR output data file.&lt;br /&gt;
&lt;br /&gt;
=== Running A Frequency Sweep With SBR ===&lt;br /&gt;
&lt;br /&gt;
By default, you run a single-frequency simulation in EM.CUBE's [[Propagation Module]]. You set the operational frequency of a SBR simulation in the project's '''Frequency Dialog''', which can be accessed in a number of ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''Frequency''' [[File:freq_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]]'''Frequency Settings...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+F'''.&lt;br /&gt;
# By double clicking the frequency section (box) of the '''Status Bar'''.&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
[[File:prop_freq.png]]    [[File:prop_run10.png]]&lt;br /&gt;
&lt;br /&gt;
(Left) Project's frequency dialog and (Right) the frequency settings dialog.&lt;br /&gt;
&lt;br /&gt;
You can also select the '''Frequency Sweep''' option in the '''Simulation Mode''' drop-down list of the '''Run Dialog'''. Click the '''Settings...''' button on the right side of this dropdown list to open up the Frequency Settings Dialog. Based on the original values of the project center frequency and bandwidth, the '''Start Frequency''' and '''End Frequency''' have default values. You can also change the '''Number of Samples'''. Once you click the '''Run''' button, EM.CUBE performs a frequency sweep by assigning each of the frequency samples as the current operational frequency and running the SBR simulation engine at that frequency. All the simulation data at all frequency samples are saved into the output data files including &amp;amp;quot;SBR_results.RTOUT&amp;amp;quot;. After the completion of a frequency sweep simulation, as many coverage maps as the number of frequency samples are generated and added to the Navigation Tree under the Receiver Set's entry. You can click on each of the coverage maps corresponding to each of the frequency samples and visualize it in the project workspace. You can also animate the coverage maps. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. The coverage maps start to animate by their order on the Navigation Tree. Once the entire list is displayed sequentially, it starts all over again from the beginning of the list. During the animation, the '''Animation Controls''' dialog appears at the lower right corner of the screen. This dialog has a number of buttons for pause/resume, step forward/backward, and step to the end/start. The title of each coverage map is shown in the box labeled '''Sample''' as it is displayed in the main window. You can also change the speed of animation. The default frame duration has a value of 300 (3x100) milliseconds. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run13.png]]    [[File:prop_run14.png]]&lt;br /&gt;
&lt;br /&gt;
Multiple coverage maps on the Navigation Tree at the end of a frequency sweep and starting an animation from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run15_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Animation controls dialog in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep with SBR ===&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run24.png|thumb|300px|EM.CUBE's variable dialog]]&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run23.png|thumb|250px|Dialog for defining new variables]]&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE, all the CAD object properties as well as certain source, material and mesh parameters can be assigned as [[variables]]. [[Variables]] are defined to control and vary the values of such parameters either for editing purposes or to run parametric sweep or [[optimization]]. Variable are defined using the '''[[Variables]] Dialog''', which can be accessed in the three ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''[[Variables]]''' [[File:variable_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]] '''[[Variables]]...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+B'''.&lt;br /&gt;
&lt;br /&gt;
The [[variables]] dialog is initially empty. To add a new variable, click the '''Add''' button to open up the '''Add Variable/Syntax Dialog'''. In this dialog you have to type in a name for the new variable and choose a type. The default type is '''Uniformly Spaced Samples'''. You also need to specify the '''Start''', '''Stop''' and '''Step''' values for the variable. In the figure below, a variable called &amp;amp;quot;Tx_Height&amp;amp;quot; is defined that varies between 2 and 10 with equal steps of 2. This means the sample set {2,4,6,8,10}. When you return to the [[variables]] dialog, the syntax of the new variable is shown as 2:10:2. The last number in this syntax is always the variable step. In this example, this variable is going to be used to control the height of the transmitter in a propagation scene.&lt;br /&gt;
&lt;br /&gt;
Next, you have to attach the variable to the CAD object. In this case, the CAD object is the point object that represents the transmitter's radiator. To attach a variable to a CAD object, open the object's property dialog and type in the name of the variable as the value of a property or parameter. In this case, the variable Tx_Height is going to control the Z-Coordinate of the point object. Once the value of the object parameter is replaced by the name of an already defined variable, it is updated with the current value of that variable. In the case of a variable of &amp;amp;quot;Uniformly Spaced Samples&amp;amp;quot; type, the current value is the start value. This value will be incrementally varied during a parametric sweep simulation process. Note that a variable can take a fixed value or a discrete set of values, too. You can always open the [[variables]] dialog and change the value or syntax of any variable. To make a new or modified value effective, click the '''Apply''' button of the [[variables]] dialog. You can test the values by performing a '''Dry Run''' of the selected variable. This runs an animation of the project workspace as the value of the variable changes and all the related CAD objects are updated accordingly. Note that you can attach the same variable to more than one CAD object property or to the properties of different objects. You can also define multiple values or syntaxes to the same variable. To do so, open the '''Add Variable/Syntax Dialog''', and instead of typing in a new variable name, choose an existing variable name from the '''Name''' dropdown list. This will add a new value or syntax to the existing syntax(es) of the selected variable. When you return to the [[variables]] dialog, [[variables]] with more than one value or syntax will have a dropdown list in the '''Syntax''' column. You can choose any of these values or syntaxed at any time and make the change effective by clicking the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run25.png]]&lt;br /&gt;
&lt;br /&gt;
Replacing the value of a CAD object parameter with a variable name.&lt;br /&gt;
&lt;br /&gt;
To run a parametric sweep, open the '''Run Dialog''' and select the '''Parametric Sweep''' option in the '''Simulation Mode''' drop-down list. If you have not defined any [[variables]] in the project, the box in the '''[[Variables]]''' row before the '''View''' will be red. You have to turn it into green before you can run a simulation. By clicking the '''View''' button, you can open up the [[variables]] dialog from here. Once you click the '''Run''' button, EM.CUBE performs a parametric sweep by incrementally varying the values of all the defined [[variables]] from their start to stop values at the specified steps and updating all the related CAD objects. After the completion of a parametric sweep simulation, as many coverage maps as the total number of variable samples are generated and added to the Navigation Tree under the receiver set's entry. You can click on each of the coverage maps and visualize it in the project workspace. You can also animate the coverage maps sequentially. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run26.png]]&lt;br /&gt;
&lt;br /&gt;
Choosing parametric sweep as the simulation mode in the run dialog. Note that one variable has been defined and EM.CUBE is ready to run the simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run27_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The coverage map of the scene at the end of a parametric sweep where the sweep variable is the transmitter height.&lt;br /&gt;
&lt;br /&gt;
=== Statistical Analysis of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's coverage maps display the received power at the location of all the receivers. The receivers together from a set/ensemble, which might be uniformly spaced or distributed across the propagation scene or may consist of randomly scattered radiators. Every coverage map shows the '''Mean''' and '''Standard Deviation''' of the received power for all the receivers involved. These information are displayed at the bottom of the coverage map's legend box and are expressed in dB.&lt;br /&gt;
&lt;br /&gt;
In the [[Propagation Module]], when you ran a sweep simulation (frequency, transmitter or parametric), you also have the option to generate two additional coverage maps: one for the mean of all the individual sample coverage maps and another for their standard deviation. To do so, in the '''Run Dialog''', check the box labeled '''&amp;amp;quot;Create Mean and Standard Deviation Coverage Maps&amp;amp;quot;'''. Note that the mean and standard deviation values displayed on the individual coverage maps correspond to the spatial statistics of the receivers in the scene, while the mean and standard deviation coverage maps correspond to frequency, transmitter or variable sets defined for the sweep simulation. Also, note that both of the mean and standard deviation coverage maps have their own spatial mean and standard deviation values expressed in dB at the bottom of their legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run21_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The mean coverage map at the end of a transmitter sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run22_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The standard deviation coverage map at the end of a transmitter sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Terrano</id>
		<title>EM.Terrano</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Terrano"/>
				<updated>2013-06-14T14:50:43Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Impenetrable Surfaces For Outdoor Scenes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Taking out this picture for now for consistency&lt;br /&gt;
[[File:urban.png]]--&amp;gt;&lt;br /&gt;
EM.Terrano is a physics-based, site-specific, wave propagation modeling tool that enables engineers to quickly determine how radio waves propagate in urban, natural or mixed environments. The rapid growth of wireless communications along with the high costs associated with the design and deployment of effective wireless infrastructures underline a persistent need for computer aided communication network planning tools. Wireless engineers have long used simplistic statistical prediction models based on measurements that often exhibit considerable errors especially in areas having mixed building sizes.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Terrano has helped wireless engineers around the globe model the physical channel and the mechanisms by which radio signals propagate from transmitters to receivers. EM.Terrano’s advanced ray tracing simulator finds the dominant propagation paths specific to the site in question. It calculates the true signal characteristics at the actual locations using physical databases of the buildings and terrain at a given site, not those of a statistically average or representative environment. EM.Terrano’s ray tracer is based on the shoot-and-bounce-rays (SBR) method, which utilizes geometrical optics (GO) in combination with uniform theory of diffraction (UTD) models of building edges.&lt;br /&gt;
&lt;br /&gt;
The new EM.Terrano 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has created the opportunity to inject a host of new powerful features such as a highly customizable terrain generator, DEM terrain import, complex building constructions, and versatile interior wall arrangements for indoor propagation modeling. As a result of this seamless interface with EM.Cube's other modules, you can now model complex antenna systems in [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]], and generate antenna radiation patterns than can be used to model directional transmitters and receivers at the two ends of your propagation channel. Conversely, you can analyze a propagation scene in EM.Terrano and import the rays received at a certain receiver location as coherent plane wave sources to [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]]. You can also model periodic wall or ground structures using the periodic simulation capability of [[EM.Picasso]] or [[EM.Tempo]] and generate macromodels for their reflection and transmission coefficients as functions of the ray incidence angles. You can then define buildings or terrains in your propagation scene that are governed by such macromodels.&lt;br /&gt;
&lt;br /&gt;
== A Wireless Propagation Primer ==&lt;br /&gt;
Every wireless communication system involves a transmitter that transmits some sort of signal (voice, video, data, etc.), a receiver that receives and detects the transmitted signal, and a channel in which the signal is transmitted into the air and travels from the location of the transmitter to the location of the receiver. The channel is the physical medium in which the electromagnetic waves propagate. The successful design of a communication system depends on an accurate link budget analysis that determines whether the receiver receives adequate signal power to detect it against the background noise. The simplest channel is the free space. Real communication channels, however, are more complicated and involve a large number of wave scatterers. For example, in an urban environment, the obstructing buildings, vehicles and vegetation reflect, diffract or attenuate the propagating radio waves. As a result, the receiver receives a distorted signal that contains several components with different power levels and different time delays arriving from different angles.&lt;br /&gt;
&lt;br /&gt;
The different rays arriving at a receiver location create constructive and destructive interference patterns. This is known as the multipath effect. This together with the shadowing effects caused by building obstructions lead to channel fading. In many wireless applications, the total received power by the receiver is all that matters. In some others, the angle of arrival of the rays as well as their polarization are of immense interest. A fully polarimetric, coherent ray tracer like EM.Cube's Shooting-and-Bouncing-Rays (SBR) solver lets you compute and resolve all the rays received by a receiver including their power levels, time delays and angles of arrival.&lt;br /&gt;
&lt;br /&gt;
=== Free Space Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
In a free-space line-of-sight (LOS) communication system, the signal propagates directly from the transmitter to the receiver without encountering any obstacles (scatterers). Electromagnetic waves propagate in the form of spherical waves with a functional dependence of e&amp;lt;sup&amp;gt;j(&amp;amp;omega;&amp;lt;/sup&amp;gt;&amp;lt;sup&amp;gt;t-k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;R)&amp;lt;/sup&amp;gt;/R, where R is the distance between the transmitter and receiver, &amp;lt;math&amp;gt;\omega = 2\pi f&amp;lt;/math&amp;gt;, f is the signal frequency, &amp;lt;math&amp;gt;k_0 = \tfrac{\omega}{c} = \tfrac{2\pi}{\lambda}&amp;lt;/math&amp;gt;, c is the speed of light, and &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength at the operational frequency. By the time the signal arrives at the location of the receiver, it undergoes two changes. It is attenuated and its power drops by a factor of 1/R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, and additionally, it experiences a phase shift of &amp;lt;math&amp;gt;\tfrac{2\pi R}{\lambda_0}&amp;lt;/math&amp;gt;, which is equivalent to a time delay of R/c. The signal attenuation from the transmitter to the receiver is usually quantified by '''Path Loss''' defined as the ratio of the received signal power (P&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;) to the transmitted signal power (P&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;). Assuming isotropic transmitting and receiving radiators (i.e. radiating uniformly in all directions), the Path Loss in a free-space line-of-sight communication system is given by Friis’ formula:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = \left( \frac{\lambda_0}{4\pi R} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above formula assumes that the receiving antenna is polarization-matched. Normally, there is a polarization mismatch between the transmitting and receiving antennas. In the case of directional transmitting and receiving antennas, Friis’ formula takes the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = G_T G_R \left( \frac{\lambda_0}{4\pi R} \right)^2 ( \mathbf{ \hat{u}_T \cdot \hat{u}_R } )&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''u&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;''' and '''u&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''' are the unit polarization vectors of the transmitting and receiving antennas, and G&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt; and G&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; are their gains, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:los.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Line-of-Sight (LOS) Propagation Scenario.&lt;br /&gt;
&lt;br /&gt;
=== Multipath Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
Free-space line-of-sight communications is an ideal scenario that is typically used to model aerial or space applications. In ground-based systems, the presence of the ground as a very large reflecting surface affects the signal propagation to a large extent. Along the path from a transmitter to a receiver, the signal may also encounter many obstacles and scatterers such as buildings, vegetation, etc. In an urban canyon environment with many buildings of different heights and other scatterers, a line of sight between the transmitter and receiver can hardly be established. In such cases, the propagating signals bounce back and forth among the building surfaces. It is these reflected or diffracted signals that are often received and detected by the receiver. Such environments are referred to as “multipath”. The group of rays arriving at a specific receiver location experience different attenuations and different time delays. This gives rise to constructive and destructive interference patterns that cause fast fading. As a receiver moves locally, the receiver power level fluctuates sizably due to these fading effects.&lt;br /&gt;
&lt;br /&gt;
The use of statistical models for prediction of fading effects is widely popular among communication system designers. These models are either based on measurement data or derived from simplistic analytical frameworks. The statistical models often exhibit considerable errors especially in areas having mixed building sizes. In such cases, one needs to perform a physics-based, site-specific analysis of the propagation environment to accurately identify and establish all the possible signal paths from the transmitter to the receiver. This involves an electromagnetic analysis of the scene with all of its geometrical and physical details.  &lt;br /&gt;
&lt;br /&gt;
Link budget analysis for a multipath channel is a challenging task due to the large size of the computational domains involved. Typical propagation scenes usually involve length scales on the order of thousands of wavelengths. To calculate the path loss between the transmitter and receiver, one must solve Maxwell's equations in an extremely large space. Full-wave numerical techniques like the Finite Difference Time Domain (FDTD) method, which require a fine discretization of the computational domain, are therefore impractical for solving large-scale propagation problems. The practical solution is to use asymptotic techniques such as SBR, which utilize analytical techniques over large distances rather than a brute force discretization of the entire computational domain. Such asymptotic techniques, of course, have to compromise modeling accuracy for practical computation feasibility.&lt;br /&gt;
&lt;br /&gt;
[[File:multi1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A multipath propagation scene showing all the rays arriving at a particular receiver.&lt;br /&gt;
&lt;br /&gt;
=== The SBR Method ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] provides an asymptotic ray tracing simulation engine that is based on a technique known as Shooting-and-Bouncing-Rays (SBR). In this technique, propagating spherical waves are modeled as ray tubes or beams that emanate from a source, travel in space, bounce from obstacles and are collected by the receiver. As rays propagate away from their source (transmitter), they begin to spread (or diverge) over distance. In other words, the cross section or footprint of a ray tube expands as a function of the distance from the source. EM.Cube uses an accurate equi-angular ray generation scheme to that produces almost identical ray tubes in all directions to satisfy energy and power conservation requirements.&lt;br /&gt;
&lt;br /&gt;
When a ray hits an obstructing surface, one or more of the following phenomena may happen:&lt;br /&gt;
&lt;br /&gt;
# Reflection from the locally flat surface&lt;br /&gt;
# Transmission through the locally flat surface&lt;br /&gt;
# Diffraction from an edge between two conjoined locally flat surfaces&lt;br /&gt;
&lt;br /&gt;
EM.Cube discretizes all the objects of the scene into flat triangular facets. Obviously, rectangular and cubic objects preserve their geometric shapes through this discretization. Objects with curved surfaces such as cylinders, cones or spheres, are approximated by &amp;amp;quot;polymesh&amp;amp;quot; representations. The geometric fidelity of the resulting mesh depends on the specified mesh edge length. When a ray hits a triangular facet, the propagating spherical wave is approximated as a plane wave at the specular point. The reflection and transmission coefficients of the surface are calculated at the operational frequency and at the particular ray incident angle. &lt;br /&gt;
&lt;br /&gt;
A new reflected ray is generated at the specular point, which starts traveling and bouncing around in the scene. If the obstructing surface is penetrable, a second transmitted ray is generated and added to the scene. If the ray hits the edge of an obstacle, it is diffracted from that edge. This leads to the creation of a cone of new rays, which greatly complicate the computational problem. The Uniform Theory of Diffraction (UTD) is used to calculate the wedge diffraction coefficients at the edges of scattering blocks. Note that reflection, transmission and diffraction coefficients are all dependent on the polarization of the incident plane wave.&lt;br /&gt;
&lt;br /&gt;
A receiver may receive a large number of rays: direct line-of-sight rays from the transmitter, rays reflected or diffracted off the ground or terrain, rays reflected or diffracted from buildings or rays transmitted through buildings. Each received ray is characterized by its power, delay and angles of arrival, which are the spherical coordinate angles &amp;amp;theta; and &amp;amp;phi; of the incoming ray. The actual signal received and detected by the receiver is the superposition of all these rays with different power levels and different time delays. Most of the time, you will be interested in the coverage map of an area, which shows how much power is received by a grid of receivers spread over the area from a given fixed transmitter.&lt;br /&gt;
&lt;br /&gt;
=== Ray Reflection &amp;amp; Transmission ===&lt;br /&gt;
&lt;br /&gt;
[[File:reflect.png|thumb|350px|The Incident, Reflected and Transmitted Rays at the Interface Between Two Dielectric Media]]&lt;br /&gt;
&lt;br /&gt;
The incident, reflected and transmitted rays are each characterized by a triplet of unit vectors:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}, \hat{u}_{\perp}, \hat{k} } )&amp;lt;/math&amp;gt; representing the incident parallel polarization vector, incident perpendicular polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}', \hat{u}_{\perp}', \hat{k}' } )&amp;lt;/math&amp;gt; representing the reflected parallel polarization vector, reflected perpendicular polarization vector and reflected propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}'', \hat{u}_{\perp}'', \hat{k}'' } )&amp;lt;/math&amp;gt; representing the transmitted parallel polarization vector, transmitted perpendicular polarization vector and transmitted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The reflected ray is assumed to originate from a virtual image source point. The three triplets constitute three orthonormal basis systems. Below, it is assumed that the two dielectric media have permittivities &amp;amp;epsilon;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;epsilon;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, and permeabilities &amp;amp;mu;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;mu;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, respectively. A lossy medium with a conductivity &amp;amp;sigma; can be modeled by a complex permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = &amp;amp;epsilon;'&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; –j&amp;amp;sigma;/&amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. Assuming '''n''' to be the unit normal to the interface plane between the two media, and Z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;Omega; , the incident polarization vectors as well as all the reflected and transmitted vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp} = \frac{\hat{k} \times \hat{n}}{|\hat{k} \times \hat{n}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|} = \hat{u}_{\perp} \times \hat{k} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflected unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}' = \hat{k} - 2(\hat{k} \cdot \hat{n}) \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}' = \hat{u}_{\perp}' \times \hat{k}' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The transmitted unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}'' = \hat{n} \times a - \sqrt{1-a \cdot a} \; \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}'' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}'' = \hat{u}_{\perp}'' \times \hat{k}'' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{a} = (k_1/k_2) \mathbf{\hat{k} \times \hat{n}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_1 = k_0 \sqrt{\varepsilon_1 \mu_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_2 = k_0 \sqrt{\varepsilon_2 \mu_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_1 = Z_0 \sqrt{\mu_1 / \varepsilon_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_2 = Z_0 \sqrt{\mu_2 / \varepsilon_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sin\theta'' = \frac{k_1}{k_2}\sin\theta \text{ if } \sin\theta \le k_2/k_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml4.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml5.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflection coefficients at the interface are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penetration Through Thin Walls Or Surfaces ===&lt;br /&gt;
&lt;br /&gt;
[[File:thinwalltrans.png|thumb|350px|The Incident and Transmitted Rays through a Thin Wall]]&lt;br /&gt;
&lt;br /&gt;
In &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;, we assume that an incident ray gives rise to two rays, one is reflected at the specular point, and the other is transmitted almost in the same direction as the incident ray. The reflected ray is assumed to originate from a virtual image source point. Similar to the case of reflection and transmission at the interface between two dielectric media, here too we have three triplets of unit vectors, which all form orthonormal basis systems.&lt;br /&gt;
&lt;br /&gt;
The transmission coefficients are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\|} = \frac{(1-{\Gamma_{\|}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\|}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\perp} = \frac{(1-{\Gamma_{\perp}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\perp}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml21.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wedge Diffraction From Edges ===&lt;br /&gt;
&lt;br /&gt;
[[File:diffract.png|thumb|350px|The Incident Ray and Diffract Ray Cone at the Edge of a Building]]&lt;br /&gt;
&lt;br /&gt;
For the purpose of calculation of diffraction from building edges, we define a &amp;amp;quot;Wedge&amp;amp;quot; as having two faces, the 0-face and the ''n''-face. The wedge angle is a = (2-''n'')p, where the parameter ''n'' is required for the calculation of diffraction coefficients. All the diffracted rays lie on a cone with its vertex at the diffraction point and a wedge angle equal to the angle of incidence in the opposite direction. A diffracted ray is assumed to originate from a virtual image source point. Three triplets of unit vectors are defined as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_0, \hat{u}_l, \hat{t})}&amp;lt;/math&amp;gt; representing the unit vector normal to the edge and lying in the plane of the 0-face, the unit vector normal to the 0-face, and the unit vector along the edge, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f, \hat{u}_b, \hat{t})}&amp;lt;/math&amp;gt; representing the incident forward polarization vector, incident backward polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f', \hat{u}_b', \hat{t}')}&amp;lt;/math&amp;gt; representing the diffracted forward polarization vector, diffracted backward polarization vector and diffracted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The three triplets constitute three orthonormal basis systems. The propagation vector '''k'''' of the diffracted ray has to be constructed based on the diffraction cone as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{\hat{k}'} = \cos\phi_w \mathbf{\hat{u}_0} + \sin\phi_w \mathbf{\hat{u}_l} + &lt;br /&gt;
\mathbf{(\hat{k} \cdot \hat{t}) \hat{t}}, \quad 0 \le \phi_w \le \alpha&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the resolution of the angle &amp;amp;theta;&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt; is chosen to be the same as the resolution of the incident ray.&lt;br /&gt;
&lt;br /&gt;
The other unit vectors for the incident and diffracted rays are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f = \frac{\hat{k} \times \hat{t}}{|\hat{k} \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b = \hat{k} \times \hat{u}_f } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f' = \frac{\hat{k}' \times \hat{t}}{|\hat{k}' \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b' = \hat{k}' \times \hat{u}_f' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml9.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The diffraction coefficients are calculated in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_s = \frac{-e^{-j\pi/4}}{2n \sqrt{2\pi k} \sin\beta_0'}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \cot \left(\frac{\pi + (\phi-\phi')}{2n}\right) F[kLa^+(\phi-\phi')] +&lt;br /&gt;
  \cot \left(\frac{\pi - (\phi-\phi')}{2n}\right) F[kLa^-(\phi-\phi')] \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; R_{0 \perp} \cot \left(\frac{\pi - (\phi+\phi')}{2n}\right) F[kLa^-(\phi+\phi')] +&lt;br /&gt;
  R_{n \perp} \cot \left(\frac{\pi + (\phi+\phi')}{2n}\right) F[kLa^+(\phi+\phi')]&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_h = \frac{-e^{-j\pi/4}}{2n \sqrt{2\pi k} \sin\beta_0'}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \cot \left(\frac{\pi + (\phi-\phi')}{2n}\right) F[kLa^+(\phi-\phi')] +&lt;br /&gt;
  \cot \left(\frac{\pi - (\phi-\phi')}{2n}\right) F[kLa^-(\phi-\phi')] \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; R_{0 \|} \cot \left(\frac{\pi - (\phi+\phi')}{2n}\right) F[kLa^-(\phi+\phi')] +&lt;br /&gt;
  R_{n \|} \cot \left(\frac{\pi + (\phi+\phi')}{2n}\right) F[kLa^+(\phi+\phi')]&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml11.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where ''F(x)'' is the Fresnel Transition function:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = 2j \sqrt{x} e^{jx} \int_{\sqrt{x}}^{\infty} e^{-j\tau^2} \, d\tau &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, we have&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
s = |\rho_D - \rho_S| \\&lt;br /&gt;
s' = |\rho_D - \rho_r|&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L = \frac{s s' \sin^2 \beta'}{s + s'} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\pm}(\nu) = 2\cos^2 \left( \frac{2n\pi N^{\pm} - \nu}{2} \right), \quad \nu = \phi \pm \phi' &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml10.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml13.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;N^{\pm}&amp;lt;/math&amp;gt; are the integers which most closely satisfy the equations &amp;lt;math&amp;gt; 2n\pi N^{\pm} - \nu = \pm \pi &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SBR As An Asymptotic EM Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulation engine can be used as a versatile and powerful asymptotic electromagnetic (EM) solver. If you compare EM.Cube's [[Propagation Module]] with its other computational modules, you will notice a lot of similarities. While other modules group objects primarily by their material properties, [[Propagation Module]] categorizes the types of obstructing surfaces. Besides sharing the same ray-surface interaction mechanisms, all the objects belonging to a surface group also share the same material properties. [[Propagation Module]] offers similar source types and similar observable types as the other computational modules. For instance, the Hertzian dipole sources used in a SBR simulation are identical to those offered in PO, MoM3D and Planar modules. The plane wave sources are identical across all computational modules. [[Propagation Module]]'s sensor field planes, far field observables (either radiation patterns or RCS) and Huygens surfaces are all fully compatible with EM.Cube's other computational modules.&lt;br /&gt;
&lt;br /&gt;
As an asymptotic EM solver, the SBR engine can be used to model large-scale electromagnetic radiation and scattering problems. An example of this kind is radiation of simple or complex antennas in the presence of large scattering platforms. You have to keep in mind that by using an asymptotic technique in place of a full-wave method, you trade computational speed and lower memory requirements for modeling accuracy. In particular, the SBR method cannot take into account the electromagnetic coupling effects among nearby radiators or scatterers. However, when your scene spans thousands of wavelengths, an SBR simulation might often prove to be your sole practical solution.  &lt;br /&gt;
&lt;br /&gt;
=== Novelties Of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine utilizes an intelligent ray tracing algorithm based on the concept of  k-dimensional trees. A k-d tree is a space-partitioning data structure for organizing points in a k-dimensional space. k-d trees are particularly useful for searches that involve multidimensional search keys such as range searches and nearest neighbor searches. In a typical large radio propagation scene, there might be a large number of rays emanating from the transmitter that may never hit any obstacles. For example, upward-looking rays in an urban propagation scene quickly exit the computational domain. Rays that hit obstacles on their path, on the other hand, generate new reflected and transmitted rays. The k-d tree algorithm traces all these rays systematically in a very fast and efficient manner. Another major advantage of k-d trees is the fast processing of multi-transmitters scenes. Unlike the previous versions of the SBR solver which could handle one transmitter at a time and would superpose all the resulting rays at the end of the simulation, the new SBR shoots rays from all the transmitters at the same time.   &lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine performs fully polarimetric and coherent SBR simulations with arbitrary transmitter antenna patterns. The new engine solves directly for the vectorial field components at the receiver locations or field observation points. This is far more rigorous than the previous versions of the SBR solver which primarily utilized ray power calculations based on the two vertical and horizontal polarizations. In other words, EM.Cube's new SBR engine is a truly asymptotic &amp;amp;quot;field&amp;amp;quot; solver. As a result, you can visualize the magnitude and phase of all six electric and magnetic field components at any point in the computational domain. For power calculations at the receiver location, an isotropic, polarization-matched, receiving antenna is assumed.       &lt;br /&gt;
&lt;br /&gt;
In most scenes, the buildings and the ground or terrain can be assumed to be made of homogeneous materials. These are represented by their electrical properties such as permittivity e and electric conductivity s. More complex scenes may involve a multilayer ground or multilayer building walls. In such cases, one can no longer use the simple reflection or transmission coefficient formulas for homogeneous medium interfaces. EM.Cube calculates the reflection and transmission coefficients of multilayer structures as functions of incident angle, frequency and polarization and uses them at the respective specular points.  &lt;br /&gt;
&lt;br /&gt;
=== Limitations of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
It is very important to keep in mind that SBR is an asymptotic electromagnetic analysis technique that is based on Geometrical Optics (GO) and the Uniform Theory of Diffraction (UTD). It is not a &amp;amp;quot;full-wave&amp;amp;quot; technique, and it does not solve Maxwell's equations directly or numerically. SBR makes a number of assumptions, chief among them, a very high operational frequency such that the length scales involved are much larger than the operating wavelength. Under this assumed regime, electromagnetic waves start to behave like optical rays. Virtually all the calculations in SBR are based on far field approximations. &lt;br /&gt;
&lt;br /&gt;
In order to maintain a high computational speed for urban propagation problems, EM.Cube's SBR solver ignores double diffractions. Recall that diffractions from edges give rise to a large number of new secondary rays. The power of diffracted rays drops much faster than reflected rays. EM.Cube ignores diffracted rays that are not detected by any receiver. In other words, an edge-diffracted ray does not diffract again from another edge. However, reflected and penetrated rays do get diffracted from edges just as rays emanated directly from the sources do.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Propagation Scene ==&lt;br /&gt;
&lt;br /&gt;
An EM.Cube propagation scene typically consists of several elements. At a minimum, you need a transmitter (Tx) at some location to launch rays into the scene and a receiver (Rx) at another location to receive and collect the incoming rays. A transmitter and a receiver together make the simplest propagation scene, representing a free-space line-of-sight (LOS) channel. A transmitter is one of EM.Cube's several source types, while a receiver is one of EM.Cube's several observable types. A simpler source type is a Hertzian dipole. A simpler observable is a field sensor that is used to compute the electric and magnetic fields on a specified plane.&lt;br /&gt;
&lt;br /&gt;
An outdoor propagation scene may involve several buildings (modeled as impenetrable surfaces) and an underlying flat ground or irregular terrain surface. An indoor propagation scene may involve several walls (modeled as thin penetrable surfaces), a ceiling and a floor arranged according to a certain floor plan. You can also build mixed scenes involving both impenetrable and penetrable blocks, possibly along with irregular terrain surfaces. Your sources and observables can be placed anywhere in the scene. Your transmitters and receivers can be placed outdoors or indoors. A complete list of the various elements of a propagation scene is given in the '''Physical Structure''' section of [[Propagation Module]]'s Navigation Tree as follows:&lt;br /&gt;
&lt;br /&gt;
* Impenetrable Surfaces&lt;br /&gt;
* Penetrable Surfaces&lt;br /&gt;
* Terrain Surfaces&lt;br /&gt;
* Base Points&lt;br /&gt;
&lt;br /&gt;
Impenetrable, penetrable and terrain surfaces all obstruct the propagation of electromagnetic waves (rays) in the free space. What differentiates them is the types of physical phenomena that are used to model their interaction with the impinging rays. Base points are simply used to define transmitter and receiver locations in the scene. The following sections of this manual will describe each of these elements in detail.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Navigation Tree of EM.Cube's [[Propagation Module]].&lt;br /&gt;
&lt;br /&gt;
=== The Various Types Of Surfaces &amp;amp;amp; Blocks ===&lt;br /&gt;
&lt;br /&gt;
In a SBR simulation, the propagating rays hit the surface of building structures, walls, terrain (or global ground) and bounce back into the scene (reflection). Some rays penetrate thin walls or other penetrable surfaces and continue their path on the other side of the surface (transmission). The field intensity, phase and power of the reflected and transmitted rays depend on the material properties of the obstructing surface. The specular surface can be modeled as a simple homogeneous dielectric half-space or as a multilayer structure. In that respect, the buildings, walls, terrain or even the global ground all behave in a similar way:&lt;br /&gt;
&lt;br /&gt;
* They terminate an impinging ray and replace it with one or more new rays.&lt;br /&gt;
* They represent a specular interface between two media of different material compositions for calculating the reflection, transmission and possibly diffraction coefficients.&lt;br /&gt;
&lt;br /&gt;
EM.Cube has generalized the concept of '''Block''' as any object that obstructs and affects radio wave propagation. Rays hit the facets of a block and bounce off the surface of those facets or penetrate them and continue their propagation. Rays also get diffracted off the edges of these blocks. In EM.Cube's [[Propagation Module]], blocks are grouped together by the type of their interaction with rays. EM.Cube currently offers three types of blocks for use in a propagation scene:&lt;br /&gt;
&lt;br /&gt;
# '''Impenetrable Surfaces:''' Rays hit the facets of this type of blocks and bounce back, but they do not penetrate the object. It is assumed that the interior of such blocks or buildings are highly absorptive.&lt;br /&gt;
# '''Penetrable Surfaces:''' These blocks represent thin surfaces that are used to model the exterior and interior walls of buildings based on the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;. Rays reflect off the surface of penetrable surfaces and diffract off their edges. They also penetrate such thin surfaces and continue their paths on the other side of the wall.&lt;br /&gt;
# '''Terrain Surfaces:''' These blocks are used to provide one or more impenetrable, ground surfaces for the propagation scene. Rays simply bounce off terrain objects. The global ground acts as a flat super-terrain that covers the bottom of the entire computational domain. &lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to define block groups of each of the above three types. Each block group has the same color or texture and its members share the same material properties: permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and conductivity &amp;amp;sigma;. Also, all the penetrable surfaces belonging to the same block group have the same wall thickness. You can define many different block groups with certain properties and underneath each introduce many member objects with different geometrical shapes and dimensions. The table below summarizes the characteristics of each block type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Block Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Physical Effects&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Admissible Object Types&lt;br /&gt;
|-&lt;br /&gt;
| Impenetrable Surface&lt;br /&gt;
| Reflection, Diffraction&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Penetrable Surface&lt;br /&gt;
| Reflection, Diffraction, Transmission&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Terrain Surface&lt;br /&gt;
| Reflection&lt;br /&gt;
| Tessellated Objects Only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Impenetrable Surfaces For Outdoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(2).png|thumb|200px|[[Propagation Module]]'s Impenetrable Surface dialog]]   &lt;br /&gt;
&lt;br /&gt;
In outdoor propagation scenes such as &amp;amp;quot;Urban Canyons&amp;amp;quot;, you are primarily interested in the wireless coverage in the areas among buildings. You can assume that rays bounce off the exterior walls of these buildings but do not penetrate them. In other words, you ignore the transmitted rays and assume that they are either absorbed or diffused inside the buildings. This is not an unrealistic assumption. EM.Cube offers &amp;amp;quot;Impenetrable Blocks&amp;amp;quot; to model buildings in outdoor propagation scenes. A penetrable block has a color or texture property as well as material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and conductivity (s). By default, a brick building is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m. Impinging rays are reflected from the facets of impenetrable buildings or diffracted from their edges.&lt;br /&gt;
&lt;br /&gt;
To define a new impenetrable block group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on either the '''Impenetrable Surfaces''' item of the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the block properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the block group and select a color or texture.&lt;br /&gt;
# The electromagnetic model that determines ray-block interaction is selected under '''Specular Interface Type'''. Two options are available: '''Standard Material''' or '''User Defined Model'''. The former is the default choice and requires material properties, '''Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity''' (&amp;amp;sigma;), which are set to &amp;amp;quot;Brick&amp;amp;quot; by default. No magnetic properties are allowed for blocks.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Under an impenetrable block group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of an impenetrable surface. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. In this dialog, you can change the name of the material and its permittivity and electric conductivity. The box labeled &amp;amp;quot;Specify Loss Tangent&amp;amp;quot; is unchecked by default. If you check it, you can specify the '''Loss Tangent''' of the material, which, in turn, updates the value of electric conductivity at the center frequency of the project. You can also use EM.Cube's Material List, which will  be explained later.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to impenetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
=== Penetrable Surfaces For Indoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
A typical indoor propagation scene usually involves an arrangement of walls that represent the interior of a building. The transmitters and receivers are then placed in the spaces among such walls. From the point of view of EM.Cube's SBR simulator, walls act like thin penetrable surfaces. EM.Cube uses the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot; to model penetrable surfaces. It assumes that rays simply penetrate a wall and exit at the same specular point on the opposite side of the wall. In other words, rays are not displaced by the walls, nor do they get trapped inside the walls (no internal reflection). This is equivalent to assuming a zero thickness for penetrable surfaces for the purpose of geometrical ray tracing, while the finite thickness of the &amp;amp;quot;thin&amp;amp;quot; surface is used for electromagnetic calculation of transmission coefficient. EM.Cube offers &amp;amp;quot;Penetrable Surface Blocks&amp;amp;quot; for the construction of rooms in indoor propagation scenes as well as modeling of hollow buildings and other structures. You can define many penetrable surface groups with arbitrary thicknesses and material properties (color, texture, permittivity and electric conductivity).&lt;br /&gt;
&lt;br /&gt;
To define a new penetrable surface group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on one of the '''Penetrable Surfaces''' item in the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the wall properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the surface group and select a color or texture.&lt;br /&gt;
# The properties of a penetrable surface are identical to those of an impenetrable surface, plus an additional thickness property.&lt;br /&gt;
# By default, a brick wall with a thickness of 0.5 units is assumed. You can change the '''Thickness''' of the penetrable surface as well as its '''Permittivity'''  &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and '''Electric Conductivity''' &amp;amp;sigma;.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Penetrable Surface dialog.&lt;br /&gt;
&lt;br /&gt;
Under a penetrable surface group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of a penetrable surface group including its default thickness. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. Similar to the case of impenetrable surfaces, from this dialog, you can change the material properties (permittivity and electric conductivity) as well as '''Thickness''', which is expressed in the project units. You can also use EM.Cube's Material List, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to penetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
You can construct several thin walls and arrange them as rooms. A regular room can be built by placing four vertical wall objects together with an optional horizontal wall at the top for the ceiling. Alternatively, you may use EM.Cube's hollow box objects or boxes with one or two capped end(s).  '''Keep in mind that all the penetrable surfaces belonging to a group have the same wall thickness, which is initially set to 0.5 project units by default. Also, note that solid CAD objects belonging to a penetrable surface group are treated as air-filled hollow structures.''' The thickness of penetrable surfaces is implied and not visualized when displaying objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Computational Domain &amp;amp;amp; Global Ground ===&lt;br /&gt;
&lt;br /&gt;
The SBR simulation engine requires a finite computational domain. All the stray rays that hit the boundaries of this finite domain are terminated during the simulation process. Such rays exit the computational domain and travel to the infinity, with no chance of ever reaching any receiver in the scene. When you define a propagation scene with various elements like buildings, walls, terrain, etc., a dynamic domain is automatically established and displayed as a wireframe box with green lines that surrounds the entire scene. Every time you create a new object, the domain is automatically adjusted and extended to enclose all the objects in the scene. You can change the size and color of the domain box through the Ray Domain Settings Dialog, which can be accessed in one of the following three ways:&lt;br /&gt;
&lt;br /&gt;
# Click the '''Domain''' [[File:image025.jpg]] button of the Simulation Toolbar.&lt;br /&gt;
# Select the '''Simulate''' &amp;amp;gt; '''Computational Domain''' &amp;amp;gt; '''Settings...''' item of the Simulate Menu.&lt;br /&gt;
# Right click on the '''Ray Domain''' item of the Navigation Tree and select '''Domain Settings...'''&lt;br /&gt;
# Use the keyboard shortcut '''Ctrl + A'''.&lt;br /&gt;
&lt;br /&gt;
The size of the Ray domain is specified in terms of six '''Offset''' parameters along the ±X, ±Y and ±Z directions. The default value of all these six offset parameters is 10 project units. You can change them arbitrarily. After changing these values, use the '''Apply''' button to make the changes effective while the dialog is still open.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Most outdoor and indoor propagation scenes include a flat ground at their bottom, which bounces incident rays back into the scene. EM.Cube's [[Propagation Module]] provides a global flat ground at z = 0. The global ground indeed acts as an impenetrable surface that blocks the entire computational domain from the z = 0 plane downward. It is displayed as a translucent green plane at z = 0 extending downward. The color of the ground plane is always the same as the color of the ray domain. The global ground is assumed to be made of a homogeneous dielectric material with a specified permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma;. By default, a rocky ground is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m. You can remove the global ground, in which case, you will have a free space scene. To disable the global ground, open up the Global Ground Settings Dialog, which can be accessed by right clicking on the '''Global Ground''' item in the Navigation Tree and selecting '''Global Ground Settings... '''Remove the check mark from the box labeled '''&amp;amp;quot;Include Half-Space Ground (z&amp;amp;lt;0)&amp;amp;quot;''' to disable the global ground. This will also remove the green translucent plane from the bottom of your scene. You can also change the material properties of the global ground and set new values for the permittivity and electric conductivity of the impenetrable, half-space, dielectric medium. '''Do not forget to disable the global ground if you want to model a free space propagation scene.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PROP4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s Global Ground Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Surfaces vs. Global Ground ===&lt;br /&gt;
&lt;br /&gt;
A terrain surface acts as a custom, unlevel or irregular ground for your propagation scene. EM.Cube's default global ground blocks the z &amp;amp;lt; 0 half-space everywhere in the computational domain. You can simply turn off the global ground and create one or more terrain objects and place them arbitrarily in the scene. You can also import an external terrain model or file. A terrain represents an impenetrable surface with a more complex surface profile. You can have one or more terrain objects of finite extents and place them on or above the global ground.&lt;br /&gt;
&lt;br /&gt;
Terrain objects have some important differences with objects of the &amp;amp;quot;Impenetrable Surface&amp;amp;quot; type:&lt;br /&gt;
&lt;br /&gt;
# While impenetrable blocks can be created using any of EM.Cube's solid or surface CAD object creation tools, terrain objects are created either using EM.Cube's '''Terrain Generator''' or by importing an external terrain file. &lt;br /&gt;
# Terrain objects belong to a special type of CAD objects called &amp;amp;quot;Tessellated Objects&amp;amp;quot;, which differ from other regular CAD [[Surface Objects|surface objects]] or EM.Cube's polymesh surfaces.&lt;br /&gt;
# Terrain surfaces do not diffract impinging rays at their many small edges.&lt;br /&gt;
# Terrain objects affect the elevation of other objects or transmitters or receivers that are located above them.&lt;br /&gt;
&lt;br /&gt;
Just as other blocks are grouped by their color, texture and material composition, terrain objects are also grouped in a similar fashion. Before you can generate or import a new terrain object, first you have to define a terrain group and specify its color/texture and material properties. To define a new terrain group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Terrain''' item in the Navigation Tree and select '''Insert New Terrain...''' A dialog for setting up the terrain properties opens up offering a of preloaded material type (Rock) with predefined green color and no texture.&lt;br /&gt;
* Specify a name for the terrain group and select a color or texture.&lt;br /&gt;
* Similar to other blocks, you have to specify the material properties, Permittivity (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and Electric Conductivity (&amp;amp;sigma;), of the terrain group. Rock with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m is the default material choice for a new terrain.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Terrain dialog.&lt;br /&gt;
&lt;br /&gt;
You can change the properties of a terrain surface group from its property dialog. Click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog, which is identical to the case of impenetrable surfaces. You can also use EM.Cube's Material List, which will be explained later. When a new terrain type is created, its node on the Navigation Tree becomes active. Under this node you can create and add new terrain objects. When a terrain node is active for drawing, all CAD object creation tools are disabled. You have three options for creating a new terrain object, which will be described in detail in the next sections of this manual:&lt;br /&gt;
&lt;br /&gt;
# Use EM.Cube's '''Terrain Generator'''.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.TRN'''&amp;amp;quot; type.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.DEM'''&amp;amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
=== Using Terrain Generator ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18.png|thumb|250px|[[Propagation Module]]'s Terrain Generator dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides a convenient and powerful Terrain Generator for creating a variety of terrain [[Surface Objects|surface objects]]. EM.Cube's Terrain Generator looks very similar to [[CubeCAD]]'s Surface Generator. However, whereas the Surface Generator creates a generic or polymesh surface object, Terrain Generator always creates another special type of object known as a '''Tessellated Object'''. A terrain object is much simpler than EM.Cube's polymesh objects and is usually made up of triangular or quadrilateral facets. As such, terrain objects have limited editing capabilities. For example, you can cut, copy, paste, translate or rotate  terrain objects. But operations like scaling, mirroring, grouping (composite), arraying, exploding, linking or Boolean operations do not work on terrain objects.&lt;br /&gt;
&lt;br /&gt;
To create a new terrain object using Terrain Generator, first you need to define a terrain group in the Navigation Tree. Right click on the name of the terrain node and select '''Terrain Generator...''' from the contextual menu. This opens up the Terrain Generator Dialog. Using Terrain Generator, you can build a single terrain surface or an array of surfaces patched together. Some of the available terrain models include:&lt;br /&gt;
&lt;br /&gt;
# Flat Plane&lt;br /&gt;
# Hill (Elliptic Quadratic)&lt;br /&gt;
# Mountain (Elliptic Cone)&lt;br /&gt;
# 1-D and 2-D Cliff&lt;br /&gt;
# Gaussian Hump&lt;br /&gt;
# Undulated Sinusoid&lt;br /&gt;
# Undulated Sinc&lt;br /&gt;
# Super-quadratic Plateau&lt;br /&gt;
# Custom Function&lt;br /&gt;
# XY Grid Data&lt;br /&gt;
&lt;br /&gt;
In all of the above models, you can set the height of the surface object to an any desired value. You set the lateral extents of the surface and its resolution along the X and Y directions in the boxes labeled '''Range Start''', '''Range Stop''' and '''Range Step'''. The step values along the X and Y directions are a measure of surface smoothness: the smaller the step values, the higher the resolution and the smoother the resulting terrain object.&lt;br /&gt;
&lt;br /&gt;
Some surface types have an additional shape factor called '''Alpha''' that is identical to the alpha parameter in the surface generator. For example, a Gaussian Hump is defined as exp(-r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/(2a&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)), where r is the polar radius. For a Super-quadratic Hump, the input parameter a defines the degree of the super-quadratic surface. a = 2 corresponds to an ellipsoid. Larger values of a get close to a rectangular base with rounded corners. An undulated sinusoidal surface is defined by cos(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*cos(pay/D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;), and an undulated sinc is defined by D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;*D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;*sin(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*sin(pay/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/(2pxy), where D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; are the X and Y dimensions, respectively. Terrain Generator creates a unit cell based on the specified surface type. From the same dialog, you can also produce an array arrangement of such unit cells. Simply enter any number of elements along the X and Y directions in the boxes labeled '''Array'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP19.png|800px]]  &lt;br /&gt;
&lt;br /&gt;
Figure: A 4 × 4 array of hill terrain objects.&lt;br /&gt;
&lt;br /&gt;
You can define any arbitrary surface by entering an equation of the two [[variables]] x and y as z = f(x,y). In this case, you have to select the '''Custom Function''' option in the dropdown list labeled '''Model'''. You should enter your equation as any mathematical expression in the box labeled '''Function f(x,y)'''. You can use any of EM.Cube's mathematical functions listed in the '''Function Dialog''' or combine several of them. Note that after selecting the custom function option, the height of the surface is determined by your equation, and the '''Height''' box is disabled. You can also introduce random noise and create a rough terrain. You can do this by setting a nonzero value for '''Noise''', which represent the RMS peak-to-valley amplitude of the surface roughness. The figures below show two custom terrain surfaces modeled by the equation z = (x.y)/20 defined over the range [0, 10] in both X and Y directions. Random noise has been added to both surfaces, with the noise amplitude being 0.2 and 0.5 for the left and right figures, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP21.png|400px]] [[File:PROP20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Two noisy custom terrain surfaces both defined as z = (x.y)/20: (Left) RMS noise amplitude = 0.2, (right) RMS noise amplitude = 0.5.&lt;br /&gt;
&lt;br /&gt;
=== Generating Grid-Based Terrain ===&lt;br /&gt;
&lt;br /&gt;
Every time you create a new terrain object using Terrain Generator, an ASCII data file named &amp;amp;quot;GeneratedTerrain&amp;amp;quot; with a &amp;amp;quot;'''.TRN'''&amp;amp;quot; file extension is created and placed in your project folder. This is EM.Cube's simple native terrain file format that basically lists all the (x, y, z) coordinates of the generated surface points on a horizontal, rectangular XY grid. Terrain Generator simply takes your custom function definition or one of the selected catalog surface types and generates the digital elevation data on the specified grid.  &lt;br /&gt;
&lt;br /&gt;
Another type of terrain model that the terrain generator provides is '''XY Grid Data'''. In this case, you define a rectangular XY grid with a uniform grid cell size along the X and Y directions and manually define the Z-elevation for each grid point. This is similar to the surface generator's &amp;amp;quot;2D Uniform Grid&amp;amp;quot; model type in [[CubeCAD]]. Based on your input to '''Range Start''', '''Range Stop''' and '''Range Step''' along X and Y, a 2D grid is set up and displayed in a table at the bottom of the terrain generator dialog. By default, all the Z-elevations are set to zero initially. You can click on each table cell and overwrite it with a new value. At the end, click the '''Create''' button of the dialog to add the new grid-based terrain object to the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:terrain10_tn.png]]&lt;br /&gt;
&lt;br /&gt;
A grid-based terrain object.&lt;br /&gt;
&lt;br /&gt;
=== Importing &amp;amp;amp; Exporting Terrain Models ===&lt;br /&gt;
&lt;br /&gt;
You can import two types of terrain in EM.Cube's [[Propagation Module]]. The first type is &amp;amp;quot;'''.TRN&amp;amp;quot;''' terrain file, which is EM.Cube's native terrain format. It is a basic digital elevation map with a very simple ASCII data file format. The resolution of the terrain map in the X and Y directions is specified in meters as STEPS. The (x, y, z) coordinates of the terrain points are then listed one point per line. The other type of terrain format supported by EM.Cube is the standard '''7.5min DEM''' file format with a '''.DEM''' file extension. &lt;br /&gt;
&lt;br /&gt;
To import an external terrain model, first you have to create a terrain group node in the Navigation Tree. Right click on the name of the terrain group in the Navigation Tree and select either '''Import Terrain...''' or '''Import DEM File...''' A standard Windows '''Open Dialog''' opens up, with the file type set to .TRN or .DEM extensions, respectively. You can browse your folders and find the right terrain model file to import.&lt;br /&gt;
&lt;br /&gt;
You can also export all the terrain objects in the project workspace as a terrain file with a '''.TRN''' file extension. You can even import a DEM terrain model from an external file and then save and export it as a native terrain (.TRN) file. To export the terrain, select '''File''' &amp;amp;gt; '''Export...''' from [[Propagation Module]]'s '''File Menu'''. The standard Windows Save Dialog opens up with the default file type set to '''.TRN'''. Type in a name for your new terrain file and click the '''Save''' button to export the terrain data.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-12_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figur: An imported external terrain model.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Surface Models ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP26.png|thumb|250px|Propagation Module's Penetrable Surface Dialog showing a three-layer wall composition]]&lt;br /&gt;
&lt;br /&gt;
Most of the time, your outdoor propagation scene consists of simple buildings made of single-layer walls with standard material properties (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;). In the case of a single-layer impenetrable surface, the specular interface is an infinite dielectric half-space, which reflects the impinging rays. Single-layer penetrable surfaces, on the other hand, involve finite-thickness dielectric walls, which both reflect and transmit the incident rays. Similarly, most of your indoor propagation scenes involve simple single-layer penetrable walls with the specified material properties &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. A thin wall acts like a finite-thickness dielectric slab that both reflects and transmits incident rays. In the case of the global ground or terrain objects, only ray reflection off the ground surface is considered.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[Propagation Module]], you can define multilayer surfaces with both reflection and transmission properties. You can define multilayer impenetrable buildings, multilayer penetrable walls, and multilayer terrain, with an arbitrary number of layers having different material compositions. You define a multilayer surface in the property dialog of a block, whether impenetrable, penetrable or terrain. In the section entitled '''Surface Type''', two options are available: '''Standard Material''' or '''User Defined Model'''. For simple multilayer walls, select the '''Standard Material''' option. You can add new layers with arbitrary thickness and material parameters to the existing layers. To insert a new layer, deselect any items in the layer list, and click the '''Add/Edit''' button to open the &amp;amp;quot;Add Layer&amp;amp;quot; Dialog. Here you can enter a name for the new layer and values for its '''Thickness''', &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. You may also delete any layer by selecting and highlighting it and clicking the '''Delete''' button. You can move layers up or down using the '''Move Up''' and '''Move Down''' buttons and change the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
You can also search EM.Cube's material database by clicking the '''Material''' button of &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. This opens the '''Materials''' Dialog. Inside the material list select and highlight any row and click the '''OK''' button. The selected material will fill out all the fields in the &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. Inside the Materials Dialog, you can type the few first letters of any material, and it will take you to the corresponding row of the list.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Transferring Objects From Or To Other Modules ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube's [[Propagation Module]] and draw a solid object like a box in the project workspace without having defined any surface groups, it is assumed to be of the impenetrable surface type. A default impenetrable surface group called Block_1 is automatically added to the Navigation Tree, which holds your newly drawn object. The default group has the material properties of &amp;amp;quot;Brick&amp;amp;quot; (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m.) with a dark brown color. You can continue drawing new objects in the project workspace and adding them under this block node. Or you can define a new surface type with different properties. By default, the last surface group that was defined is '''Active'''. The current active surface group is always listed in bold letters in the Navigation Tree. When you draw a new object, it is always inserted under the current active surface group. Any surface group can be activated by right clicking its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move any object from its current surface group into any other available surface group. First select the object, then right click on its surface and select '''MoveTo &amp;amp;gt; Propagation &amp;amp;gt;'''. A submenu appears which lists all the available surface groups where you can transfer the selected object. You can also move objects among surface groups by selecting their names in the Navigation Tree and using the contextual menu. In a similar way, you can transfer objects from [[Propagation Module]] to EM.Cube's other modules or vice versa. '''Keep in mind that all the external model files such as STEP, IGES, STL, etc. are first imported to EM.Cube's [[CubeCAD]], from which you can transfer them to other modules.''' First select the object, then right click and select '''MoveTo &amp;amp;gt;'''. In the submenu you will see a list of all the EM.Cube modules that have at least one available group where you can transfer your selected object. You can select multiple objects for transfer. When using the keyboard's '''Shift Key''' or '''Ctrl Key''' for multiple selection, make sure that those keys are held down, when you right click to access the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Defining Sources &amp;amp;amp; Observables ==&lt;br /&gt;
&lt;br /&gt;
Like every other electromagnetic solver, EM.Cube's SBR ray tracer requires a source for excitation and one or more observables for generation of simulation data. EM.Cube's new [[Propagation Module]] offers several types of sources and observables for a SBR simulation. You can mix and match different source types and observable types depending on the requirements of your modeling problem. There are two types of sources:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Transmitter Sets|Transmitter]]&lt;br /&gt;
* [[#Hertzian Dipole Sources|Hertzian Dipole]]&lt;br /&gt;
&lt;br /&gt;
There are four types of observables:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Receiver Sets|Receivers]]&lt;br /&gt;
* [[#Defining Field Sensors|Field Sensor]]&lt;br /&gt;
* Far Fields&lt;br /&gt;
* Huygens Surface&lt;br /&gt;
&lt;br /&gt;
The simplest SBR simulation can be performed using a short dipole source with a specified field sensor plane. In this way, EM.Cube computes the electric and magnetic fields radiated by your dipole source in the presence of your multipath propagation environment. A &amp;amp;quot;classic&amp;amp;quot; urban propagation scene can be set up using a &amp;amp;quot;Transmitter&amp;amp;quot; source and an array of &amp;amp;quot;Receiver&amp;amp;quot; observables. A transmitter is a point radiator with a user defined radiation pattern. A receiver is a polarization-matched isotropic point radiator that collects the received rays at its aperture. Using receivers, you can calculate the received power coverage map of your propagation scene. You can also calculate your channel's path loss between the transmitter and all the receivers. &amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18(1).png|thumb|[[Propagation Module]]'s Transmitter dialog with a short dipole radiator selected]]&lt;br /&gt;
Earlier versions of EM.Cube's [[Propagation Module]] used to offer an isotropic radiator with vertical or horizontal polarization as the simplest transmitter type. This release of EM.Cube has abandoned isotropic radiator transmitters because they do not exist physically in a real world. Instead, the default transmitter radiator type is now a Hertzian dipole. Note that before defining a transmitter, first you have to define a base set to establish the location of the transmitter. Most simulation scenes involve only a single transmitter. Your base set can be made up of a single point for this purpose. &lt;br /&gt;
&lt;br /&gt;
To define a new Transmitter Set, go to the '''Sources''' section of the Navigation Tree, right click on the '''Transmitters''' item and select '''Insert Transmitter...''' A dialog opens up that contains a default name for the new Transmitter Set as well as a dropdown list labeled '''Select Base Set'''. In this list you will see all the available base sets already defined in the project workspace. Select the desired base set to associate with the transmitter set. Note that if the base set contains more than one point, then more than one transmitter will be created and contained in your transmitter set. After defining a transmitter set, the base points change their color to the transmitter color, which is red by default.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Radiator&amp;amp;quot; section of the dialog, you have two options to choose from: &amp;amp;quot;Short Dipole&amp;amp;quot; and &amp;amp;quot;User Defined&amp;amp;quot;. The default option is short dipole. A short dipole radiator has a '''Length'''''dl'' expressed in project units, a current '''Amplitude''' in Amperes and a current '''Phase''' in degrees. The '''Direction''' of the dipole is determined by its unit vector that has three X, Y and Z components. By default, a Z-directed short dipole radiator is assumed. You can change all parameters of the dipole as you wish. Keep in mind that all the transmitters belonging to the same set have parallel radiators with identical properties.&lt;br /&gt;
&lt;br /&gt;
=== Defining Base Point Sets ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP1.png|thumb|[[Propagation Module]]'s Base Set dialog]]&lt;br /&gt;
In order to tie up transmitters and receivers with CAD objects in the project workspace, EM.Cube uses point objects to define transmitters and receivers. These point objects represent the base of the location of transmitters and receivers in the computational domain. Hence, they are grouped together as &amp;amp;quot;Base Sets&amp;amp;quot;. You can easily interchange the role of transmitters and receivers in a scene by switching their associated bases. The usefulness of concept of base sets will become apparent later when you place transmitters or receivers on an irregular terrain and adjust their elevation.   &lt;br /&gt;
&lt;br /&gt;
To create a new base set, right click on the '''Base Sets''' item of Navigation Tree and select '''Insert Base Set...''' A dialog for setting up the Base Set properties opens up.&lt;br /&gt;
&lt;br /&gt;
# Enter a name for the base set and change the default blue color if you wish. It is useful to differentiate the base sets associated with transmitters and receivers by their color.&lt;br /&gt;
# Click the '''OK''' button to close the Base Set Dialog.&lt;br /&gt;
&lt;br /&gt;
Once a base set node has been added to the Navigation Tree, it becomes the active node for new object drawing. Under base sets, you can only draw point objects. All other object creation tools are disabled. A point is initially drawn on the XY plane. Make sure to change the Z-coordinate of your radiator, otherwise, it will fall on the global ground at z = 0. You can also create arrays of base points under the same base set. This is particularly useful for setting up receiver grids to compute coverage maps. Simply select a point object and click the '''Array Tool''' of '''Tools Toolbar''' or use the keyboard shortcut &amp;amp;quot;A&amp;amp;quot;. Enter values for the X, Y or Z spacing as well as the number of elements along these three directions in the Array Dialog. In most propagation scenes you are interested in 2D horizontal arrays along a fixed Z coordinate (parallel to the XY plane).&lt;br /&gt;
&lt;br /&gt;
=== Defining Transmitter Sets ===&lt;br /&gt;
&lt;br /&gt;
A short dipole is the closest thing to an omni-directional radiator. The direction or orientation of the short dipole determines its polarization. In many applications, you may rather want to use a directional antenna for your transmitter. You can model a radiating structure using EM.Cube's FDTD, Planar, MoM3D or PO modules and generate a 3D radiation pattern data file for it. These data are stored in a specially formatted file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension, which contains columns of spherical &amp;amp;phi; and &amp;amp;theta; angles as well as the real and imaginary parts of the complex-valued far field components '''E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;''' and '''E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;'''. The &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field determine the polarization of the transmitting radiator. &lt;br /&gt;
&lt;br /&gt;
To define a directional transmitter radiator, you need to select the &amp;amp;quot;User Defined&amp;amp;quot; option in the &amp;amp;quot;Radiator&amp;amp;quot; section of the Transmitter Dialog. You can do this either at the time of creating a transmitter set, or afterwards by opening the property dialog of the transmitter set. In the &amp;amp;quot;Custom Pattern Parameters&amp;amp;quot;, click the '''Import Pattern''' button to set the path for the radiation data file. This opens up the standard Windows Open dialog, with the default file type or extension set to &amp;amp;quot;.RAD&amp;amp;quot;. Browse your folders to find the right data file. A radiation pattern file usually contains the value of &amp;amp;quot;Total Radiated Power&amp;amp;quot; in its file header. This is used by default for power calculations in the SBR simulation. However, you can check the box labeled &amp;amp;quot;'''Custom Power'''&amp;amp;quot; and enter a value for the transmitter power in Watts. EM.Cube can also rotate the imported radiation pattern arbitrarily. In this case, you need to specify the '''Rotation''' angles in degrees about the X-, Y- and Z-axes. Note that these rotations are performed sequentially and in order: first a rotation about the X-axis, then a rotation about the Y-axis, and finally a rotation about the Z-axis. &lt;br /&gt;
&lt;br /&gt;
[[File:PROP19(1).png]] [[File:PROP20(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Transmitter dialog with a user defined radiator selected.&lt;br /&gt;
&lt;br /&gt;
=== Multiple Transmitters vs. Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulations are fully coherent and 3D-polarimetric. This means that the phase and polarization of all the rays are maintained and processed during their bounces in the scene. Your propagation scene can have more than one transmitter. During an SBR simulation, all the rays emanating from all the transmitters are traced in the propagation scene. All the received rays at a given receiver location are summed coherently and vectorially. This is based on the principle of linear superposition. All the transmitters belonging to the same transmitter set have the same radiation properties. They are either parallel short dipole radiators with the same current amplitudes and phases, or parallel user defined radiators with identical radiation patterns. As these transmitters are placed at different spatial locations, they effectively form an antenna array with identical elements. The array factor is simply determined by the coordinates of the base points. If you want to have different amplitude or phases, then you need to define different transmitter sets.&lt;br /&gt;
&lt;br /&gt;
If that radiators are indeed the elements of an actual antenna array with a half wavelength spacing or so, we recommend that you import the radiation pattern of the array structure instead and replace the whole multi-radiator system with a single point transmitting radiator in your propagation scene. This case is usually encountered in MIMO systems, and using an equivalent point transmitter is an acceptable approximation because the total size of the array aperture is usually much smaller than the dimensions of your propagation scene and its representative length scales. In that case, you need to position the equivalent point radiator at the radiation center of the antenna array. This depends on the physical structure of the antenna array. However, keep in mind that any reasonable guess may still provide a good approximation without any significant error in the received ray data.    &lt;br /&gt;
&lt;br /&gt;
=== Defining Receiver Sets ===&lt;br /&gt;
&lt;br /&gt;
Receivers act as observables in a propagation scene. The objective of a SBR simulation is to calculate the far-zone electric fields and the total received power at the location of a receiver. In that sense, receivers indeed act as field observation points. You need to define at least one receiver in the scene before you can run a SBR simulation. You define the receivers of your scene by associating them with the base sets you have already defined in the project workspace. Unlike transmitters that usually one or few, a typical propagation scene may involve a large number of receivers. To generate a wireless coverage map, you need to define an array of points as your base set.    &lt;br /&gt;
&lt;br /&gt;
To define a new Receiver Set, go to the Observables section of the Navigation Tree, right click on the '''Receivers''' item and select '''Insert Receiver...''' A dialog opens up that contains a default name for the new Receiver Set as well as a dropdown list labeled '''Select Radiator Set'''. In this list you will see all the available base sets that you have already define in the project workspace. Select and designate the desired base set as the receiver set. Note that if the base set contains more than one point, all of them are designated as receivers. After defining a receiver set, the points change their color to the receiver color, which is yellow by default. The first element of the set is represented by a larger ball of the same color indicating that it is the selected receiver in the scene. The Receiver Set Dialog is also used to access individual receivers of the set for data visualization at the end of a simulation. At the end of an SBR simulation, the button labeled &amp;amp;quot;Show Ray Data&amp;amp;quot; becomes enabled. Clicking this button opens the Ray Data Dialog, where you can see a list of all the received rays at the selected receiver and their computed characteristics.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP21(1).png]] [[File:PROP22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Receiver dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Field Sensors ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|[[Propagation Module]]'s Field Sensor dialog]]&lt;br /&gt;
As an asymptotic electromagnetic field solver, the SBR simulation engine can compute the electric and magnetic field distributions in a specified plane. In order to view these field distributions, you must first define field sensor observables before running the SBR simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear. &lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.   &lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a SBR simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|E_{tot}|} = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|H_{tot}|} = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Computing Radiation Patterns In SBR ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
== Scene Discretization &amp;amp;amp; Adjustment ==&lt;br /&gt;
&lt;br /&gt;
=== The Need For Discretization Of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
In a typical SBR simulation, a ray is traced from the location of the source until it hits a scatterer. The SBR method assumes that the ray hits either a flat facet of the scatterer or one of its edges. In the case of hitting a flat facet, the specular point is used to launch new reflected and transmitted rays. The surface of the facet is treated as an infinite dielectric medium interface, at which the reflection and transmission coefficients are calculated. In the case of hitting an edge, new diffracted rays are generated in the scene. However, only those who reach a nearby receiver in their line of sight are ever taken into account. In other words, diffractions are treated locally.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to draw any type of surface or solid CAD objects under impenetrable and penetrable surface groups. Some of these objects have flat faces such as boxes, pyramids, rectangle or triangle strips, etc. Some others contain curved surfaces or curved boundaries such as cylinders, cones, etc. All the non-flat surfaces have to be discretized in the form of a collection of smaller flat facets. EM.Cube uses a triangular surface mesh generator to discretize the penetrable and impenetrable [[Surface Objects|surface objects]] of your propagation scene. This mesh generator is very similar to the ones used in EM.Cube's two other modules: MoM3D and Physical Optics (PO). &lt;br /&gt;
&lt;br /&gt;
You can build a variety of surface and [[Solid Objects|solid objects]] using EM.Cube's native &amp;amp;quot;Curve&amp;amp;quot; CAD objects like lines, polylines, circles, etc. You can use tools like Extrude, Loft, Strip-Sweep, Pipe-Sweep, etc. to transform curves into surface or [[Solid Objects|solid objects]]. '''However, keep in mind that all the &amp;amp;quot;Curve&amp;amp;quot; CAD objects are ignored by the SBR mesh generator and are therefore not sent to the simulation engine.'''&lt;br /&gt;
&lt;br /&gt;
=== Viewing SBR Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can view and examine the discretized version of your scene objects as they are sent to the SBR simulation engine. To view the mesh, click the '''Mesh''' [[File:mesh_tool.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''', or use the keyboard shortcut '''Ctrl+M'''. A triangular surface mesh of your physical structure appears in the project workspace. In this case, EM.Cube enters it mesh view mode. You can perform view operations like rotate view, pan, zoom, etc. But you cannot select objects, or move them or edit their properties. To get out of the Mesh View and return to EM.Cube's Normal View, press the '''Esc Key''' of the keyboard, or click the Mesh button of the Simulate Toolbar once again, or go to the Simulate Menu and deselect the '''Discretization &amp;amp;gt;''' '''Show Mesh''' item.&lt;br /&gt;
&lt;br /&gt;
You can adjust the mesh resolution and increase the geometric fidelity of discretization by creating more and finer triangular facets. On the other hand, you may want to reduce the mesh complexity and send to the SBR engine only a few coarse facets to model your buildings. To adjust the mesh resolution, open the Mesh Settings Dialog by clicking the '''Mesh Settings''' [[File:mesh_settings.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt;''' '''Mesh Settings...'''. This dialog provides a single parameters: '''Edge Length'''., which has a default value of 100 project units. If you are already in the Mesh View Mode and open the Mesh Settings Dialog, you can see the effect of changing the edge length using the '''Apply''' button. Click OK to close the dialog.&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules that express the default mesh density based on the wavelength, the resolution of the SBR mesh generator is expressed in project length units. The default edge length value of 100 units might be too large for non-flat objects. You may have to use a lower value to capture the curvature of your curved structures adequately. &lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-29.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Special Discretized Object Types ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, terrain objects are represented by and saved as special &amp;amp;quot;Tessellated&amp;amp;quot; objects with quadrilateral cells. This is true of terrain objects that you create yourself using EM.Cube's Terrain Generator as well as all the terrain objects that you import from external files to your project. The center of each cell represents the terrain elevation at that point. Tessellated objects are considered as discretized objects by EM.Cube and they are not meshed one more time by the SBR mesh generator. Each quadrilateral cell is divided into two triangular cells before being passed to the SBR simulation engine. Therefore, when using EM.Cube's Terrain Generator to create a new terrain object, you have to pay special attention to the resolution of the terrain object as it determines the total number of terrain facets sent to the simulation engine. A high resolution terrain, although looking better and more realistic, may easily lead to an enormous computational problem.&lt;br /&gt;
&lt;br /&gt;
You can use EM.Cube's &amp;amp;quot;Polymesh&amp;amp;quot; tool to discretize solid and surface CAD objects. You can manually control the mesh characteristics of polymesh objects including inserting new nodes on faces and edges or deleting existing nodes. In addition, EM.Cube's Solid Generator and Surface Generator tools create ploymesh solids and surfaces, respectively. Like tessellated object, polymesh objects are also considered as discretized objects by EM.Cube and they are not meshed again by the SBR mesh generator.   &lt;br /&gt;
&lt;br /&gt;
=== SBR Mesh Rules &amp;amp;amp; Considerations ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
=== Adjusting Block Elevation On Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, buildings and all other CAD objects are initially created on the XY plane by default. In other words, the Z-coordinate of the local coordinate system (LCS) of all blocks is set to zero until you change them. As long as you use the global ground, all is fine as your buildings are seated on the ground. When your propagation scene has an irregular terrain, you want to place your buildings on the terrain and not buried under it. Buildings in EM.Cube are not adjusted to the terrain elevation automatically. You need to instruct EM.Cube to do so.&lt;br /&gt;
&lt;br /&gt;
To update the building positions and adjust their elevation to the underlying terrain, right click on the '''Terrain''' item of the Navigation Tree and select '''Adjust Scene Elevation''' from the context menu. All the blocks in the scene are automatically elevated in the Z direction such that their bases sit on the terrain. In effect, all the blocks are translated along the global Z axis by proper amounts such that their local Z coordinate equals the Z-elevation of the underlying terrain object. This feature is particularly useful if you change the location of the terrain or import a new terrain after the blocks have been created.&lt;br /&gt;
&lt;br /&gt;
Note: You have to make sure that the resolution of your terrain, its fluctuation scale and building dimensions are all comparable. Otherwise, on a high-resolution, rapidly varying terrain, you will have buildings whose bottoms are in contact with the terrain only at a few points and parts of them hang in the air.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_adjust1_tn.png|400px]] [[File:prop_adjust2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Scene with Buildings and Terrain Before and After Adjusting Elevation&lt;br /&gt;
&lt;br /&gt;
=== Transmitters &amp;amp;amp; Receivers Above An Irregular Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, all the transmitters and receivers are tied up with point objects in the project workspace. These point objects are grouped and organized in base sets. When you move the point objects or change their coordinates, all of their associated transmitters or receivers immediately follow them to the new location. For example, you usually define a grid of receivers using a base set that is made up of a uniformly spaced array of points and spread them in your scene. All of these receivers have the same height because their associated base points all have the same Z-coordinate. When your receivers are located above a flat terrain like the global ground, their Z-coordinates are equal to their height above the ground, as the terrain elevation is fixed and equal to zero everywhere. The same is true for transmitters, too.   &lt;br /&gt;
&lt;br /&gt;
In many propagation modeling problems, your transmitters and receivers may be located above an irregular terrain with varying elevation across the scene. In that case, you may want to place your transmitters or receivers at a certain height above the underlying ground. The Z-coordinate of a transmitter or receiver is now the sum of the terrain elevation at the base point and the specified height. EM.Cube gives you the option to adjust the transmitter and receiver sets to the terrain elevation. This is done for individual transmitter sets and individual receiver sets. At the top of the Transmitter Dialog there is a check box labeled &amp;amp;quot;'''Adjust Tx Sets to Terrain Elevation'''&amp;amp;quot;. Similarly, at the top of the Receiver Dialog there is a check box labeled &amp;amp;quot;'''Adjust Rx Sets to Terrain Elevation'''&amp;amp;quot;. These boxes are unchecked by default. As a result, your transmitter sets or receiver sets coincide with their associated base points in the project workspace. If you check these boxes and place a transmitter set or a receiver set above an irregular terrain, the transmitters or receivers are elevated from the location of their associated base points by the amount of terrain elevation as can be seen in the figure below.   &lt;br /&gt;
&lt;br /&gt;
To better understand why there are two separate sets of points in the scene, note that a point array (CAD object) is used to create a uniformly spaced base set. The array object always preserves its grid topology as you move it around the scene. However, the transmitters or receivers associated with this point array object are elevated above the irregular terrain and no longer follow a strictly uniform grid. If you move the base set from its original position to a new location, the base points' topology will stay intact, while the associated transmitters or receivers will be redistributed above the terrain based on their new elevations.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_txrx1_tn.png|400px]] [[File:prop_txrx2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Transmitters and receivers adjusted above an uneven terrain and their associated base sets.&lt;br /&gt;
&lt;br /&gt;
== Running A SBR Simulation ==&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] offers three types of ray tracing simulations:&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
An SBR analysis is the simplest ray tracing simulation and involves the following steps:&lt;br /&gt;
&lt;br /&gt;
# Set the unit of project scene and the frequency of operation. Note that EM.Cube's default project unit is millimeter. When working with the [[Propagation Module]], pay attention to the project unit. Radio propagation problems usually require meter, mile or kilometer as the project unit.&lt;br /&gt;
# Create the blocks and draw the buildings at the desired locations.&lt;br /&gt;
# Keep the default ray domain and accept the default global ground or change its material properties.&lt;br /&gt;
# Define the base sets (at least one for the transmitter and one for the receiver).&lt;br /&gt;
# Define the transmitter and receiver(s) using the available base sets.&lt;br /&gt;
# Run the SBR simulation engine.&lt;br /&gt;
# Visualize the coverage map and plot other data.&lt;br /&gt;
&lt;br /&gt;
You can access the [[Propagation Module]]'s run dialog by clicking the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or by selecting '''Simulate &amp;amp;gt; Run...''' or using the keyboard shortcut '''Ctrl+R'''. When you click the '''Run''' button, a new window opens up that reports the different stages of the SBR simulation and indicates the progress of each stage. After the SBR simulation is successfully completed, a message pops up and prompts the completion of the process.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== SBR Simulation Parameters ===&lt;br /&gt;
&lt;br /&gt;
There are a number of SBR simulation settings that can be accessed and changed from the SBR Settings Dialog. To open this dialog, click the button labeled '''Settings''' on the right side of the '''Select Engine''' dropdown list in the Run Dialog. EM.Cube's SBR simulation engine allows you to separate the physical effects that are calculated during a ray tracing process. You can selectively enable or disable '''Ray Reflection''', '''Ray Transmission''' and '''Ray Diffraction'''. By default, all three effects are checked and included in the computations. Separating these effects sometimes help you better analyze your propagation scene and understand the impact of various blocks in the scene.&lt;br /&gt;
&lt;br /&gt;
EM.Cube requires a finite number of ray bounces for each original ray emanating from a transmitter. This is very important in situations that may involve resonance effects where rays get trapped among certain group of surfaces and may bounce back and forth indefinitely. This is set using the box labeled &amp;amp;quot;'''Max No. Ray Bounces'''&amp;amp;quot;, which has a default value of 10. Note that the maximum number of ray bounces directly affects the computation time as well as the size of output simulation data files. This can become critical for indoor propagation scenes, where most of the rays undergo a large number of reflections.   &lt;br /&gt;
&lt;br /&gt;
As rays travel in the scene and bounce from surfaces, they lose their power and their amplitudes diminish. From a practical point of view, only rays that have power above the receiver sensitivity threshold can be effectively received. Therefore, all the rays whose power fall below a specified power threshold are discarded. The '''Ray Power Threshold''' is specified in dBm and has a default value of -100dBm. Keep in mind that the value of this threshold directly affects the accuracy of the simulation results as well as the size of the output data file.&lt;br /&gt;
&lt;br /&gt;
You can also set the '''Angular Resolution''' of the transmitter rays in degrees. By default, every transmitter emanates equi-angular ray tubes at a resolution of 1 degree. Lower angular resolutions larger than 1° speed up the SBR simulation significantly, but they may compromise the accuracy. Higher angular resolutions less than 1° increase the accuracy of the simulating results, but they also increase the computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP13.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s SBR Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== The Coverage Map ===&lt;br /&gt;
&lt;br /&gt;
If the associated radiator set is isotropic, so will be the transmitter set. By default, an isotropic transmitter has vertical polarization. You can use the '''Polarization''' radio button to select one of the two options: '''Vertical''' or '''Horizontal'''. If the associated radiator set consists of '''Short Dipole''' or '''User Defined''' radiators, it is indicated in the transmitter property dialog. In the case of a short dipole radiator, you can set a value for the dipole current in Amperes. The radiation resistance of a short dipole of length ''dl'' is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; R_r = 80\pi^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:eqngr6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The radiated power of a short dipole carrying a current I&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; P_{rad} = \frac{1}{2} R_r |I_0|^2 = 40\pi^2 |I_0|^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:shortdipole.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For isotropic and user defined radiators you can set the '''Input Power''' and '''Phase''' of a transmitter set in Watts and degrees, respectively. This can be accessed from the '''Transmitter Chain''' dialog, which will be described in detail in the next section. The radiation pattern of the associated radiator set is normalized and used in conjunction with the input power value to create a weighted distribution of transmitted rays. In certain cases like hybrid simulations, you may want to use the actual values of the far field to define the transmitter power rather than a normalized radiation pattern. Note that the pattern (.RAD) file contains the value of total radiated power in its header. In this case, check the box labeled '''&amp;amp;quot;Calculate Power From Radiation Pattern&amp;amp;quot;'''. This is calculated directly from the complex &amp;amp;theta; and &amp;amp;phi; components of the far field data by integrating them over the entire space (4&amp;amp;pi; solid angle). Note that this option is available only when the radiator is of the User Defined type. When this box is checked, the transmitter chain button is grayed out. By default, an isotropic transmitter emanates rays uniformly in all directions at the angular resolution specified by the user. A transmitter with a user defined associated radiator may represent a highly directional radiation pattern with the main beam pointing in a certain direction. You can additionally force and limit the '''Angular Extents''' of rays to a certain solid angle around the transmitter. This is especially useful and computationally efficient when the transmitter is on one side of the scene, and all the scatterers and receivers are on the other side. In this case, there is no need to generate rays in all directions. To limit the angular extents of rays, define the Start and End values for both Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles. The value of the angular resolution of the rays can be changed from the Run Dialog as will be discussed later.&lt;br /&gt;
&lt;br /&gt;
In a regular SBR simulation, you have a transmitter and one or more arrays of receivers in your scene. At the end of the simulation, you can visualize the coverage map of the transmitter over the receiver sets. A coverage map shows the total '''Received Power''' by each of the receivers and is visualized as a color-coded intensity plot. You can visualize the coverage maps of individual receiver sets. At the end of a SBR simulation, each Received Power Coverage Map is listed under the receiver set's name in the Navigation Tree. To display a coverage map, simply click on its entry in the Navigation Tree. The coverage map plot appears in the Main Window overlaid on the scene. A legend box on the right shows the color scale and units (dB). The 3-D coverage maps are displayed as horizontal confetti above the receivers. If the receivers are packed close to each other, you will see a continuous confetti map. If the receivers are far apart, you will see individual colored squares. You can also visualize coverage maps as colored 3-D cubes. This may be useful when you set up your receivers in a vertical arrangement or the scene has a highly uneven terrain. To change the type of coverage map visualization, open the receiver set's property dialog and select the desired option for '''Coverage Map: Confetti''' or '''Cube''' in the '''&amp;amp;quot;Visualization Options&amp;amp;quot;''' section of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run11_tn.png|400px]] [[File:prop_run12_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Received power coverage map: (Left) confetti style, and (Right) cube style.&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the coverage map by right clicking on its entry in the Navigation Tree and selecting '''Properties...''' or by double-clicking on the legend box. In the Output Plot Settings dialog, you can choose from one of three Color Map options: '''Default''', '''Rainbow''' and '''Grayscale'''. The visualization plot uses default values for the color scale. In the section titled &amp;amp;quot;Limits&amp;amp;quot;, you can choose the radio button labeled '''User Defined'''. Then, you have to enter new values for the '''Lower''' and '''Upper''' Limits of the plot. You can also show or hide the Legend Box or change its '''Background''' and '''Foreground''' colors by clicking the buttons provided for this purpose.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run4.png]]&lt;br /&gt;
&lt;br /&gt;
Output Plot Settings&lt;br /&gt;
&lt;br /&gt;
=== The Ray Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a SBR simulation, each receiver receives a number of rays. Some receivers may not receive any rays at all. You can visualize all the rays received by a certain receiver from the active transmitter of the scene. To do this, right click the '''Receivers''' item of the Navigation Tree. From the context menu select '''Show Received Rays'''. All the rays received by the currently selected receiver of the scene are displayed in the scene. The rays are identified by labels, are ordered by their power and have different colors for better visualization. You can display the rays for only one receiver at a time. The receiver set property dialog has a list of all the individual receivers belonging to that set. To display the rays received by another receiver, you have to change the '''Selected Receiver''' in the receiver set's property dialog. If you keep the mouse focus on this dropdown list and roll your mouse scroll wheel, you can scan the selected receivers and move the rays from one receiver to the next in the list. To remove the visualized rays from the scene, right click the Receivers item of the Navigation Tree again and from the context menu select '''Hide Received Rays'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run5_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Visualization of received rays at the location of the selected receiver.&lt;br /&gt;
&lt;br /&gt;
You can also view the ray parameters by opening the property dialog of a receiver set. By default, the first receiver of the set is always selected. You can select any other receiver from the drop-down list labeled '''Selected Receiver'''. If you click the button labeled '''Show Ray Data''', a new dialog opens up with a table that contains all the received rays at the selected receiver and their parameters:&lt;br /&gt;
&lt;br /&gt;
* Delay is the total time delay that a ray experiences travelling from the transmitter to the receiver after all the reflections, transmissions and diffractions and is expressed in nanoseconds.&lt;br /&gt;
* Ray Field is the received electric field at the receiver location due to a specific ray and is given in dBV/m.&lt;br /&gt;
* Ray Power is the received power at the receiver due to a specific ray and is given in dBm.&lt;br /&gt;
* Angles of Arrival are the &amp;amp;theta; and &amp;amp;phi; angles of the incoming ray at the local spherical coordinate system of the receiver.&lt;br /&gt;
&lt;br /&gt;
The Ray Data Dialog also shows the '''Total Received Power''' in dBm and '''Total Received Field''' in dBV/m due to all the rays received by the receiver. You can sort the rays based on their delay, field, power, etc. To do so, simply click on the grey column label in the table to sort the rays in ascending order based on the selected parameter. You can also select any ray by clicking on its '''ID''' and highlighting its row in the table. In that case, the selected rays is highlighted in the Project Workspace and all the other rays become thin (faded).&lt;br /&gt;
&lt;br /&gt;
Note: The rays are summed up coherently at the receiver.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run6_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Analyzing a selected ray from the ray data dialog.&lt;br /&gt;
&lt;br /&gt;
=== Plotting Other Simulation Results ===&lt;br /&gt;
&lt;br /&gt;
Besides visualizing the coverage map and received rays in the EM.CUBE's [[Propagation Module]], you can also plot the '''Path Loss''' of all the receivers belonging to a receiver set as well as the '''Power Delay Profile''' of individual receivers. To plot these data, go the '''Observables''' section of the Navigation Tree and right click on the '''Receivers''' item. From the context menu, select '''Plot Path Loss''' or '''Plot Power Delay Profile''', respectively. The path loss data between the active transmitter and all the receivers belonging to a receiver set are plotted on a Cartesian graph. The horizontal axis of this graph represents the index of the receiver. Power Delay Profile is a bar chart that plots the power of individual rays received by the currently selected receiver versus their time delay. If there is a line of sight (LOS) between a transmitter and receiver, the LOS ray will have the smallest delay and therefore will appear first in the bar chart. Sometimes you may have several rays arriving at a receiver at the same time, i.e. all with the same delay, but with different power level. These will appear as stacked bars in the chart.&lt;br /&gt;
&lt;br /&gt;
You can also plot the path loss and power delay profile graphs and many others from EM.CUBE's data manager. You can open data manager by clicking the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or by selecting '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or by right clicking on the '''Data Manager''' item of the Navigation Tree and selecting Open Data Manager... from the contextual menu or by using the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the theta and phi angles of arrival and departure of the selected receiver. You can select any data file by clicking and highlighting its '''ID''' in the table and then clicking the '''Plot''' button.&lt;br /&gt;
&lt;br /&gt;
=== Output Data Files ===&lt;br /&gt;
&lt;br /&gt;
At the end of an SBR simulation, the results are written into a main output data file with the reserved name of SBR_Results.RTOUT. This file has the following format:&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Receiver Number&lt;br /&gt;
* Receiver Base X, Y , Z Coordinates&lt;br /&gt;
* Receiver Height&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
Number of Rays&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Ray Number&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Arrival in deg&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Departure in deg&lt;br /&gt;
* Delay in nsec&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''') &amp;amp;amp; Imag('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''')&lt;br /&gt;
* Power&lt;br /&gt;
&lt;br /&gt;
The angles of arrival are the &amp;amp;theta; and &amp;amp;phi; angles of a received ray measured in degrees and are referenced in the spherical coordinate systems centered at the location of the receiver. The angles of departure for a received ray are the &amp;amp;theta; and &amp;amp;phi; angles of the originating transmitter ray, measured in degrees and referenced in the spherical coordinate systems centered at the location of the active transmitter, which eventually arrives at the receiver. The total time delay is measured in nanoseconds between t = 0 nsec at the time of launch from the transmitter location till being received at the receiver location. The last four columns show the real and imaginary parts of the received electric fields with vertical and horizontal polarizations, respectively. The complex field values are normalized in a way that when their magnitude is squared, it equals the received ray power. If the active transmitter is an isotropic radiator with either a vertical or horizontal polarization, then the field components corresponding to the other polarization will have zero entries in the output data file.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run8_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A typical SBR output data file.&lt;br /&gt;
&lt;br /&gt;
=== Running A Frequency Sweep With SBR ===&lt;br /&gt;
&lt;br /&gt;
By default, you run a single-frequency simulation in EM.CUBE's [[Propagation Module]]. You set the operational frequency of a SBR simulation in the project's '''Frequency Dialog''', which can be accessed in a number of ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''Frequency''' [[File:freq_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]]'''Frequency Settings...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+F'''.&lt;br /&gt;
# By double clicking the frequency section (box) of the '''Status Bar'''.&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
[[File:prop_freq.png]]    [[File:prop_run10.png]]&lt;br /&gt;
&lt;br /&gt;
(Left) Project's frequency dialog and (Right) the frequency settings dialog.&lt;br /&gt;
&lt;br /&gt;
You can also select the '''Frequency Sweep''' option in the '''Simulation Mode''' drop-down list of the '''Run Dialog'''. Click the '''Settings...''' button on the right side of this dropdown list to open up the Frequency Settings Dialog. Based on the original values of the project center frequency and bandwidth, the '''Start Frequency''' and '''End Frequency''' have default values. You can also change the '''Number of Samples'''. Once you click the '''Run''' button, EM.CUBE performs a frequency sweep by assigning each of the frequency samples as the current operational frequency and running the SBR simulation engine at that frequency. All the simulation data at all frequency samples are saved into the output data files including &amp;amp;quot;SBR_results.RTOUT&amp;amp;quot;. After the completion of a frequency sweep simulation, as many coverage maps as the number of frequency samples are generated and added to the Navigation Tree under the Receiver Set's entry. You can click on each of the coverage maps corresponding to each of the frequency samples and visualize it in the project workspace. You can also animate the coverage maps. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. The coverage maps start to animate by their order on the Navigation Tree. Once the entire list is displayed sequentially, it starts all over again from the beginning of the list. During the animation, the '''Animation Controls''' dialog appears at the lower right corner of the screen. This dialog has a number of buttons for pause/resume, step forward/backward, and step to the end/start. The title of each coverage map is shown in the box labeled '''Sample''' as it is displayed in the main window. You can also change the speed of animation. The default frame duration has a value of 300 (3x100) milliseconds. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run13.png]]    [[File:prop_run14.png]]&lt;br /&gt;
&lt;br /&gt;
Multiple coverage maps on the Navigation Tree at the end of a frequency sweep and starting an animation from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run15_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Animation controls dialog in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep with SBR ===&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run24.png|thumb|300px|EM.CUBE's variable dialog]]&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run23.png|thumb|250px|Dialog for defining new variables]]&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE, all the CAD object properties as well as certain source, material and mesh parameters can be assigned as [[variables]]. [[Variables]] are defined to control and vary the values of such parameters either for editing purposes or to run parametric sweep or [[optimization]]. Variable are defined using the '''[[Variables]] Dialog''', which can be accessed in the three ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''[[Variables]]''' [[File:variable_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]] '''[[Variables]]...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+B'''.&lt;br /&gt;
&lt;br /&gt;
The [[variables]] dialog is initially empty. To add a new variable, click the '''Add''' button to open up the '''Add Variable/Syntax Dialog'''. In this dialog you have to type in a name for the new variable and choose a type. The default type is '''Uniformly Spaced Samples'''. You also need to specify the '''Start''', '''Stop''' and '''Step''' values for the variable. In the figure below, a variable called &amp;amp;quot;Tx_Height&amp;amp;quot; is defined that varies between 2 and 10 with equal steps of 2. This means the sample set {2,4,6,8,10}. When you return to the [[variables]] dialog, the syntax of the new variable is shown as 2:10:2. The last number in this syntax is always the variable step. In this example, this variable is going to be used to control the height of the transmitter in a propagation scene.&lt;br /&gt;
&lt;br /&gt;
Next, you have to attach the variable to the CAD object. In this case, the CAD object is the point object that represents the transmitter's radiator. To attach a variable to a CAD object, open the object's property dialog and type in the name of the variable as the value of a property or parameter. In this case, the variable Tx_Height is going to control the Z-Coordinate of the point object. Once the value of the object parameter is replaced by the name of an already defined variable, it is updated with the current value of that variable. In the case of a variable of &amp;amp;quot;Uniformly Spaced Samples&amp;amp;quot; type, the current value is the start value. This value will be incrementally varied during a parametric sweep simulation process. Note that a variable can take a fixed value or a discrete set of values, too. You can always open the [[variables]] dialog and change the value or syntax of any variable. To make a new or modified value effective, click the '''Apply''' button of the [[variables]] dialog. You can test the values by performing a '''Dry Run''' of the selected variable. This runs an animation of the project workspace as the value of the variable changes and all the related CAD objects are updated accordingly. Note that you can attach the same variable to more than one CAD object property or to the properties of different objects. You can also define multiple values or syntaxes to the same variable. To do so, open the '''Add Variable/Syntax Dialog''', and instead of typing in a new variable name, choose an existing variable name from the '''Name''' dropdown list. This will add a new value or syntax to the existing syntax(es) of the selected variable. When you return to the [[variables]] dialog, [[variables]] with more than one value or syntax will have a dropdown list in the '''Syntax''' column. You can choose any of these values or syntaxed at any time and make the change effective by clicking the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run25.png]]&lt;br /&gt;
&lt;br /&gt;
Replacing the value of a CAD object parameter with a variable name.&lt;br /&gt;
&lt;br /&gt;
To run a parametric sweep, open the '''Run Dialog''' and select the '''Parametric Sweep''' option in the '''Simulation Mode''' drop-down list. If you have not defined any [[variables]] in the project, the box in the '''[[Variables]]''' row before the '''View''' will be red. You have to turn it into green before you can run a simulation. By clicking the '''View''' button, you can open up the [[variables]] dialog from here. Once you click the '''Run''' button, EM.CUBE performs a parametric sweep by incrementally varying the values of all the defined [[variables]] from their start to stop values at the specified steps and updating all the related CAD objects. After the completion of a parametric sweep simulation, as many coverage maps as the total number of variable samples are generated and added to the Navigation Tree under the receiver set's entry. You can click on each of the coverage maps and visualize it in the project workspace. You can also animate the coverage maps sequentially. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run26.png]]&lt;br /&gt;
&lt;br /&gt;
Choosing parametric sweep as the simulation mode in the run dialog. Note that one variable has been defined and EM.CUBE is ready to run the simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run27_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The coverage map of the scene at the end of a parametric sweep where the sweep variable is the transmitter height.&lt;br /&gt;
&lt;br /&gt;
=== Statistical Analysis of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's coverage maps display the received power at the location of all the receivers. The receivers together from a set/ensemble, which might be uniformly spaced or distributed across the propagation scene or may consist of randomly scattered radiators. Every coverage map shows the '''Mean''' and '''Standard Deviation''' of the received power for all the receivers involved. These information are displayed at the bottom of the coverage map's legend box and are expressed in dB.&lt;br /&gt;
&lt;br /&gt;
In the [[Propagation Module]], when you ran a sweep simulation (frequency, transmitter or parametric), you also have the option to generate two additional coverage maps: one for the mean of all the individual sample coverage maps and another for their standard deviation. To do so, in the '''Run Dialog''', check the box labeled '''&amp;amp;quot;Create Mean and Standard Deviation Coverage Maps&amp;amp;quot;'''. Note that the mean and standard deviation values displayed on the individual coverage maps correspond to the spatial statistics of the receivers in the scene, while the mean and standard deviation coverage maps correspond to frequency, transmitter or variable sets defined for the sweep simulation. Also, note that both of the mean and standard deviation coverage maps have their own spatial mean and standard deviation values expressed in dB at the bottom of their legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run21_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The mean coverage map at the end of a transmitter sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run22_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The standard deviation coverage map at the end of a transmitter sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Terrano</id>
		<title>EM.Terrano</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Terrano"/>
				<updated>2013-06-14T14:50:16Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Impenetrable Surfaces For Outdoor Scenes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Taking out this picture for now for consistency&lt;br /&gt;
[[File:urban.png]]--&amp;gt;&lt;br /&gt;
EM.Terrano is a physics-based, site-specific, wave propagation modeling tool that enables engineers to quickly determine how radio waves propagate in urban, natural or mixed environments. The rapid growth of wireless communications along with the high costs associated with the design and deployment of effective wireless infrastructures underline a persistent need for computer aided communication network planning tools. Wireless engineers have long used simplistic statistical prediction models based on measurements that often exhibit considerable errors especially in areas having mixed building sizes.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Terrano has helped wireless engineers around the globe model the physical channel and the mechanisms by which radio signals propagate from transmitters to receivers. EM.Terrano’s advanced ray tracing simulator finds the dominant propagation paths specific to the site in question. It calculates the true signal characteristics at the actual locations using physical databases of the buildings and terrain at a given site, not those of a statistically average or representative environment. EM.Terrano’s ray tracer is based on the shoot-and-bounce-rays (SBR) method, which utilizes geometrical optics (GO) in combination with uniform theory of diffraction (UTD) models of building edges.&lt;br /&gt;
&lt;br /&gt;
The new EM.Terrano 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has created the opportunity to inject a host of new powerful features such as a highly customizable terrain generator, DEM terrain import, complex building constructions, and versatile interior wall arrangements for indoor propagation modeling. As a result of this seamless interface with EM.Cube's other modules, you can now model complex antenna systems in [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]], and generate antenna radiation patterns than can be used to model directional transmitters and receivers at the two ends of your propagation channel. Conversely, you can analyze a propagation scene in EM.Terrano and import the rays received at a certain receiver location as coherent plane wave sources to [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]]. You can also model periodic wall or ground structures using the periodic simulation capability of [[EM.Picasso]] or [[EM.Tempo]] and generate macromodels for their reflection and transmission coefficients as functions of the ray incidence angles. You can then define buildings or terrains in your propagation scene that are governed by such macromodels.&lt;br /&gt;
&lt;br /&gt;
== A Wireless Propagation Primer ==&lt;br /&gt;
Every wireless communication system involves a transmitter that transmits some sort of signal (voice, video, data, etc.), a receiver that receives and detects the transmitted signal, and a channel in which the signal is transmitted into the air and travels from the location of the transmitter to the location of the receiver. The channel is the physical medium in which the electromagnetic waves propagate. The successful design of a communication system depends on an accurate link budget analysis that determines whether the receiver receives adequate signal power to detect it against the background noise. The simplest channel is the free space. Real communication channels, however, are more complicated and involve a large number of wave scatterers. For example, in an urban environment, the obstructing buildings, vehicles and vegetation reflect, diffract or attenuate the propagating radio waves. As a result, the receiver receives a distorted signal that contains several components with different power levels and different time delays arriving from different angles.&lt;br /&gt;
&lt;br /&gt;
The different rays arriving at a receiver location create constructive and destructive interference patterns. This is known as the multipath effect. This together with the shadowing effects caused by building obstructions lead to channel fading. In many wireless applications, the total received power by the receiver is all that matters. In some others, the angle of arrival of the rays as well as their polarization are of immense interest. A fully polarimetric, coherent ray tracer like EM.Cube's Shooting-and-Bouncing-Rays (SBR) solver lets you compute and resolve all the rays received by a receiver including their power levels, time delays and angles of arrival.&lt;br /&gt;
&lt;br /&gt;
=== Free Space Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
In a free-space line-of-sight (LOS) communication system, the signal propagates directly from the transmitter to the receiver without encountering any obstacles (scatterers). Electromagnetic waves propagate in the form of spherical waves with a functional dependence of e&amp;lt;sup&amp;gt;j(&amp;amp;omega;&amp;lt;/sup&amp;gt;&amp;lt;sup&amp;gt;t-k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;R)&amp;lt;/sup&amp;gt;/R, where R is the distance between the transmitter and receiver, &amp;lt;math&amp;gt;\omega = 2\pi f&amp;lt;/math&amp;gt;, f is the signal frequency, &amp;lt;math&amp;gt;k_0 = \tfrac{\omega}{c} = \tfrac{2\pi}{\lambda}&amp;lt;/math&amp;gt;, c is the speed of light, and &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength at the operational frequency. By the time the signal arrives at the location of the receiver, it undergoes two changes. It is attenuated and its power drops by a factor of 1/R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, and additionally, it experiences a phase shift of &amp;lt;math&amp;gt;\tfrac{2\pi R}{\lambda_0}&amp;lt;/math&amp;gt;, which is equivalent to a time delay of R/c. The signal attenuation from the transmitter to the receiver is usually quantified by '''Path Loss''' defined as the ratio of the received signal power (P&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;) to the transmitted signal power (P&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;). Assuming isotropic transmitting and receiving radiators (i.e. radiating uniformly in all directions), the Path Loss in a free-space line-of-sight communication system is given by Friis’ formula:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = \left( \frac{\lambda_0}{4\pi R} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above formula assumes that the receiving antenna is polarization-matched. Normally, there is a polarization mismatch between the transmitting and receiving antennas. In the case of directional transmitting and receiving antennas, Friis’ formula takes the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = G_T G_R \left( \frac{\lambda_0}{4\pi R} \right)^2 ( \mathbf{ \hat{u}_T \cdot \hat{u}_R } )&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''u&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;''' and '''u&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''' are the unit polarization vectors of the transmitting and receiving antennas, and G&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt; and G&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; are their gains, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:los.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Line-of-Sight (LOS) Propagation Scenario.&lt;br /&gt;
&lt;br /&gt;
=== Multipath Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
Free-space line-of-sight communications is an ideal scenario that is typically used to model aerial or space applications. In ground-based systems, the presence of the ground as a very large reflecting surface affects the signal propagation to a large extent. Along the path from a transmitter to a receiver, the signal may also encounter many obstacles and scatterers such as buildings, vegetation, etc. In an urban canyon environment with many buildings of different heights and other scatterers, a line of sight between the transmitter and receiver can hardly be established. In such cases, the propagating signals bounce back and forth among the building surfaces. It is these reflected or diffracted signals that are often received and detected by the receiver. Such environments are referred to as “multipath”. The group of rays arriving at a specific receiver location experience different attenuations and different time delays. This gives rise to constructive and destructive interference patterns that cause fast fading. As a receiver moves locally, the receiver power level fluctuates sizably due to these fading effects.&lt;br /&gt;
&lt;br /&gt;
The use of statistical models for prediction of fading effects is widely popular among communication system designers. These models are either based on measurement data or derived from simplistic analytical frameworks. The statistical models often exhibit considerable errors especially in areas having mixed building sizes. In such cases, one needs to perform a physics-based, site-specific analysis of the propagation environment to accurately identify and establish all the possible signal paths from the transmitter to the receiver. This involves an electromagnetic analysis of the scene with all of its geometrical and physical details.  &lt;br /&gt;
&lt;br /&gt;
Link budget analysis for a multipath channel is a challenging task due to the large size of the computational domains involved. Typical propagation scenes usually involve length scales on the order of thousands of wavelengths. To calculate the path loss between the transmitter and receiver, one must solve Maxwell's equations in an extremely large space. Full-wave numerical techniques like the Finite Difference Time Domain (FDTD) method, which require a fine discretization of the computational domain, are therefore impractical for solving large-scale propagation problems. The practical solution is to use asymptotic techniques such as SBR, which utilize analytical techniques over large distances rather than a brute force discretization of the entire computational domain. Such asymptotic techniques, of course, have to compromise modeling accuracy for practical computation feasibility.&lt;br /&gt;
&lt;br /&gt;
[[File:multi1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A multipath propagation scene showing all the rays arriving at a particular receiver.&lt;br /&gt;
&lt;br /&gt;
=== The SBR Method ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] provides an asymptotic ray tracing simulation engine that is based on a technique known as Shooting-and-Bouncing-Rays (SBR). In this technique, propagating spherical waves are modeled as ray tubes or beams that emanate from a source, travel in space, bounce from obstacles and are collected by the receiver. As rays propagate away from their source (transmitter), they begin to spread (or diverge) over distance. In other words, the cross section or footprint of a ray tube expands as a function of the distance from the source. EM.Cube uses an accurate equi-angular ray generation scheme to that produces almost identical ray tubes in all directions to satisfy energy and power conservation requirements.&lt;br /&gt;
&lt;br /&gt;
When a ray hits an obstructing surface, one or more of the following phenomena may happen:&lt;br /&gt;
&lt;br /&gt;
# Reflection from the locally flat surface&lt;br /&gt;
# Transmission through the locally flat surface&lt;br /&gt;
# Diffraction from an edge between two conjoined locally flat surfaces&lt;br /&gt;
&lt;br /&gt;
EM.Cube discretizes all the objects of the scene into flat triangular facets. Obviously, rectangular and cubic objects preserve their geometric shapes through this discretization. Objects with curved surfaces such as cylinders, cones or spheres, are approximated by &amp;amp;quot;polymesh&amp;amp;quot; representations. The geometric fidelity of the resulting mesh depends on the specified mesh edge length. When a ray hits a triangular facet, the propagating spherical wave is approximated as a plane wave at the specular point. The reflection and transmission coefficients of the surface are calculated at the operational frequency and at the particular ray incident angle. &lt;br /&gt;
&lt;br /&gt;
A new reflected ray is generated at the specular point, which starts traveling and bouncing around in the scene. If the obstructing surface is penetrable, a second transmitted ray is generated and added to the scene. If the ray hits the edge of an obstacle, it is diffracted from that edge. This leads to the creation of a cone of new rays, which greatly complicate the computational problem. The Uniform Theory of Diffraction (UTD) is used to calculate the wedge diffraction coefficients at the edges of scattering blocks. Note that reflection, transmission and diffraction coefficients are all dependent on the polarization of the incident plane wave.&lt;br /&gt;
&lt;br /&gt;
A receiver may receive a large number of rays: direct line-of-sight rays from the transmitter, rays reflected or diffracted off the ground or terrain, rays reflected or diffracted from buildings or rays transmitted through buildings. Each received ray is characterized by its power, delay and angles of arrival, which are the spherical coordinate angles &amp;amp;theta; and &amp;amp;phi; of the incoming ray. The actual signal received and detected by the receiver is the superposition of all these rays with different power levels and different time delays. Most of the time, you will be interested in the coverage map of an area, which shows how much power is received by a grid of receivers spread over the area from a given fixed transmitter.&lt;br /&gt;
&lt;br /&gt;
=== Ray Reflection &amp;amp; Transmission ===&lt;br /&gt;
&lt;br /&gt;
[[File:reflect.png|thumb|350px|The Incident, Reflected and Transmitted Rays at the Interface Between Two Dielectric Media]]&lt;br /&gt;
&lt;br /&gt;
The incident, reflected and transmitted rays are each characterized by a triplet of unit vectors:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}, \hat{u}_{\perp}, \hat{k} } )&amp;lt;/math&amp;gt; representing the incident parallel polarization vector, incident perpendicular polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}', \hat{u}_{\perp}', \hat{k}' } )&amp;lt;/math&amp;gt; representing the reflected parallel polarization vector, reflected perpendicular polarization vector and reflected propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}'', \hat{u}_{\perp}'', \hat{k}'' } )&amp;lt;/math&amp;gt; representing the transmitted parallel polarization vector, transmitted perpendicular polarization vector and transmitted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The reflected ray is assumed to originate from a virtual image source point. The three triplets constitute three orthonormal basis systems. Below, it is assumed that the two dielectric media have permittivities &amp;amp;epsilon;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;epsilon;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, and permeabilities &amp;amp;mu;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;mu;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, respectively. A lossy medium with a conductivity &amp;amp;sigma; can be modeled by a complex permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = &amp;amp;epsilon;'&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; –j&amp;amp;sigma;/&amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. Assuming '''n''' to be the unit normal to the interface plane between the two media, and Z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;Omega; , the incident polarization vectors as well as all the reflected and transmitted vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp} = \frac{\hat{k} \times \hat{n}}{|\hat{k} \times \hat{n}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|} = \hat{u}_{\perp} \times \hat{k} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflected unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}' = \hat{k} - 2(\hat{k} \cdot \hat{n}) \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}' = \hat{u}_{\perp}' \times \hat{k}' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The transmitted unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}'' = \hat{n} \times a - \sqrt{1-a \cdot a} \; \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}'' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}'' = \hat{u}_{\perp}'' \times \hat{k}'' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{a} = (k_1/k_2) \mathbf{\hat{k} \times \hat{n}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_1 = k_0 \sqrt{\varepsilon_1 \mu_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_2 = k_0 \sqrt{\varepsilon_2 \mu_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_1 = Z_0 \sqrt{\mu_1 / \varepsilon_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_2 = Z_0 \sqrt{\mu_2 / \varepsilon_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sin\theta'' = \frac{k_1}{k_2}\sin\theta \text{ if } \sin\theta \le k_2/k_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml4.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml5.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflection coefficients at the interface are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penetration Through Thin Walls Or Surfaces ===&lt;br /&gt;
&lt;br /&gt;
[[File:thinwalltrans.png|thumb|350px|The Incident and Transmitted Rays through a Thin Wall]]&lt;br /&gt;
&lt;br /&gt;
In &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;, we assume that an incident ray gives rise to two rays, one is reflected at the specular point, and the other is transmitted almost in the same direction as the incident ray. The reflected ray is assumed to originate from a virtual image source point. Similar to the case of reflection and transmission at the interface between two dielectric media, here too we have three triplets of unit vectors, which all form orthonormal basis systems.&lt;br /&gt;
&lt;br /&gt;
The transmission coefficients are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\|} = \frac{(1-{\Gamma_{\|}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\|}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\perp} = \frac{(1-{\Gamma_{\perp}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\perp}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml21.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wedge Diffraction From Edges ===&lt;br /&gt;
&lt;br /&gt;
[[File:diffract.png|thumb|350px|The Incident Ray and Diffract Ray Cone at the Edge of a Building]]&lt;br /&gt;
&lt;br /&gt;
For the purpose of calculation of diffraction from building edges, we define a &amp;amp;quot;Wedge&amp;amp;quot; as having two faces, the 0-face and the ''n''-face. The wedge angle is a = (2-''n'')p, where the parameter ''n'' is required for the calculation of diffraction coefficients. All the diffracted rays lie on a cone with its vertex at the diffraction point and a wedge angle equal to the angle of incidence in the opposite direction. A diffracted ray is assumed to originate from a virtual image source point. Three triplets of unit vectors are defined as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_0, \hat{u}_l, \hat{t})}&amp;lt;/math&amp;gt; representing the unit vector normal to the edge and lying in the plane of the 0-face, the unit vector normal to the 0-face, and the unit vector along the edge, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f, \hat{u}_b, \hat{t})}&amp;lt;/math&amp;gt; representing the incident forward polarization vector, incident backward polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f', \hat{u}_b', \hat{t}')}&amp;lt;/math&amp;gt; representing the diffracted forward polarization vector, diffracted backward polarization vector and diffracted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The three triplets constitute three orthonormal basis systems. The propagation vector '''k'''' of the diffracted ray has to be constructed based on the diffraction cone as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{\hat{k}'} = \cos\phi_w \mathbf{\hat{u}_0} + \sin\phi_w \mathbf{\hat{u}_l} + &lt;br /&gt;
\mathbf{(\hat{k} \cdot \hat{t}) \hat{t}}, \quad 0 \le \phi_w \le \alpha&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the resolution of the angle &amp;amp;theta;&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt; is chosen to be the same as the resolution of the incident ray.&lt;br /&gt;
&lt;br /&gt;
The other unit vectors for the incident and diffracted rays are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f = \frac{\hat{k} \times \hat{t}}{|\hat{k} \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b = \hat{k} \times \hat{u}_f } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f' = \frac{\hat{k}' \times \hat{t}}{|\hat{k}' \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b' = \hat{k}' \times \hat{u}_f' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml9.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The diffraction coefficients are calculated in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_s = \frac{-e^{-j\pi/4}}{2n \sqrt{2\pi k} \sin\beta_0'}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \cot \left(\frac{\pi + (\phi-\phi')}{2n}\right) F[kLa^+(\phi-\phi')] +&lt;br /&gt;
  \cot \left(\frac{\pi - (\phi-\phi')}{2n}\right) F[kLa^-(\phi-\phi')] \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; R_{0 \perp} \cot \left(\frac{\pi - (\phi+\phi')}{2n}\right) F[kLa^-(\phi+\phi')] +&lt;br /&gt;
  R_{n \perp} \cot \left(\frac{\pi + (\phi+\phi')}{2n}\right) F[kLa^+(\phi+\phi')]&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_h = \frac{-e^{-j\pi/4}}{2n \sqrt{2\pi k} \sin\beta_0'}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \cot \left(\frac{\pi + (\phi-\phi')}{2n}\right) F[kLa^+(\phi-\phi')] +&lt;br /&gt;
  \cot \left(\frac{\pi - (\phi-\phi')}{2n}\right) F[kLa^-(\phi-\phi')] \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; R_{0 \|} \cot \left(\frac{\pi - (\phi+\phi')}{2n}\right) F[kLa^-(\phi+\phi')] +&lt;br /&gt;
  R_{n \|} \cot \left(\frac{\pi + (\phi+\phi')}{2n}\right) F[kLa^+(\phi+\phi')]&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml11.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where ''F(x)'' is the Fresnel Transition function:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = 2j \sqrt{x} e^{jx} \int_{\sqrt{x}}^{\infty} e^{-j\tau^2} \, d\tau &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, we have&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
s = |\rho_D - \rho_S| \\&lt;br /&gt;
s' = |\rho_D - \rho_r|&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L = \frac{s s' \sin^2 \beta'}{s + s'} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\pm}(\nu) = 2\cos^2 \left( \frac{2n\pi N^{\pm} - \nu}{2} \right), \quad \nu = \phi \pm \phi' &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml10.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml13.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;N^{\pm}&amp;lt;/math&amp;gt; are the integers which most closely satisfy the equations &amp;lt;math&amp;gt; 2n\pi N^{\pm} - \nu = \pm \pi &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SBR As An Asymptotic EM Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulation engine can be used as a versatile and powerful asymptotic electromagnetic (EM) solver. If you compare EM.Cube's [[Propagation Module]] with its other computational modules, you will notice a lot of similarities. While other modules group objects primarily by their material properties, [[Propagation Module]] categorizes the types of obstructing surfaces. Besides sharing the same ray-surface interaction mechanisms, all the objects belonging to a surface group also share the same material properties. [[Propagation Module]] offers similar source types and similar observable types as the other computational modules. For instance, the Hertzian dipole sources used in a SBR simulation are identical to those offered in PO, MoM3D and Planar modules. The plane wave sources are identical across all computational modules. [[Propagation Module]]'s sensor field planes, far field observables (either radiation patterns or RCS) and Huygens surfaces are all fully compatible with EM.Cube's other computational modules.&lt;br /&gt;
&lt;br /&gt;
As an asymptotic EM solver, the SBR engine can be used to model large-scale electromagnetic radiation and scattering problems. An example of this kind is radiation of simple or complex antennas in the presence of large scattering platforms. You have to keep in mind that by using an asymptotic technique in place of a full-wave method, you trade computational speed and lower memory requirements for modeling accuracy. In particular, the SBR method cannot take into account the electromagnetic coupling effects among nearby radiators or scatterers. However, when your scene spans thousands of wavelengths, an SBR simulation might often prove to be your sole practical solution.  &lt;br /&gt;
&lt;br /&gt;
=== Novelties Of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine utilizes an intelligent ray tracing algorithm based on the concept of  k-dimensional trees. A k-d tree is a space-partitioning data structure for organizing points in a k-dimensional space. k-d trees are particularly useful for searches that involve multidimensional search keys such as range searches and nearest neighbor searches. In a typical large radio propagation scene, there might be a large number of rays emanating from the transmitter that may never hit any obstacles. For example, upward-looking rays in an urban propagation scene quickly exit the computational domain. Rays that hit obstacles on their path, on the other hand, generate new reflected and transmitted rays. The k-d tree algorithm traces all these rays systematically in a very fast and efficient manner. Another major advantage of k-d trees is the fast processing of multi-transmitters scenes. Unlike the previous versions of the SBR solver which could handle one transmitter at a time and would superpose all the resulting rays at the end of the simulation, the new SBR shoots rays from all the transmitters at the same time.   &lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine performs fully polarimetric and coherent SBR simulations with arbitrary transmitter antenna patterns. The new engine solves directly for the vectorial field components at the receiver locations or field observation points. This is far more rigorous than the previous versions of the SBR solver which primarily utilized ray power calculations based on the two vertical and horizontal polarizations. In other words, EM.Cube's new SBR engine is a truly asymptotic &amp;amp;quot;field&amp;amp;quot; solver. As a result, you can visualize the magnitude and phase of all six electric and magnetic field components at any point in the computational domain. For power calculations at the receiver location, an isotropic, polarization-matched, receiving antenna is assumed.       &lt;br /&gt;
&lt;br /&gt;
In most scenes, the buildings and the ground or terrain can be assumed to be made of homogeneous materials. These are represented by their electrical properties such as permittivity e and electric conductivity s. More complex scenes may involve a multilayer ground or multilayer building walls. In such cases, one can no longer use the simple reflection or transmission coefficient formulas for homogeneous medium interfaces. EM.Cube calculates the reflection and transmission coefficients of multilayer structures as functions of incident angle, frequency and polarization and uses them at the respective specular points.  &lt;br /&gt;
&lt;br /&gt;
=== Limitations of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
It is very important to keep in mind that SBR is an asymptotic electromagnetic analysis technique that is based on Geometrical Optics (GO) and the Uniform Theory of Diffraction (UTD). It is not a &amp;amp;quot;full-wave&amp;amp;quot; technique, and it does not solve Maxwell's equations directly or numerically. SBR makes a number of assumptions, chief among them, a very high operational frequency such that the length scales involved are much larger than the operating wavelength. Under this assumed regime, electromagnetic waves start to behave like optical rays. Virtually all the calculations in SBR are based on far field approximations. &lt;br /&gt;
&lt;br /&gt;
In order to maintain a high computational speed for urban propagation problems, EM.Cube's SBR solver ignores double diffractions. Recall that diffractions from edges give rise to a large number of new secondary rays. The power of diffracted rays drops much faster than reflected rays. EM.Cube ignores diffracted rays that are not detected by any receiver. In other words, an edge-diffracted ray does not diffract again from another edge. However, reflected and penetrated rays do get diffracted from edges just as rays emanated directly from the sources do.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Propagation Scene ==&lt;br /&gt;
&lt;br /&gt;
An EM.Cube propagation scene typically consists of several elements. At a minimum, you need a transmitter (Tx) at some location to launch rays into the scene and a receiver (Rx) at another location to receive and collect the incoming rays. A transmitter and a receiver together make the simplest propagation scene, representing a free-space line-of-sight (LOS) channel. A transmitter is one of EM.Cube's several source types, while a receiver is one of EM.Cube's several observable types. A simpler source type is a Hertzian dipole. A simpler observable is a field sensor that is used to compute the electric and magnetic fields on a specified plane.&lt;br /&gt;
&lt;br /&gt;
An outdoor propagation scene may involve several buildings (modeled as impenetrable surfaces) and an underlying flat ground or irregular terrain surface. An indoor propagation scene may involve several walls (modeled as thin penetrable surfaces), a ceiling and a floor arranged according to a certain floor plan. You can also build mixed scenes involving both impenetrable and penetrable blocks, possibly along with irregular terrain surfaces. Your sources and observables can be placed anywhere in the scene. Your transmitters and receivers can be placed outdoors or indoors. A complete list of the various elements of a propagation scene is given in the '''Physical Structure''' section of [[Propagation Module]]'s Navigation Tree as follows:&lt;br /&gt;
&lt;br /&gt;
* Impenetrable Surfaces&lt;br /&gt;
* Penetrable Surfaces&lt;br /&gt;
* Terrain Surfaces&lt;br /&gt;
* Base Points&lt;br /&gt;
&lt;br /&gt;
Impenetrable, penetrable and terrain surfaces all obstruct the propagation of electromagnetic waves (rays) in the free space. What differentiates them is the types of physical phenomena that are used to model their interaction with the impinging rays. Base points are simply used to define transmitter and receiver locations in the scene. The following sections of this manual will describe each of these elements in detail.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Navigation Tree of EM.Cube's [[Propagation Module]].&lt;br /&gt;
&lt;br /&gt;
=== The Various Types Of Surfaces &amp;amp;amp; Blocks ===&lt;br /&gt;
&lt;br /&gt;
In a SBR simulation, the propagating rays hit the surface of building structures, walls, terrain (or global ground) and bounce back into the scene (reflection). Some rays penetrate thin walls or other penetrable surfaces and continue their path on the other side of the surface (transmission). The field intensity, phase and power of the reflected and transmitted rays depend on the material properties of the obstructing surface. The specular surface can be modeled as a simple homogeneous dielectric half-space or as a multilayer structure. In that respect, the buildings, walls, terrain or even the global ground all behave in a similar way:&lt;br /&gt;
&lt;br /&gt;
* They terminate an impinging ray and replace it with one or more new rays.&lt;br /&gt;
* They represent a specular interface between two media of different material compositions for calculating the reflection, transmission and possibly diffraction coefficients.&lt;br /&gt;
&lt;br /&gt;
EM.Cube has generalized the concept of '''Block''' as any object that obstructs and affects radio wave propagation. Rays hit the facets of a block and bounce off the surface of those facets or penetrate them and continue their propagation. Rays also get diffracted off the edges of these blocks. In EM.Cube's [[Propagation Module]], blocks are grouped together by the type of their interaction with rays. EM.Cube currently offers three types of blocks for use in a propagation scene:&lt;br /&gt;
&lt;br /&gt;
# '''Impenetrable Surfaces:''' Rays hit the facets of this type of blocks and bounce back, but they do not penetrate the object. It is assumed that the interior of such blocks or buildings are highly absorptive.&lt;br /&gt;
# '''Penetrable Surfaces:''' These blocks represent thin surfaces that are used to model the exterior and interior walls of buildings based on the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;. Rays reflect off the surface of penetrable surfaces and diffract off their edges. They also penetrate such thin surfaces and continue their paths on the other side of the wall.&lt;br /&gt;
# '''Terrain Surfaces:''' These blocks are used to provide one or more impenetrable, ground surfaces for the propagation scene. Rays simply bounce off terrain objects. The global ground acts as a flat super-terrain that covers the bottom of the entire computational domain. &lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to define block groups of each of the above three types. Each block group has the same color or texture and its members share the same material properties: permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and conductivity &amp;amp;sigma;. Also, all the penetrable surfaces belonging to the same block group have the same wall thickness. You can define many different block groups with certain properties and underneath each introduce many member objects with different geometrical shapes and dimensions. The table below summarizes the characteristics of each block type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Block Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Physical Effects&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Admissible Object Types&lt;br /&gt;
|-&lt;br /&gt;
| Impenetrable Surface&lt;br /&gt;
| Reflection, Diffraction&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Penetrable Surface&lt;br /&gt;
| Reflection, Diffraction, Transmission&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Terrain Surface&lt;br /&gt;
| Reflection&lt;br /&gt;
| Tessellated Objects Only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Impenetrable Surfaces For Outdoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(2).png|thumb|250px|[[Propagation Module]]'s Impenetrable Surface dialog]]   &lt;br /&gt;
&lt;br /&gt;
In outdoor propagation scenes such as &amp;amp;quot;Urban Canyons&amp;amp;quot;, you are primarily interested in the wireless coverage in the areas among buildings. You can assume that rays bounce off the exterior walls of these buildings but do not penetrate them. In other words, you ignore the transmitted rays and assume that they are either absorbed or diffused inside the buildings. This is not an unrealistic assumption. EM.Cube offers &amp;amp;quot;Impenetrable Blocks&amp;amp;quot; to model buildings in outdoor propagation scenes. A penetrable block has a color or texture property as well as material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and conductivity (s). By default, a brick building is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m. Impinging rays are reflected from the facets of impenetrable buildings or diffracted from their edges.&lt;br /&gt;
&lt;br /&gt;
To define a new impenetrable block group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on either the '''Impenetrable Surfaces''' item of the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the block properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the block group and select a color or texture.&lt;br /&gt;
# The electromagnetic model that determines ray-block interaction is selected under '''Specular Interface Type'''. Two options are available: '''Standard Material''' or '''User Defined Model'''. The former is the default choice and requires material properties, '''Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity''' (&amp;amp;sigma;), which are set to &amp;amp;quot;Brick&amp;amp;quot; by default. No magnetic properties are allowed for blocks.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Under an impenetrable block group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of an impenetrable surface. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. In this dialog, you can change the name of the material and its permittivity and electric conductivity. The box labeled &amp;amp;quot;Specify Loss Tangent&amp;amp;quot; is unchecked by default. If you check it, you can specify the '''Loss Tangent''' of the material, which, in turn, updates the value of electric conductivity at the center frequency of the project. You can also use EM.Cube's Material List, which will  be explained later.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to impenetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
=== Penetrable Surfaces For Indoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
A typical indoor propagation scene usually involves an arrangement of walls that represent the interior of a building. The transmitters and receivers are then placed in the spaces among such walls. From the point of view of EM.Cube's SBR simulator, walls act like thin penetrable surfaces. EM.Cube uses the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot; to model penetrable surfaces. It assumes that rays simply penetrate a wall and exit at the same specular point on the opposite side of the wall. In other words, rays are not displaced by the walls, nor do they get trapped inside the walls (no internal reflection). This is equivalent to assuming a zero thickness for penetrable surfaces for the purpose of geometrical ray tracing, while the finite thickness of the &amp;amp;quot;thin&amp;amp;quot; surface is used for electromagnetic calculation of transmission coefficient. EM.Cube offers &amp;amp;quot;Penetrable Surface Blocks&amp;amp;quot; for the construction of rooms in indoor propagation scenes as well as modeling of hollow buildings and other structures. You can define many penetrable surface groups with arbitrary thicknesses and material properties (color, texture, permittivity and electric conductivity).&lt;br /&gt;
&lt;br /&gt;
To define a new penetrable surface group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on one of the '''Penetrable Surfaces''' item in the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the wall properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the surface group and select a color or texture.&lt;br /&gt;
# The properties of a penetrable surface are identical to those of an impenetrable surface, plus an additional thickness property.&lt;br /&gt;
# By default, a brick wall with a thickness of 0.5 units is assumed. You can change the '''Thickness''' of the penetrable surface as well as its '''Permittivity'''  &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and '''Electric Conductivity''' &amp;amp;sigma;.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Penetrable Surface dialog.&lt;br /&gt;
&lt;br /&gt;
Under a penetrable surface group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of a penetrable surface group including its default thickness. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. Similar to the case of impenetrable surfaces, from this dialog, you can change the material properties (permittivity and electric conductivity) as well as '''Thickness''', which is expressed in the project units. You can also use EM.Cube's Material List, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to penetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
You can construct several thin walls and arrange them as rooms. A regular room can be built by placing four vertical wall objects together with an optional horizontal wall at the top for the ceiling. Alternatively, you may use EM.Cube's hollow box objects or boxes with one or two capped end(s).  '''Keep in mind that all the penetrable surfaces belonging to a group have the same wall thickness, which is initially set to 0.5 project units by default. Also, note that solid CAD objects belonging to a penetrable surface group are treated as air-filled hollow structures.''' The thickness of penetrable surfaces is implied and not visualized when displaying objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Computational Domain &amp;amp;amp; Global Ground ===&lt;br /&gt;
&lt;br /&gt;
The SBR simulation engine requires a finite computational domain. All the stray rays that hit the boundaries of this finite domain are terminated during the simulation process. Such rays exit the computational domain and travel to the infinity, with no chance of ever reaching any receiver in the scene. When you define a propagation scene with various elements like buildings, walls, terrain, etc., a dynamic domain is automatically established and displayed as a wireframe box with green lines that surrounds the entire scene. Every time you create a new object, the domain is automatically adjusted and extended to enclose all the objects in the scene. You can change the size and color of the domain box through the Ray Domain Settings Dialog, which can be accessed in one of the following three ways:&lt;br /&gt;
&lt;br /&gt;
# Click the '''Domain''' [[File:image025.jpg]] button of the Simulation Toolbar.&lt;br /&gt;
# Select the '''Simulate''' &amp;amp;gt; '''Computational Domain''' &amp;amp;gt; '''Settings...''' item of the Simulate Menu.&lt;br /&gt;
# Right click on the '''Ray Domain''' item of the Navigation Tree and select '''Domain Settings...'''&lt;br /&gt;
# Use the keyboard shortcut '''Ctrl + A'''.&lt;br /&gt;
&lt;br /&gt;
The size of the Ray domain is specified in terms of six '''Offset''' parameters along the ±X, ±Y and ±Z directions. The default value of all these six offset parameters is 10 project units. You can change them arbitrarily. After changing these values, use the '''Apply''' button to make the changes effective while the dialog is still open.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Most outdoor and indoor propagation scenes include a flat ground at their bottom, which bounces incident rays back into the scene. EM.Cube's [[Propagation Module]] provides a global flat ground at z = 0. The global ground indeed acts as an impenetrable surface that blocks the entire computational domain from the z = 0 plane downward. It is displayed as a translucent green plane at z = 0 extending downward. The color of the ground plane is always the same as the color of the ray domain. The global ground is assumed to be made of a homogeneous dielectric material with a specified permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma;. By default, a rocky ground is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m. You can remove the global ground, in which case, you will have a free space scene. To disable the global ground, open up the Global Ground Settings Dialog, which can be accessed by right clicking on the '''Global Ground''' item in the Navigation Tree and selecting '''Global Ground Settings... '''Remove the check mark from the box labeled '''&amp;amp;quot;Include Half-Space Ground (z&amp;amp;lt;0)&amp;amp;quot;''' to disable the global ground. This will also remove the green translucent plane from the bottom of your scene. You can also change the material properties of the global ground and set new values for the permittivity and electric conductivity of the impenetrable, half-space, dielectric medium. '''Do not forget to disable the global ground if you want to model a free space propagation scene.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PROP4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s Global Ground Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Surfaces vs. Global Ground ===&lt;br /&gt;
&lt;br /&gt;
A terrain surface acts as a custom, unlevel or irregular ground for your propagation scene. EM.Cube's default global ground blocks the z &amp;amp;lt; 0 half-space everywhere in the computational domain. You can simply turn off the global ground and create one or more terrain objects and place them arbitrarily in the scene. You can also import an external terrain model or file. A terrain represents an impenetrable surface with a more complex surface profile. You can have one or more terrain objects of finite extents and place them on or above the global ground.&lt;br /&gt;
&lt;br /&gt;
Terrain objects have some important differences with objects of the &amp;amp;quot;Impenetrable Surface&amp;amp;quot; type:&lt;br /&gt;
&lt;br /&gt;
# While impenetrable blocks can be created using any of EM.Cube's solid or surface CAD object creation tools, terrain objects are created either using EM.Cube's '''Terrain Generator''' or by importing an external terrain file. &lt;br /&gt;
# Terrain objects belong to a special type of CAD objects called &amp;amp;quot;Tessellated Objects&amp;amp;quot;, which differ from other regular CAD [[Surface Objects|surface objects]] or EM.Cube's polymesh surfaces.&lt;br /&gt;
# Terrain surfaces do not diffract impinging rays at their many small edges.&lt;br /&gt;
# Terrain objects affect the elevation of other objects or transmitters or receivers that are located above them.&lt;br /&gt;
&lt;br /&gt;
Just as other blocks are grouped by their color, texture and material composition, terrain objects are also grouped in a similar fashion. Before you can generate or import a new terrain object, first you have to define a terrain group and specify its color/texture and material properties. To define a new terrain group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Terrain''' item in the Navigation Tree and select '''Insert New Terrain...''' A dialog for setting up the terrain properties opens up offering a of preloaded material type (Rock) with predefined green color and no texture.&lt;br /&gt;
* Specify a name for the terrain group and select a color or texture.&lt;br /&gt;
* Similar to other blocks, you have to specify the material properties, Permittivity (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and Electric Conductivity (&amp;amp;sigma;), of the terrain group. Rock with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m is the default material choice for a new terrain.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Terrain dialog.&lt;br /&gt;
&lt;br /&gt;
You can change the properties of a terrain surface group from its property dialog. Click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog, which is identical to the case of impenetrable surfaces. You can also use EM.Cube's Material List, which will be explained later. When a new terrain type is created, its node on the Navigation Tree becomes active. Under this node you can create and add new terrain objects. When a terrain node is active for drawing, all CAD object creation tools are disabled. You have three options for creating a new terrain object, which will be described in detail in the next sections of this manual:&lt;br /&gt;
&lt;br /&gt;
# Use EM.Cube's '''Terrain Generator'''.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.TRN'''&amp;amp;quot; type.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.DEM'''&amp;amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
=== Using Terrain Generator ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18.png|thumb|250px|[[Propagation Module]]'s Terrain Generator dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides a convenient and powerful Terrain Generator for creating a variety of terrain [[Surface Objects|surface objects]]. EM.Cube's Terrain Generator looks very similar to [[CubeCAD]]'s Surface Generator. However, whereas the Surface Generator creates a generic or polymesh surface object, Terrain Generator always creates another special type of object known as a '''Tessellated Object'''. A terrain object is much simpler than EM.Cube's polymesh objects and is usually made up of triangular or quadrilateral facets. As such, terrain objects have limited editing capabilities. For example, you can cut, copy, paste, translate or rotate  terrain objects. But operations like scaling, mirroring, grouping (composite), arraying, exploding, linking or Boolean operations do not work on terrain objects.&lt;br /&gt;
&lt;br /&gt;
To create a new terrain object using Terrain Generator, first you need to define a terrain group in the Navigation Tree. Right click on the name of the terrain node and select '''Terrain Generator...''' from the contextual menu. This opens up the Terrain Generator Dialog. Using Terrain Generator, you can build a single terrain surface or an array of surfaces patched together. Some of the available terrain models include:&lt;br /&gt;
&lt;br /&gt;
# Flat Plane&lt;br /&gt;
# Hill (Elliptic Quadratic)&lt;br /&gt;
# Mountain (Elliptic Cone)&lt;br /&gt;
# 1-D and 2-D Cliff&lt;br /&gt;
# Gaussian Hump&lt;br /&gt;
# Undulated Sinusoid&lt;br /&gt;
# Undulated Sinc&lt;br /&gt;
# Super-quadratic Plateau&lt;br /&gt;
# Custom Function&lt;br /&gt;
# XY Grid Data&lt;br /&gt;
&lt;br /&gt;
In all of the above models, you can set the height of the surface object to an any desired value. You set the lateral extents of the surface and its resolution along the X and Y directions in the boxes labeled '''Range Start''', '''Range Stop''' and '''Range Step'''. The step values along the X and Y directions are a measure of surface smoothness: the smaller the step values, the higher the resolution and the smoother the resulting terrain object.&lt;br /&gt;
&lt;br /&gt;
Some surface types have an additional shape factor called '''Alpha''' that is identical to the alpha parameter in the surface generator. For example, a Gaussian Hump is defined as exp(-r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/(2a&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)), where r is the polar radius. For a Super-quadratic Hump, the input parameter a defines the degree of the super-quadratic surface. a = 2 corresponds to an ellipsoid. Larger values of a get close to a rectangular base with rounded corners. An undulated sinusoidal surface is defined by cos(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*cos(pay/D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;), and an undulated sinc is defined by D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;*D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;*sin(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*sin(pay/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/(2pxy), where D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; are the X and Y dimensions, respectively. Terrain Generator creates a unit cell based on the specified surface type. From the same dialog, you can also produce an array arrangement of such unit cells. Simply enter any number of elements along the X and Y directions in the boxes labeled '''Array'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP19.png|800px]]  &lt;br /&gt;
&lt;br /&gt;
Figure: A 4 × 4 array of hill terrain objects.&lt;br /&gt;
&lt;br /&gt;
You can define any arbitrary surface by entering an equation of the two [[variables]] x and y as z = f(x,y). In this case, you have to select the '''Custom Function''' option in the dropdown list labeled '''Model'''. You should enter your equation as any mathematical expression in the box labeled '''Function f(x,y)'''. You can use any of EM.Cube's mathematical functions listed in the '''Function Dialog''' or combine several of them. Note that after selecting the custom function option, the height of the surface is determined by your equation, and the '''Height''' box is disabled. You can also introduce random noise and create a rough terrain. You can do this by setting a nonzero value for '''Noise''', which represent the RMS peak-to-valley amplitude of the surface roughness. The figures below show two custom terrain surfaces modeled by the equation z = (x.y)/20 defined over the range [0, 10] in both X and Y directions. Random noise has been added to both surfaces, with the noise amplitude being 0.2 and 0.5 for the left and right figures, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP21.png|400px]] [[File:PROP20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Two noisy custom terrain surfaces both defined as z = (x.y)/20: (Left) RMS noise amplitude = 0.2, (right) RMS noise amplitude = 0.5.&lt;br /&gt;
&lt;br /&gt;
=== Generating Grid-Based Terrain ===&lt;br /&gt;
&lt;br /&gt;
Every time you create a new terrain object using Terrain Generator, an ASCII data file named &amp;amp;quot;GeneratedTerrain&amp;amp;quot; with a &amp;amp;quot;'''.TRN'''&amp;amp;quot; file extension is created and placed in your project folder. This is EM.Cube's simple native terrain file format that basically lists all the (x, y, z) coordinates of the generated surface points on a horizontal, rectangular XY grid. Terrain Generator simply takes your custom function definition or one of the selected catalog surface types and generates the digital elevation data on the specified grid.  &lt;br /&gt;
&lt;br /&gt;
Another type of terrain model that the terrain generator provides is '''XY Grid Data'''. In this case, you define a rectangular XY grid with a uniform grid cell size along the X and Y directions and manually define the Z-elevation for each grid point. This is similar to the surface generator's &amp;amp;quot;2D Uniform Grid&amp;amp;quot; model type in [[CubeCAD]]. Based on your input to '''Range Start''', '''Range Stop''' and '''Range Step''' along X and Y, a 2D grid is set up and displayed in a table at the bottom of the terrain generator dialog. By default, all the Z-elevations are set to zero initially. You can click on each table cell and overwrite it with a new value. At the end, click the '''Create''' button of the dialog to add the new grid-based terrain object to the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:terrain10_tn.png]]&lt;br /&gt;
&lt;br /&gt;
A grid-based terrain object.&lt;br /&gt;
&lt;br /&gt;
=== Importing &amp;amp;amp; Exporting Terrain Models ===&lt;br /&gt;
&lt;br /&gt;
You can import two types of terrain in EM.Cube's [[Propagation Module]]. The first type is &amp;amp;quot;'''.TRN&amp;amp;quot;''' terrain file, which is EM.Cube's native terrain format. It is a basic digital elevation map with a very simple ASCII data file format. The resolution of the terrain map in the X and Y directions is specified in meters as STEPS. The (x, y, z) coordinates of the terrain points are then listed one point per line. The other type of terrain format supported by EM.Cube is the standard '''7.5min DEM''' file format with a '''.DEM''' file extension. &lt;br /&gt;
&lt;br /&gt;
To import an external terrain model, first you have to create a terrain group node in the Navigation Tree. Right click on the name of the terrain group in the Navigation Tree and select either '''Import Terrain...''' or '''Import DEM File...''' A standard Windows '''Open Dialog''' opens up, with the file type set to .TRN or .DEM extensions, respectively. You can browse your folders and find the right terrain model file to import.&lt;br /&gt;
&lt;br /&gt;
You can also export all the terrain objects in the project workspace as a terrain file with a '''.TRN''' file extension. You can even import a DEM terrain model from an external file and then save and export it as a native terrain (.TRN) file. To export the terrain, select '''File''' &amp;amp;gt; '''Export...''' from [[Propagation Module]]'s '''File Menu'''. The standard Windows Save Dialog opens up with the default file type set to '''.TRN'''. Type in a name for your new terrain file and click the '''Save''' button to export the terrain data.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-12_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figur: An imported external terrain model.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Surface Models ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP26.png|thumb|250px|Propagation Module's Penetrable Surface Dialog showing a three-layer wall composition]]&lt;br /&gt;
&lt;br /&gt;
Most of the time, your outdoor propagation scene consists of simple buildings made of single-layer walls with standard material properties (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;). In the case of a single-layer impenetrable surface, the specular interface is an infinite dielectric half-space, which reflects the impinging rays. Single-layer penetrable surfaces, on the other hand, involve finite-thickness dielectric walls, which both reflect and transmit the incident rays. Similarly, most of your indoor propagation scenes involve simple single-layer penetrable walls with the specified material properties &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. A thin wall acts like a finite-thickness dielectric slab that both reflects and transmits incident rays. In the case of the global ground or terrain objects, only ray reflection off the ground surface is considered.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[Propagation Module]], you can define multilayer surfaces with both reflection and transmission properties. You can define multilayer impenetrable buildings, multilayer penetrable walls, and multilayer terrain, with an arbitrary number of layers having different material compositions. You define a multilayer surface in the property dialog of a block, whether impenetrable, penetrable or terrain. In the section entitled '''Surface Type''', two options are available: '''Standard Material''' or '''User Defined Model'''. For simple multilayer walls, select the '''Standard Material''' option. You can add new layers with arbitrary thickness and material parameters to the existing layers. To insert a new layer, deselect any items in the layer list, and click the '''Add/Edit''' button to open the &amp;amp;quot;Add Layer&amp;amp;quot; Dialog. Here you can enter a name for the new layer and values for its '''Thickness''', &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. You may also delete any layer by selecting and highlighting it and clicking the '''Delete''' button. You can move layers up or down using the '''Move Up''' and '''Move Down''' buttons and change the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
You can also search EM.Cube's material database by clicking the '''Material''' button of &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. This opens the '''Materials''' Dialog. Inside the material list select and highlight any row and click the '''OK''' button. The selected material will fill out all the fields in the &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. Inside the Materials Dialog, you can type the few first letters of any material, and it will take you to the corresponding row of the list.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Transferring Objects From Or To Other Modules ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube's [[Propagation Module]] and draw a solid object like a box in the project workspace without having defined any surface groups, it is assumed to be of the impenetrable surface type. A default impenetrable surface group called Block_1 is automatically added to the Navigation Tree, which holds your newly drawn object. The default group has the material properties of &amp;amp;quot;Brick&amp;amp;quot; (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m.) with a dark brown color. You can continue drawing new objects in the project workspace and adding them under this block node. Or you can define a new surface type with different properties. By default, the last surface group that was defined is '''Active'''. The current active surface group is always listed in bold letters in the Navigation Tree. When you draw a new object, it is always inserted under the current active surface group. Any surface group can be activated by right clicking its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move any object from its current surface group into any other available surface group. First select the object, then right click on its surface and select '''MoveTo &amp;amp;gt; Propagation &amp;amp;gt;'''. A submenu appears which lists all the available surface groups where you can transfer the selected object. You can also move objects among surface groups by selecting their names in the Navigation Tree and using the contextual menu. In a similar way, you can transfer objects from [[Propagation Module]] to EM.Cube's other modules or vice versa. '''Keep in mind that all the external model files such as STEP, IGES, STL, etc. are first imported to EM.Cube's [[CubeCAD]], from which you can transfer them to other modules.''' First select the object, then right click and select '''MoveTo &amp;amp;gt;'''. In the submenu you will see a list of all the EM.Cube modules that have at least one available group where you can transfer your selected object. You can select multiple objects for transfer. When using the keyboard's '''Shift Key''' or '''Ctrl Key''' for multiple selection, make sure that those keys are held down, when you right click to access the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Defining Sources &amp;amp;amp; Observables ==&lt;br /&gt;
&lt;br /&gt;
Like every other electromagnetic solver, EM.Cube's SBR ray tracer requires a source for excitation and one or more observables for generation of simulation data. EM.Cube's new [[Propagation Module]] offers several types of sources and observables for a SBR simulation. You can mix and match different source types and observable types depending on the requirements of your modeling problem. There are two types of sources:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Transmitter Sets|Transmitter]]&lt;br /&gt;
* [[#Hertzian Dipole Sources|Hertzian Dipole]]&lt;br /&gt;
&lt;br /&gt;
There are four types of observables:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Receiver Sets|Receivers]]&lt;br /&gt;
* [[#Defining Field Sensors|Field Sensor]]&lt;br /&gt;
* Far Fields&lt;br /&gt;
* Huygens Surface&lt;br /&gt;
&lt;br /&gt;
The simplest SBR simulation can be performed using a short dipole source with a specified field sensor plane. In this way, EM.Cube computes the electric and magnetic fields radiated by your dipole source in the presence of your multipath propagation environment. A &amp;amp;quot;classic&amp;amp;quot; urban propagation scene can be set up using a &amp;amp;quot;Transmitter&amp;amp;quot; source and an array of &amp;amp;quot;Receiver&amp;amp;quot; observables. A transmitter is a point radiator with a user defined radiation pattern. A receiver is a polarization-matched isotropic point radiator that collects the received rays at its aperture. Using receivers, you can calculate the received power coverage map of your propagation scene. You can also calculate your channel's path loss between the transmitter and all the receivers. &amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18(1).png|thumb|[[Propagation Module]]'s Transmitter dialog with a short dipole radiator selected]]&lt;br /&gt;
Earlier versions of EM.Cube's [[Propagation Module]] used to offer an isotropic radiator with vertical or horizontal polarization as the simplest transmitter type. This release of EM.Cube has abandoned isotropic radiator transmitters because they do not exist physically in a real world. Instead, the default transmitter radiator type is now a Hertzian dipole. Note that before defining a transmitter, first you have to define a base set to establish the location of the transmitter. Most simulation scenes involve only a single transmitter. Your base set can be made up of a single point for this purpose. &lt;br /&gt;
&lt;br /&gt;
To define a new Transmitter Set, go to the '''Sources''' section of the Navigation Tree, right click on the '''Transmitters''' item and select '''Insert Transmitter...''' A dialog opens up that contains a default name for the new Transmitter Set as well as a dropdown list labeled '''Select Base Set'''. In this list you will see all the available base sets already defined in the project workspace. Select the desired base set to associate with the transmitter set. Note that if the base set contains more than one point, then more than one transmitter will be created and contained in your transmitter set. After defining a transmitter set, the base points change their color to the transmitter color, which is red by default.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Radiator&amp;amp;quot; section of the dialog, you have two options to choose from: &amp;amp;quot;Short Dipole&amp;amp;quot; and &amp;amp;quot;User Defined&amp;amp;quot;. The default option is short dipole. A short dipole radiator has a '''Length'''''dl'' expressed in project units, a current '''Amplitude''' in Amperes and a current '''Phase''' in degrees. The '''Direction''' of the dipole is determined by its unit vector that has three X, Y and Z components. By default, a Z-directed short dipole radiator is assumed. You can change all parameters of the dipole as you wish. Keep in mind that all the transmitters belonging to the same set have parallel radiators with identical properties.&lt;br /&gt;
&lt;br /&gt;
=== Defining Base Point Sets ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP1.png|thumb|[[Propagation Module]]'s Base Set dialog]]&lt;br /&gt;
In order to tie up transmitters and receivers with CAD objects in the project workspace, EM.Cube uses point objects to define transmitters and receivers. These point objects represent the base of the location of transmitters and receivers in the computational domain. Hence, they are grouped together as &amp;amp;quot;Base Sets&amp;amp;quot;. You can easily interchange the role of transmitters and receivers in a scene by switching their associated bases. The usefulness of concept of base sets will become apparent later when you place transmitters or receivers on an irregular terrain and adjust their elevation.   &lt;br /&gt;
&lt;br /&gt;
To create a new base set, right click on the '''Base Sets''' item of Navigation Tree and select '''Insert Base Set...''' A dialog for setting up the Base Set properties opens up.&lt;br /&gt;
&lt;br /&gt;
# Enter a name for the base set and change the default blue color if you wish. It is useful to differentiate the base sets associated with transmitters and receivers by their color.&lt;br /&gt;
# Click the '''OK''' button to close the Base Set Dialog.&lt;br /&gt;
&lt;br /&gt;
Once a base set node has been added to the Navigation Tree, it becomes the active node for new object drawing. Under base sets, you can only draw point objects. All other object creation tools are disabled. A point is initially drawn on the XY plane. Make sure to change the Z-coordinate of your radiator, otherwise, it will fall on the global ground at z = 0. You can also create arrays of base points under the same base set. This is particularly useful for setting up receiver grids to compute coverage maps. Simply select a point object and click the '''Array Tool''' of '''Tools Toolbar''' or use the keyboard shortcut &amp;amp;quot;A&amp;amp;quot;. Enter values for the X, Y or Z spacing as well as the number of elements along these three directions in the Array Dialog. In most propagation scenes you are interested in 2D horizontal arrays along a fixed Z coordinate (parallel to the XY plane).&lt;br /&gt;
&lt;br /&gt;
=== Defining Transmitter Sets ===&lt;br /&gt;
&lt;br /&gt;
A short dipole is the closest thing to an omni-directional radiator. The direction or orientation of the short dipole determines its polarization. In many applications, you may rather want to use a directional antenna for your transmitter. You can model a radiating structure using EM.Cube's FDTD, Planar, MoM3D or PO modules and generate a 3D radiation pattern data file for it. These data are stored in a specially formatted file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension, which contains columns of spherical &amp;amp;phi; and &amp;amp;theta; angles as well as the real and imaginary parts of the complex-valued far field components '''E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;''' and '''E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;'''. The &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field determine the polarization of the transmitting radiator. &lt;br /&gt;
&lt;br /&gt;
To define a directional transmitter radiator, you need to select the &amp;amp;quot;User Defined&amp;amp;quot; option in the &amp;amp;quot;Radiator&amp;amp;quot; section of the Transmitter Dialog. You can do this either at the time of creating a transmitter set, or afterwards by opening the property dialog of the transmitter set. In the &amp;amp;quot;Custom Pattern Parameters&amp;amp;quot;, click the '''Import Pattern''' button to set the path for the radiation data file. This opens up the standard Windows Open dialog, with the default file type or extension set to &amp;amp;quot;.RAD&amp;amp;quot;. Browse your folders to find the right data file. A radiation pattern file usually contains the value of &amp;amp;quot;Total Radiated Power&amp;amp;quot; in its file header. This is used by default for power calculations in the SBR simulation. However, you can check the box labeled &amp;amp;quot;'''Custom Power'''&amp;amp;quot; and enter a value for the transmitter power in Watts. EM.Cube can also rotate the imported radiation pattern arbitrarily. In this case, you need to specify the '''Rotation''' angles in degrees about the X-, Y- and Z-axes. Note that these rotations are performed sequentially and in order: first a rotation about the X-axis, then a rotation about the Y-axis, and finally a rotation about the Z-axis. &lt;br /&gt;
&lt;br /&gt;
[[File:PROP19(1).png]] [[File:PROP20(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Transmitter dialog with a user defined radiator selected.&lt;br /&gt;
&lt;br /&gt;
=== Multiple Transmitters vs. Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulations are fully coherent and 3D-polarimetric. This means that the phase and polarization of all the rays are maintained and processed during their bounces in the scene. Your propagation scene can have more than one transmitter. During an SBR simulation, all the rays emanating from all the transmitters are traced in the propagation scene. All the received rays at a given receiver location are summed coherently and vectorially. This is based on the principle of linear superposition. All the transmitters belonging to the same transmitter set have the same radiation properties. They are either parallel short dipole radiators with the same current amplitudes and phases, or parallel user defined radiators with identical radiation patterns. As these transmitters are placed at different spatial locations, they effectively form an antenna array with identical elements. The array factor is simply determined by the coordinates of the base points. If you want to have different amplitude or phases, then you need to define different transmitter sets.&lt;br /&gt;
&lt;br /&gt;
If that radiators are indeed the elements of an actual antenna array with a half wavelength spacing or so, we recommend that you import the radiation pattern of the array structure instead and replace the whole multi-radiator system with a single point transmitting radiator in your propagation scene. This case is usually encountered in MIMO systems, and using an equivalent point transmitter is an acceptable approximation because the total size of the array aperture is usually much smaller than the dimensions of your propagation scene and its representative length scales. In that case, you need to position the equivalent point radiator at the radiation center of the antenna array. This depends on the physical structure of the antenna array. However, keep in mind that any reasonable guess may still provide a good approximation without any significant error in the received ray data.    &lt;br /&gt;
&lt;br /&gt;
=== Defining Receiver Sets ===&lt;br /&gt;
&lt;br /&gt;
Receivers act as observables in a propagation scene. The objective of a SBR simulation is to calculate the far-zone electric fields and the total received power at the location of a receiver. In that sense, receivers indeed act as field observation points. You need to define at least one receiver in the scene before you can run a SBR simulation. You define the receivers of your scene by associating them with the base sets you have already defined in the project workspace. Unlike transmitters that usually one or few, a typical propagation scene may involve a large number of receivers. To generate a wireless coverage map, you need to define an array of points as your base set.    &lt;br /&gt;
&lt;br /&gt;
To define a new Receiver Set, go to the Observables section of the Navigation Tree, right click on the '''Receivers''' item and select '''Insert Receiver...''' A dialog opens up that contains a default name for the new Receiver Set as well as a dropdown list labeled '''Select Radiator Set'''. In this list you will see all the available base sets that you have already define in the project workspace. Select and designate the desired base set as the receiver set. Note that if the base set contains more than one point, all of them are designated as receivers. After defining a receiver set, the points change their color to the receiver color, which is yellow by default. The first element of the set is represented by a larger ball of the same color indicating that it is the selected receiver in the scene. The Receiver Set Dialog is also used to access individual receivers of the set for data visualization at the end of a simulation. At the end of an SBR simulation, the button labeled &amp;amp;quot;Show Ray Data&amp;amp;quot; becomes enabled. Clicking this button opens the Ray Data Dialog, where you can see a list of all the received rays at the selected receiver and their computed characteristics.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP21(1).png]] [[File:PROP22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Receiver dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Field Sensors ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|[[Propagation Module]]'s Field Sensor dialog]]&lt;br /&gt;
As an asymptotic electromagnetic field solver, the SBR simulation engine can compute the electric and magnetic field distributions in a specified plane. In order to view these field distributions, you must first define field sensor observables before running the SBR simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear. &lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.   &lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a SBR simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|E_{tot}|} = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|H_{tot}|} = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Computing Radiation Patterns In SBR ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
== Scene Discretization &amp;amp;amp; Adjustment ==&lt;br /&gt;
&lt;br /&gt;
=== The Need For Discretization Of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
In a typical SBR simulation, a ray is traced from the location of the source until it hits a scatterer. The SBR method assumes that the ray hits either a flat facet of the scatterer or one of its edges. In the case of hitting a flat facet, the specular point is used to launch new reflected and transmitted rays. The surface of the facet is treated as an infinite dielectric medium interface, at which the reflection and transmission coefficients are calculated. In the case of hitting an edge, new diffracted rays are generated in the scene. However, only those who reach a nearby receiver in their line of sight are ever taken into account. In other words, diffractions are treated locally.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to draw any type of surface or solid CAD objects under impenetrable and penetrable surface groups. Some of these objects have flat faces such as boxes, pyramids, rectangle or triangle strips, etc. Some others contain curved surfaces or curved boundaries such as cylinders, cones, etc. All the non-flat surfaces have to be discretized in the form of a collection of smaller flat facets. EM.Cube uses a triangular surface mesh generator to discretize the penetrable and impenetrable [[Surface Objects|surface objects]] of your propagation scene. This mesh generator is very similar to the ones used in EM.Cube's two other modules: MoM3D and Physical Optics (PO). &lt;br /&gt;
&lt;br /&gt;
You can build a variety of surface and [[Solid Objects|solid objects]] using EM.Cube's native &amp;amp;quot;Curve&amp;amp;quot; CAD objects like lines, polylines, circles, etc. You can use tools like Extrude, Loft, Strip-Sweep, Pipe-Sweep, etc. to transform curves into surface or [[Solid Objects|solid objects]]. '''However, keep in mind that all the &amp;amp;quot;Curve&amp;amp;quot; CAD objects are ignored by the SBR mesh generator and are therefore not sent to the simulation engine.'''&lt;br /&gt;
&lt;br /&gt;
=== Viewing SBR Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can view and examine the discretized version of your scene objects as they are sent to the SBR simulation engine. To view the mesh, click the '''Mesh''' [[File:mesh_tool.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''', or use the keyboard shortcut '''Ctrl+M'''. A triangular surface mesh of your physical structure appears in the project workspace. In this case, EM.Cube enters it mesh view mode. You can perform view operations like rotate view, pan, zoom, etc. But you cannot select objects, or move them or edit their properties. To get out of the Mesh View and return to EM.Cube's Normal View, press the '''Esc Key''' of the keyboard, or click the Mesh button of the Simulate Toolbar once again, or go to the Simulate Menu and deselect the '''Discretization &amp;amp;gt;''' '''Show Mesh''' item.&lt;br /&gt;
&lt;br /&gt;
You can adjust the mesh resolution and increase the geometric fidelity of discretization by creating more and finer triangular facets. On the other hand, you may want to reduce the mesh complexity and send to the SBR engine only a few coarse facets to model your buildings. To adjust the mesh resolution, open the Mesh Settings Dialog by clicking the '''Mesh Settings''' [[File:mesh_settings.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt;''' '''Mesh Settings...'''. This dialog provides a single parameters: '''Edge Length'''., which has a default value of 100 project units. If you are already in the Mesh View Mode and open the Mesh Settings Dialog, you can see the effect of changing the edge length using the '''Apply''' button. Click OK to close the dialog.&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules that express the default mesh density based on the wavelength, the resolution of the SBR mesh generator is expressed in project length units. The default edge length value of 100 units might be too large for non-flat objects. You may have to use a lower value to capture the curvature of your curved structures adequately. &lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-29.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Special Discretized Object Types ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, terrain objects are represented by and saved as special &amp;amp;quot;Tessellated&amp;amp;quot; objects with quadrilateral cells. This is true of terrain objects that you create yourself using EM.Cube's Terrain Generator as well as all the terrain objects that you import from external files to your project. The center of each cell represents the terrain elevation at that point. Tessellated objects are considered as discretized objects by EM.Cube and they are not meshed one more time by the SBR mesh generator. Each quadrilateral cell is divided into two triangular cells before being passed to the SBR simulation engine. Therefore, when using EM.Cube's Terrain Generator to create a new terrain object, you have to pay special attention to the resolution of the terrain object as it determines the total number of terrain facets sent to the simulation engine. A high resolution terrain, although looking better and more realistic, may easily lead to an enormous computational problem.&lt;br /&gt;
&lt;br /&gt;
You can use EM.Cube's &amp;amp;quot;Polymesh&amp;amp;quot; tool to discretize solid and surface CAD objects. You can manually control the mesh characteristics of polymesh objects including inserting new nodes on faces and edges or deleting existing nodes. In addition, EM.Cube's Solid Generator and Surface Generator tools create ploymesh solids and surfaces, respectively. Like tessellated object, polymesh objects are also considered as discretized objects by EM.Cube and they are not meshed again by the SBR mesh generator.   &lt;br /&gt;
&lt;br /&gt;
=== SBR Mesh Rules &amp;amp;amp; Considerations ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
=== Adjusting Block Elevation On Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, buildings and all other CAD objects are initially created on the XY plane by default. In other words, the Z-coordinate of the local coordinate system (LCS) of all blocks is set to zero until you change them. As long as you use the global ground, all is fine as your buildings are seated on the ground. When your propagation scene has an irregular terrain, you want to place your buildings on the terrain and not buried under it. Buildings in EM.Cube are not adjusted to the terrain elevation automatically. You need to instruct EM.Cube to do so.&lt;br /&gt;
&lt;br /&gt;
To update the building positions and adjust their elevation to the underlying terrain, right click on the '''Terrain''' item of the Navigation Tree and select '''Adjust Scene Elevation''' from the context menu. All the blocks in the scene are automatically elevated in the Z direction such that their bases sit on the terrain. In effect, all the blocks are translated along the global Z axis by proper amounts such that their local Z coordinate equals the Z-elevation of the underlying terrain object. This feature is particularly useful if you change the location of the terrain or import a new terrain after the blocks have been created.&lt;br /&gt;
&lt;br /&gt;
Note: You have to make sure that the resolution of your terrain, its fluctuation scale and building dimensions are all comparable. Otherwise, on a high-resolution, rapidly varying terrain, you will have buildings whose bottoms are in contact with the terrain only at a few points and parts of them hang in the air.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_adjust1_tn.png|400px]] [[File:prop_adjust2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Scene with Buildings and Terrain Before and After Adjusting Elevation&lt;br /&gt;
&lt;br /&gt;
=== Transmitters &amp;amp;amp; Receivers Above An Irregular Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, all the transmitters and receivers are tied up with point objects in the project workspace. These point objects are grouped and organized in base sets. When you move the point objects or change their coordinates, all of their associated transmitters or receivers immediately follow them to the new location. For example, you usually define a grid of receivers using a base set that is made up of a uniformly spaced array of points and spread them in your scene. All of these receivers have the same height because their associated base points all have the same Z-coordinate. When your receivers are located above a flat terrain like the global ground, their Z-coordinates are equal to their height above the ground, as the terrain elevation is fixed and equal to zero everywhere. The same is true for transmitters, too.   &lt;br /&gt;
&lt;br /&gt;
In many propagation modeling problems, your transmitters and receivers may be located above an irregular terrain with varying elevation across the scene. In that case, you may want to place your transmitters or receivers at a certain height above the underlying ground. The Z-coordinate of a transmitter or receiver is now the sum of the terrain elevation at the base point and the specified height. EM.Cube gives you the option to adjust the transmitter and receiver sets to the terrain elevation. This is done for individual transmitter sets and individual receiver sets. At the top of the Transmitter Dialog there is a check box labeled &amp;amp;quot;'''Adjust Tx Sets to Terrain Elevation'''&amp;amp;quot;. Similarly, at the top of the Receiver Dialog there is a check box labeled &amp;amp;quot;'''Adjust Rx Sets to Terrain Elevation'''&amp;amp;quot;. These boxes are unchecked by default. As a result, your transmitter sets or receiver sets coincide with their associated base points in the project workspace. If you check these boxes and place a transmitter set or a receiver set above an irregular terrain, the transmitters or receivers are elevated from the location of their associated base points by the amount of terrain elevation as can be seen in the figure below.   &lt;br /&gt;
&lt;br /&gt;
To better understand why there are two separate sets of points in the scene, note that a point array (CAD object) is used to create a uniformly spaced base set. The array object always preserves its grid topology as you move it around the scene. However, the transmitters or receivers associated with this point array object are elevated above the irregular terrain and no longer follow a strictly uniform grid. If you move the base set from its original position to a new location, the base points' topology will stay intact, while the associated transmitters or receivers will be redistributed above the terrain based on their new elevations.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_txrx1_tn.png|400px]] [[File:prop_txrx2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Transmitters and receivers adjusted above an uneven terrain and their associated base sets.&lt;br /&gt;
&lt;br /&gt;
== Running A SBR Simulation ==&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] offers three types of ray tracing simulations:&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
An SBR analysis is the simplest ray tracing simulation and involves the following steps:&lt;br /&gt;
&lt;br /&gt;
# Set the unit of project scene and the frequency of operation. Note that EM.Cube's default project unit is millimeter. When working with the [[Propagation Module]], pay attention to the project unit. Radio propagation problems usually require meter, mile or kilometer as the project unit.&lt;br /&gt;
# Create the blocks and draw the buildings at the desired locations.&lt;br /&gt;
# Keep the default ray domain and accept the default global ground or change its material properties.&lt;br /&gt;
# Define the base sets (at least one for the transmitter and one for the receiver).&lt;br /&gt;
# Define the transmitter and receiver(s) using the available base sets.&lt;br /&gt;
# Run the SBR simulation engine.&lt;br /&gt;
# Visualize the coverage map and plot other data.&lt;br /&gt;
&lt;br /&gt;
You can access the [[Propagation Module]]'s run dialog by clicking the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or by selecting '''Simulate &amp;amp;gt; Run...''' or using the keyboard shortcut '''Ctrl+R'''. When you click the '''Run''' button, a new window opens up that reports the different stages of the SBR simulation and indicates the progress of each stage. After the SBR simulation is successfully completed, a message pops up and prompts the completion of the process.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== SBR Simulation Parameters ===&lt;br /&gt;
&lt;br /&gt;
There are a number of SBR simulation settings that can be accessed and changed from the SBR Settings Dialog. To open this dialog, click the button labeled '''Settings''' on the right side of the '''Select Engine''' dropdown list in the Run Dialog. EM.Cube's SBR simulation engine allows you to separate the physical effects that are calculated during a ray tracing process. You can selectively enable or disable '''Ray Reflection''', '''Ray Transmission''' and '''Ray Diffraction'''. By default, all three effects are checked and included in the computations. Separating these effects sometimes help you better analyze your propagation scene and understand the impact of various blocks in the scene.&lt;br /&gt;
&lt;br /&gt;
EM.Cube requires a finite number of ray bounces for each original ray emanating from a transmitter. This is very important in situations that may involve resonance effects where rays get trapped among certain group of surfaces and may bounce back and forth indefinitely. This is set using the box labeled &amp;amp;quot;'''Max No. Ray Bounces'''&amp;amp;quot;, which has a default value of 10. Note that the maximum number of ray bounces directly affects the computation time as well as the size of output simulation data files. This can become critical for indoor propagation scenes, where most of the rays undergo a large number of reflections.   &lt;br /&gt;
&lt;br /&gt;
As rays travel in the scene and bounce from surfaces, they lose their power and their amplitudes diminish. From a practical point of view, only rays that have power above the receiver sensitivity threshold can be effectively received. Therefore, all the rays whose power fall below a specified power threshold are discarded. The '''Ray Power Threshold''' is specified in dBm and has a default value of -100dBm. Keep in mind that the value of this threshold directly affects the accuracy of the simulation results as well as the size of the output data file.&lt;br /&gt;
&lt;br /&gt;
You can also set the '''Angular Resolution''' of the transmitter rays in degrees. By default, every transmitter emanates equi-angular ray tubes at a resolution of 1 degree. Lower angular resolutions larger than 1° speed up the SBR simulation significantly, but they may compromise the accuracy. Higher angular resolutions less than 1° increase the accuracy of the simulating results, but they also increase the computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP13.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s SBR Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== The Coverage Map ===&lt;br /&gt;
&lt;br /&gt;
If the associated radiator set is isotropic, so will be the transmitter set. By default, an isotropic transmitter has vertical polarization. You can use the '''Polarization''' radio button to select one of the two options: '''Vertical''' or '''Horizontal'''. If the associated radiator set consists of '''Short Dipole''' or '''User Defined''' radiators, it is indicated in the transmitter property dialog. In the case of a short dipole radiator, you can set a value for the dipole current in Amperes. The radiation resistance of a short dipole of length ''dl'' is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; R_r = 80\pi^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:eqngr6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The radiated power of a short dipole carrying a current I&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; P_{rad} = \frac{1}{2} R_r |I_0|^2 = 40\pi^2 |I_0|^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:shortdipole.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For isotropic and user defined radiators you can set the '''Input Power''' and '''Phase''' of a transmitter set in Watts and degrees, respectively. This can be accessed from the '''Transmitter Chain''' dialog, which will be described in detail in the next section. The radiation pattern of the associated radiator set is normalized and used in conjunction with the input power value to create a weighted distribution of transmitted rays. In certain cases like hybrid simulations, you may want to use the actual values of the far field to define the transmitter power rather than a normalized radiation pattern. Note that the pattern (.RAD) file contains the value of total radiated power in its header. In this case, check the box labeled '''&amp;amp;quot;Calculate Power From Radiation Pattern&amp;amp;quot;'''. This is calculated directly from the complex &amp;amp;theta; and &amp;amp;phi; components of the far field data by integrating them over the entire space (4&amp;amp;pi; solid angle). Note that this option is available only when the radiator is of the User Defined type. When this box is checked, the transmitter chain button is grayed out. By default, an isotropic transmitter emanates rays uniformly in all directions at the angular resolution specified by the user. A transmitter with a user defined associated radiator may represent a highly directional radiation pattern with the main beam pointing in a certain direction. You can additionally force and limit the '''Angular Extents''' of rays to a certain solid angle around the transmitter. This is especially useful and computationally efficient when the transmitter is on one side of the scene, and all the scatterers and receivers are on the other side. In this case, there is no need to generate rays in all directions. To limit the angular extents of rays, define the Start and End values for both Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles. The value of the angular resolution of the rays can be changed from the Run Dialog as will be discussed later.&lt;br /&gt;
&lt;br /&gt;
In a regular SBR simulation, you have a transmitter and one or more arrays of receivers in your scene. At the end of the simulation, you can visualize the coverage map of the transmitter over the receiver sets. A coverage map shows the total '''Received Power''' by each of the receivers and is visualized as a color-coded intensity plot. You can visualize the coverage maps of individual receiver sets. At the end of a SBR simulation, each Received Power Coverage Map is listed under the receiver set's name in the Navigation Tree. To display a coverage map, simply click on its entry in the Navigation Tree. The coverage map plot appears in the Main Window overlaid on the scene. A legend box on the right shows the color scale and units (dB). The 3-D coverage maps are displayed as horizontal confetti above the receivers. If the receivers are packed close to each other, you will see a continuous confetti map. If the receivers are far apart, you will see individual colored squares. You can also visualize coverage maps as colored 3-D cubes. This may be useful when you set up your receivers in a vertical arrangement or the scene has a highly uneven terrain. To change the type of coverage map visualization, open the receiver set's property dialog and select the desired option for '''Coverage Map: Confetti''' or '''Cube''' in the '''&amp;amp;quot;Visualization Options&amp;amp;quot;''' section of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run11_tn.png|400px]] [[File:prop_run12_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Received power coverage map: (Left) confetti style, and (Right) cube style.&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the coverage map by right clicking on its entry in the Navigation Tree and selecting '''Properties...''' or by double-clicking on the legend box. In the Output Plot Settings dialog, you can choose from one of three Color Map options: '''Default''', '''Rainbow''' and '''Grayscale'''. The visualization plot uses default values for the color scale. In the section titled &amp;amp;quot;Limits&amp;amp;quot;, you can choose the radio button labeled '''User Defined'''. Then, you have to enter new values for the '''Lower''' and '''Upper''' Limits of the plot. You can also show or hide the Legend Box or change its '''Background''' and '''Foreground''' colors by clicking the buttons provided for this purpose.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run4.png]]&lt;br /&gt;
&lt;br /&gt;
Output Plot Settings&lt;br /&gt;
&lt;br /&gt;
=== The Ray Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a SBR simulation, each receiver receives a number of rays. Some receivers may not receive any rays at all. You can visualize all the rays received by a certain receiver from the active transmitter of the scene. To do this, right click the '''Receivers''' item of the Navigation Tree. From the context menu select '''Show Received Rays'''. All the rays received by the currently selected receiver of the scene are displayed in the scene. The rays are identified by labels, are ordered by their power and have different colors for better visualization. You can display the rays for only one receiver at a time. The receiver set property dialog has a list of all the individual receivers belonging to that set. To display the rays received by another receiver, you have to change the '''Selected Receiver''' in the receiver set's property dialog. If you keep the mouse focus on this dropdown list and roll your mouse scroll wheel, you can scan the selected receivers and move the rays from one receiver to the next in the list. To remove the visualized rays from the scene, right click the Receivers item of the Navigation Tree again and from the context menu select '''Hide Received Rays'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run5_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Visualization of received rays at the location of the selected receiver.&lt;br /&gt;
&lt;br /&gt;
You can also view the ray parameters by opening the property dialog of a receiver set. By default, the first receiver of the set is always selected. You can select any other receiver from the drop-down list labeled '''Selected Receiver'''. If you click the button labeled '''Show Ray Data''', a new dialog opens up with a table that contains all the received rays at the selected receiver and their parameters:&lt;br /&gt;
&lt;br /&gt;
* Delay is the total time delay that a ray experiences travelling from the transmitter to the receiver after all the reflections, transmissions and diffractions and is expressed in nanoseconds.&lt;br /&gt;
* Ray Field is the received electric field at the receiver location due to a specific ray and is given in dBV/m.&lt;br /&gt;
* Ray Power is the received power at the receiver due to a specific ray and is given in dBm.&lt;br /&gt;
* Angles of Arrival are the &amp;amp;theta; and &amp;amp;phi; angles of the incoming ray at the local spherical coordinate system of the receiver.&lt;br /&gt;
&lt;br /&gt;
The Ray Data Dialog also shows the '''Total Received Power''' in dBm and '''Total Received Field''' in dBV/m due to all the rays received by the receiver. You can sort the rays based on their delay, field, power, etc. To do so, simply click on the grey column label in the table to sort the rays in ascending order based on the selected parameter. You can also select any ray by clicking on its '''ID''' and highlighting its row in the table. In that case, the selected rays is highlighted in the Project Workspace and all the other rays become thin (faded).&lt;br /&gt;
&lt;br /&gt;
Note: The rays are summed up coherently at the receiver.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run6_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Analyzing a selected ray from the ray data dialog.&lt;br /&gt;
&lt;br /&gt;
=== Plotting Other Simulation Results ===&lt;br /&gt;
&lt;br /&gt;
Besides visualizing the coverage map and received rays in the EM.CUBE's [[Propagation Module]], you can also plot the '''Path Loss''' of all the receivers belonging to a receiver set as well as the '''Power Delay Profile''' of individual receivers. To plot these data, go the '''Observables''' section of the Navigation Tree and right click on the '''Receivers''' item. From the context menu, select '''Plot Path Loss''' or '''Plot Power Delay Profile''', respectively. The path loss data between the active transmitter and all the receivers belonging to a receiver set are plotted on a Cartesian graph. The horizontal axis of this graph represents the index of the receiver. Power Delay Profile is a bar chart that plots the power of individual rays received by the currently selected receiver versus their time delay. If there is a line of sight (LOS) between a transmitter and receiver, the LOS ray will have the smallest delay and therefore will appear first in the bar chart. Sometimes you may have several rays arriving at a receiver at the same time, i.e. all with the same delay, but with different power level. These will appear as stacked bars in the chart.&lt;br /&gt;
&lt;br /&gt;
You can also plot the path loss and power delay profile graphs and many others from EM.CUBE's data manager. You can open data manager by clicking the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or by selecting '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or by right clicking on the '''Data Manager''' item of the Navigation Tree and selecting Open Data Manager... from the contextual menu or by using the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the theta and phi angles of arrival and departure of the selected receiver. You can select any data file by clicking and highlighting its '''ID''' in the table and then clicking the '''Plot''' button.&lt;br /&gt;
&lt;br /&gt;
=== Output Data Files ===&lt;br /&gt;
&lt;br /&gt;
At the end of an SBR simulation, the results are written into a main output data file with the reserved name of SBR_Results.RTOUT. This file has the following format:&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Receiver Number&lt;br /&gt;
* Receiver Base X, Y , Z Coordinates&lt;br /&gt;
* Receiver Height&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
Number of Rays&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Ray Number&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Arrival in deg&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Departure in deg&lt;br /&gt;
* Delay in nsec&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''') &amp;amp;amp; Imag('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''')&lt;br /&gt;
* Power&lt;br /&gt;
&lt;br /&gt;
The angles of arrival are the &amp;amp;theta; and &amp;amp;phi; angles of a received ray measured in degrees and are referenced in the spherical coordinate systems centered at the location of the receiver. The angles of departure for a received ray are the &amp;amp;theta; and &amp;amp;phi; angles of the originating transmitter ray, measured in degrees and referenced in the spherical coordinate systems centered at the location of the active transmitter, which eventually arrives at the receiver. The total time delay is measured in nanoseconds between t = 0 nsec at the time of launch from the transmitter location till being received at the receiver location. The last four columns show the real and imaginary parts of the received electric fields with vertical and horizontal polarizations, respectively. The complex field values are normalized in a way that when their magnitude is squared, it equals the received ray power. If the active transmitter is an isotropic radiator with either a vertical or horizontal polarization, then the field components corresponding to the other polarization will have zero entries in the output data file.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run8_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A typical SBR output data file.&lt;br /&gt;
&lt;br /&gt;
=== Running A Frequency Sweep With SBR ===&lt;br /&gt;
&lt;br /&gt;
By default, you run a single-frequency simulation in EM.CUBE's [[Propagation Module]]. You set the operational frequency of a SBR simulation in the project's '''Frequency Dialog''', which can be accessed in a number of ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''Frequency''' [[File:freq_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]]'''Frequency Settings...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+F'''.&lt;br /&gt;
# By double clicking the frequency section (box) of the '''Status Bar'''.&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
[[File:prop_freq.png]]    [[File:prop_run10.png]]&lt;br /&gt;
&lt;br /&gt;
(Left) Project's frequency dialog and (Right) the frequency settings dialog.&lt;br /&gt;
&lt;br /&gt;
You can also select the '''Frequency Sweep''' option in the '''Simulation Mode''' drop-down list of the '''Run Dialog'''. Click the '''Settings...''' button on the right side of this dropdown list to open up the Frequency Settings Dialog. Based on the original values of the project center frequency and bandwidth, the '''Start Frequency''' and '''End Frequency''' have default values. You can also change the '''Number of Samples'''. Once you click the '''Run''' button, EM.CUBE performs a frequency sweep by assigning each of the frequency samples as the current operational frequency and running the SBR simulation engine at that frequency. All the simulation data at all frequency samples are saved into the output data files including &amp;amp;quot;SBR_results.RTOUT&amp;amp;quot;. After the completion of a frequency sweep simulation, as many coverage maps as the number of frequency samples are generated and added to the Navigation Tree under the Receiver Set's entry. You can click on each of the coverage maps corresponding to each of the frequency samples and visualize it in the project workspace. You can also animate the coverage maps. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. The coverage maps start to animate by their order on the Navigation Tree. Once the entire list is displayed sequentially, it starts all over again from the beginning of the list. During the animation, the '''Animation Controls''' dialog appears at the lower right corner of the screen. This dialog has a number of buttons for pause/resume, step forward/backward, and step to the end/start. The title of each coverage map is shown in the box labeled '''Sample''' as it is displayed in the main window. You can also change the speed of animation. The default frame duration has a value of 300 (3x100) milliseconds. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run13.png]]    [[File:prop_run14.png]]&lt;br /&gt;
&lt;br /&gt;
Multiple coverage maps on the Navigation Tree at the end of a frequency sweep and starting an animation from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run15_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Animation controls dialog in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep with SBR ===&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run24.png|thumb|300px|EM.CUBE's variable dialog]]&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run23.png|thumb|250px|Dialog for defining new variables]]&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE, all the CAD object properties as well as certain source, material and mesh parameters can be assigned as [[variables]]. [[Variables]] are defined to control and vary the values of such parameters either for editing purposes or to run parametric sweep or [[optimization]]. Variable are defined using the '''[[Variables]] Dialog''', which can be accessed in the three ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''[[Variables]]''' [[File:variable_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]] '''[[Variables]]...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+B'''.&lt;br /&gt;
&lt;br /&gt;
The [[variables]] dialog is initially empty. To add a new variable, click the '''Add''' button to open up the '''Add Variable/Syntax Dialog'''. In this dialog you have to type in a name for the new variable and choose a type. The default type is '''Uniformly Spaced Samples'''. You also need to specify the '''Start''', '''Stop''' and '''Step''' values for the variable. In the figure below, a variable called &amp;amp;quot;Tx_Height&amp;amp;quot; is defined that varies between 2 and 10 with equal steps of 2. This means the sample set {2,4,6,8,10}. When you return to the [[variables]] dialog, the syntax of the new variable is shown as 2:10:2. The last number in this syntax is always the variable step. In this example, this variable is going to be used to control the height of the transmitter in a propagation scene.&lt;br /&gt;
&lt;br /&gt;
Next, you have to attach the variable to the CAD object. In this case, the CAD object is the point object that represents the transmitter's radiator. To attach a variable to a CAD object, open the object's property dialog and type in the name of the variable as the value of a property or parameter. In this case, the variable Tx_Height is going to control the Z-Coordinate of the point object. Once the value of the object parameter is replaced by the name of an already defined variable, it is updated with the current value of that variable. In the case of a variable of &amp;amp;quot;Uniformly Spaced Samples&amp;amp;quot; type, the current value is the start value. This value will be incrementally varied during a parametric sweep simulation process. Note that a variable can take a fixed value or a discrete set of values, too. You can always open the [[variables]] dialog and change the value or syntax of any variable. To make a new or modified value effective, click the '''Apply''' button of the [[variables]] dialog. You can test the values by performing a '''Dry Run''' of the selected variable. This runs an animation of the project workspace as the value of the variable changes and all the related CAD objects are updated accordingly. Note that you can attach the same variable to more than one CAD object property or to the properties of different objects. You can also define multiple values or syntaxes to the same variable. To do so, open the '''Add Variable/Syntax Dialog''', and instead of typing in a new variable name, choose an existing variable name from the '''Name''' dropdown list. This will add a new value or syntax to the existing syntax(es) of the selected variable. When you return to the [[variables]] dialog, [[variables]] with more than one value or syntax will have a dropdown list in the '''Syntax''' column. You can choose any of these values or syntaxed at any time and make the change effective by clicking the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run25.png]]&lt;br /&gt;
&lt;br /&gt;
Replacing the value of a CAD object parameter with a variable name.&lt;br /&gt;
&lt;br /&gt;
To run a parametric sweep, open the '''Run Dialog''' and select the '''Parametric Sweep''' option in the '''Simulation Mode''' drop-down list. If you have not defined any [[variables]] in the project, the box in the '''[[Variables]]''' row before the '''View''' will be red. You have to turn it into green before you can run a simulation. By clicking the '''View''' button, you can open up the [[variables]] dialog from here. Once you click the '''Run''' button, EM.CUBE performs a parametric sweep by incrementally varying the values of all the defined [[variables]] from their start to stop values at the specified steps and updating all the related CAD objects. After the completion of a parametric sweep simulation, as many coverage maps as the total number of variable samples are generated and added to the Navigation Tree under the receiver set's entry. You can click on each of the coverage maps and visualize it in the project workspace. You can also animate the coverage maps sequentially. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run26.png]]&lt;br /&gt;
&lt;br /&gt;
Choosing parametric sweep as the simulation mode in the run dialog. Note that one variable has been defined and EM.CUBE is ready to run the simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run27_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The coverage map of the scene at the end of a parametric sweep where the sweep variable is the transmitter height.&lt;br /&gt;
&lt;br /&gt;
=== Statistical Analysis of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's coverage maps display the received power at the location of all the receivers. The receivers together from a set/ensemble, which might be uniformly spaced or distributed across the propagation scene or may consist of randomly scattered radiators. Every coverage map shows the '''Mean''' and '''Standard Deviation''' of the received power for all the receivers involved. These information are displayed at the bottom of the coverage map's legend box and are expressed in dB.&lt;br /&gt;
&lt;br /&gt;
In the [[Propagation Module]], when you ran a sweep simulation (frequency, transmitter or parametric), you also have the option to generate two additional coverage maps: one for the mean of all the individual sample coverage maps and another for their standard deviation. To do so, in the '''Run Dialog''', check the box labeled '''&amp;amp;quot;Create Mean and Standard Deviation Coverage Maps&amp;amp;quot;'''. Note that the mean and standard deviation values displayed on the individual coverage maps correspond to the spatial statistics of the receivers in the scene, while the mean and standard deviation coverage maps correspond to frequency, transmitter or variable sets defined for the sweep simulation. Also, note that both of the mean and standard deviation coverage maps have their own spatial mean and standard deviation values expressed in dB at the bottom of their legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run21_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The mean coverage map at the end of a transmitter sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run22_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The standard deviation coverage map at the end of a transmitter sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Terrano</id>
		<title>EM.Terrano</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Terrano"/>
				<updated>2013-06-14T14:48:02Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Wedge Diffraction From Edges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Taking out this picture for now for consistency&lt;br /&gt;
[[File:urban.png]]--&amp;gt;&lt;br /&gt;
EM.Terrano is a physics-based, site-specific, wave propagation modeling tool that enables engineers to quickly determine how radio waves propagate in urban, natural or mixed environments. The rapid growth of wireless communications along with the high costs associated with the design and deployment of effective wireless infrastructures underline a persistent need for computer aided communication network planning tools. Wireless engineers have long used simplistic statistical prediction models based on measurements that often exhibit considerable errors especially in areas having mixed building sizes.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Terrano has helped wireless engineers around the globe model the physical channel and the mechanisms by which radio signals propagate from transmitters to receivers. EM.Terrano’s advanced ray tracing simulator finds the dominant propagation paths specific to the site in question. It calculates the true signal characteristics at the actual locations using physical databases of the buildings and terrain at a given site, not those of a statistically average or representative environment. EM.Terrano’s ray tracer is based on the shoot-and-bounce-rays (SBR) method, which utilizes geometrical optics (GO) in combination with uniform theory of diffraction (UTD) models of building edges.&lt;br /&gt;
&lt;br /&gt;
The new EM.Terrano 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has created the opportunity to inject a host of new powerful features such as a highly customizable terrain generator, DEM terrain import, complex building constructions, and versatile interior wall arrangements for indoor propagation modeling. As a result of this seamless interface with EM.Cube's other modules, you can now model complex antenna systems in [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]], and generate antenna radiation patterns than can be used to model directional transmitters and receivers at the two ends of your propagation channel. Conversely, you can analyze a propagation scene in EM.Terrano and import the rays received at a certain receiver location as coherent plane wave sources to [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]]. You can also model periodic wall or ground structures using the periodic simulation capability of [[EM.Picasso]] or [[EM.Tempo]] and generate macromodels for their reflection and transmission coefficients as functions of the ray incidence angles. You can then define buildings or terrains in your propagation scene that are governed by such macromodels.&lt;br /&gt;
&lt;br /&gt;
== A Wireless Propagation Primer ==&lt;br /&gt;
Every wireless communication system involves a transmitter that transmits some sort of signal (voice, video, data, etc.), a receiver that receives and detects the transmitted signal, and a channel in which the signal is transmitted into the air and travels from the location of the transmitter to the location of the receiver. The channel is the physical medium in which the electromagnetic waves propagate. The successful design of a communication system depends on an accurate link budget analysis that determines whether the receiver receives adequate signal power to detect it against the background noise. The simplest channel is the free space. Real communication channels, however, are more complicated and involve a large number of wave scatterers. For example, in an urban environment, the obstructing buildings, vehicles and vegetation reflect, diffract or attenuate the propagating radio waves. As a result, the receiver receives a distorted signal that contains several components with different power levels and different time delays arriving from different angles.&lt;br /&gt;
&lt;br /&gt;
The different rays arriving at a receiver location create constructive and destructive interference patterns. This is known as the multipath effect. This together with the shadowing effects caused by building obstructions lead to channel fading. In many wireless applications, the total received power by the receiver is all that matters. In some others, the angle of arrival of the rays as well as their polarization are of immense interest. A fully polarimetric, coherent ray tracer like EM.Cube's Shooting-and-Bouncing-Rays (SBR) solver lets you compute and resolve all the rays received by a receiver including their power levels, time delays and angles of arrival.&lt;br /&gt;
&lt;br /&gt;
=== Free Space Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
In a free-space line-of-sight (LOS) communication system, the signal propagates directly from the transmitter to the receiver without encountering any obstacles (scatterers). Electromagnetic waves propagate in the form of spherical waves with a functional dependence of e&amp;lt;sup&amp;gt;j(&amp;amp;omega;&amp;lt;/sup&amp;gt;&amp;lt;sup&amp;gt;t-k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;R)&amp;lt;/sup&amp;gt;/R, where R is the distance between the transmitter and receiver, &amp;lt;math&amp;gt;\omega = 2\pi f&amp;lt;/math&amp;gt;, f is the signal frequency, &amp;lt;math&amp;gt;k_0 = \tfrac{\omega}{c} = \tfrac{2\pi}{\lambda}&amp;lt;/math&amp;gt;, c is the speed of light, and &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength at the operational frequency. By the time the signal arrives at the location of the receiver, it undergoes two changes. It is attenuated and its power drops by a factor of 1/R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, and additionally, it experiences a phase shift of &amp;lt;math&amp;gt;\tfrac{2\pi R}{\lambda_0}&amp;lt;/math&amp;gt;, which is equivalent to a time delay of R/c. The signal attenuation from the transmitter to the receiver is usually quantified by '''Path Loss''' defined as the ratio of the received signal power (P&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;) to the transmitted signal power (P&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;). Assuming isotropic transmitting and receiving radiators (i.e. radiating uniformly in all directions), the Path Loss in a free-space line-of-sight communication system is given by Friis’ formula:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = \left( \frac{\lambda_0}{4\pi R} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above formula assumes that the receiving antenna is polarization-matched. Normally, there is a polarization mismatch between the transmitting and receiving antennas. In the case of directional transmitting and receiving antennas, Friis’ formula takes the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = G_T G_R \left( \frac{\lambda_0}{4\pi R} \right)^2 ( \mathbf{ \hat{u}_T \cdot \hat{u}_R } )&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''u&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;''' and '''u&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''' are the unit polarization vectors of the transmitting and receiving antennas, and G&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt; and G&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; are their gains, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:los.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Line-of-Sight (LOS) Propagation Scenario.&lt;br /&gt;
&lt;br /&gt;
=== Multipath Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
Free-space line-of-sight communications is an ideal scenario that is typically used to model aerial or space applications. In ground-based systems, the presence of the ground as a very large reflecting surface affects the signal propagation to a large extent. Along the path from a transmitter to a receiver, the signal may also encounter many obstacles and scatterers such as buildings, vegetation, etc. In an urban canyon environment with many buildings of different heights and other scatterers, a line of sight between the transmitter and receiver can hardly be established. In such cases, the propagating signals bounce back and forth among the building surfaces. It is these reflected or diffracted signals that are often received and detected by the receiver. Such environments are referred to as “multipath”. The group of rays arriving at a specific receiver location experience different attenuations and different time delays. This gives rise to constructive and destructive interference patterns that cause fast fading. As a receiver moves locally, the receiver power level fluctuates sizably due to these fading effects.&lt;br /&gt;
&lt;br /&gt;
The use of statistical models for prediction of fading effects is widely popular among communication system designers. These models are either based on measurement data or derived from simplistic analytical frameworks. The statistical models often exhibit considerable errors especially in areas having mixed building sizes. In such cases, one needs to perform a physics-based, site-specific analysis of the propagation environment to accurately identify and establish all the possible signal paths from the transmitter to the receiver. This involves an electromagnetic analysis of the scene with all of its geometrical and physical details.  &lt;br /&gt;
&lt;br /&gt;
Link budget analysis for a multipath channel is a challenging task due to the large size of the computational domains involved. Typical propagation scenes usually involve length scales on the order of thousands of wavelengths. To calculate the path loss between the transmitter and receiver, one must solve Maxwell's equations in an extremely large space. Full-wave numerical techniques like the Finite Difference Time Domain (FDTD) method, which require a fine discretization of the computational domain, are therefore impractical for solving large-scale propagation problems. The practical solution is to use asymptotic techniques such as SBR, which utilize analytical techniques over large distances rather than a brute force discretization of the entire computational domain. Such asymptotic techniques, of course, have to compromise modeling accuracy for practical computation feasibility.&lt;br /&gt;
&lt;br /&gt;
[[File:multi1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A multipath propagation scene showing all the rays arriving at a particular receiver.&lt;br /&gt;
&lt;br /&gt;
=== The SBR Method ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] provides an asymptotic ray tracing simulation engine that is based on a technique known as Shooting-and-Bouncing-Rays (SBR). In this technique, propagating spherical waves are modeled as ray tubes or beams that emanate from a source, travel in space, bounce from obstacles and are collected by the receiver. As rays propagate away from their source (transmitter), they begin to spread (or diverge) over distance. In other words, the cross section or footprint of a ray tube expands as a function of the distance from the source. EM.Cube uses an accurate equi-angular ray generation scheme to that produces almost identical ray tubes in all directions to satisfy energy and power conservation requirements.&lt;br /&gt;
&lt;br /&gt;
When a ray hits an obstructing surface, one or more of the following phenomena may happen:&lt;br /&gt;
&lt;br /&gt;
# Reflection from the locally flat surface&lt;br /&gt;
# Transmission through the locally flat surface&lt;br /&gt;
# Diffraction from an edge between two conjoined locally flat surfaces&lt;br /&gt;
&lt;br /&gt;
EM.Cube discretizes all the objects of the scene into flat triangular facets. Obviously, rectangular and cubic objects preserve their geometric shapes through this discretization. Objects with curved surfaces such as cylinders, cones or spheres, are approximated by &amp;amp;quot;polymesh&amp;amp;quot; representations. The geometric fidelity of the resulting mesh depends on the specified mesh edge length. When a ray hits a triangular facet, the propagating spherical wave is approximated as a plane wave at the specular point. The reflection and transmission coefficients of the surface are calculated at the operational frequency and at the particular ray incident angle. &lt;br /&gt;
&lt;br /&gt;
A new reflected ray is generated at the specular point, which starts traveling and bouncing around in the scene. If the obstructing surface is penetrable, a second transmitted ray is generated and added to the scene. If the ray hits the edge of an obstacle, it is diffracted from that edge. This leads to the creation of a cone of new rays, which greatly complicate the computational problem. The Uniform Theory of Diffraction (UTD) is used to calculate the wedge diffraction coefficients at the edges of scattering blocks. Note that reflection, transmission and diffraction coefficients are all dependent on the polarization of the incident plane wave.&lt;br /&gt;
&lt;br /&gt;
A receiver may receive a large number of rays: direct line-of-sight rays from the transmitter, rays reflected or diffracted off the ground or terrain, rays reflected or diffracted from buildings or rays transmitted through buildings. Each received ray is characterized by its power, delay and angles of arrival, which are the spherical coordinate angles &amp;amp;theta; and &amp;amp;phi; of the incoming ray. The actual signal received and detected by the receiver is the superposition of all these rays with different power levels and different time delays. Most of the time, you will be interested in the coverage map of an area, which shows how much power is received by a grid of receivers spread over the area from a given fixed transmitter.&lt;br /&gt;
&lt;br /&gt;
=== Ray Reflection &amp;amp; Transmission ===&lt;br /&gt;
&lt;br /&gt;
[[File:reflect.png|thumb|350px|The Incident, Reflected and Transmitted Rays at the Interface Between Two Dielectric Media]]&lt;br /&gt;
&lt;br /&gt;
The incident, reflected and transmitted rays are each characterized by a triplet of unit vectors:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}, \hat{u}_{\perp}, \hat{k} } )&amp;lt;/math&amp;gt; representing the incident parallel polarization vector, incident perpendicular polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}', \hat{u}_{\perp}', \hat{k}' } )&amp;lt;/math&amp;gt; representing the reflected parallel polarization vector, reflected perpendicular polarization vector and reflected propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}'', \hat{u}_{\perp}'', \hat{k}'' } )&amp;lt;/math&amp;gt; representing the transmitted parallel polarization vector, transmitted perpendicular polarization vector and transmitted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The reflected ray is assumed to originate from a virtual image source point. The three triplets constitute three orthonormal basis systems. Below, it is assumed that the two dielectric media have permittivities &amp;amp;epsilon;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;epsilon;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, and permeabilities &amp;amp;mu;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;mu;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, respectively. A lossy medium with a conductivity &amp;amp;sigma; can be modeled by a complex permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = &amp;amp;epsilon;'&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; –j&amp;amp;sigma;/&amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. Assuming '''n''' to be the unit normal to the interface plane between the two media, and Z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;Omega; , the incident polarization vectors as well as all the reflected and transmitted vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp} = \frac{\hat{k} \times \hat{n}}{|\hat{k} \times \hat{n}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|} = \hat{u}_{\perp} \times \hat{k} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflected unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}' = \hat{k} - 2(\hat{k} \cdot \hat{n}) \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}' = \hat{u}_{\perp}' \times \hat{k}' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The transmitted unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}'' = \hat{n} \times a - \sqrt{1-a \cdot a} \; \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}'' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}'' = \hat{u}_{\perp}'' \times \hat{k}'' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{a} = (k_1/k_2) \mathbf{\hat{k} \times \hat{n}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_1 = k_0 \sqrt{\varepsilon_1 \mu_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_2 = k_0 \sqrt{\varepsilon_2 \mu_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_1 = Z_0 \sqrt{\mu_1 / \varepsilon_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_2 = Z_0 \sqrt{\mu_2 / \varepsilon_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sin\theta'' = \frac{k_1}{k_2}\sin\theta \text{ if } \sin\theta \le k_2/k_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml4.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml5.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflection coefficients at the interface are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penetration Through Thin Walls Or Surfaces ===&lt;br /&gt;
&lt;br /&gt;
[[File:thinwalltrans.png|thumb|350px|The Incident and Transmitted Rays through a Thin Wall]]&lt;br /&gt;
&lt;br /&gt;
In &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;, we assume that an incident ray gives rise to two rays, one is reflected at the specular point, and the other is transmitted almost in the same direction as the incident ray. The reflected ray is assumed to originate from a virtual image source point. Similar to the case of reflection and transmission at the interface between two dielectric media, here too we have three triplets of unit vectors, which all form orthonormal basis systems.&lt;br /&gt;
&lt;br /&gt;
The transmission coefficients are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\|} = \frac{(1-{\Gamma_{\|}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\|}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\perp} = \frac{(1-{\Gamma_{\perp}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\perp}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml21.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wedge Diffraction From Edges ===&lt;br /&gt;
&lt;br /&gt;
[[File:diffract.png|thumb|350px|The Incident Ray and Diffract Ray Cone at the Edge of a Building]]&lt;br /&gt;
&lt;br /&gt;
For the purpose of calculation of diffraction from building edges, we define a &amp;amp;quot;Wedge&amp;amp;quot; as having two faces, the 0-face and the ''n''-face. The wedge angle is a = (2-''n'')p, where the parameter ''n'' is required for the calculation of diffraction coefficients. All the diffracted rays lie on a cone with its vertex at the diffraction point and a wedge angle equal to the angle of incidence in the opposite direction. A diffracted ray is assumed to originate from a virtual image source point. Three triplets of unit vectors are defined as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_0, \hat{u}_l, \hat{t})}&amp;lt;/math&amp;gt; representing the unit vector normal to the edge and lying in the plane of the 0-face, the unit vector normal to the 0-face, and the unit vector along the edge, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f, \hat{u}_b, \hat{t})}&amp;lt;/math&amp;gt; representing the incident forward polarization vector, incident backward polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f', \hat{u}_b', \hat{t}')}&amp;lt;/math&amp;gt; representing the diffracted forward polarization vector, diffracted backward polarization vector and diffracted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The three triplets constitute three orthonormal basis systems. The propagation vector '''k'''' of the diffracted ray has to be constructed based on the diffraction cone as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{\hat{k}'} = \cos\phi_w \mathbf{\hat{u}_0} + \sin\phi_w \mathbf{\hat{u}_l} + &lt;br /&gt;
\mathbf{(\hat{k} \cdot \hat{t}) \hat{t}}, \quad 0 \le \phi_w \le \alpha&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the resolution of the angle &amp;amp;theta;&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt; is chosen to be the same as the resolution of the incident ray.&lt;br /&gt;
&lt;br /&gt;
The other unit vectors for the incident and diffracted rays are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f = \frac{\hat{k} \times \hat{t}}{|\hat{k} \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b = \hat{k} \times \hat{u}_f } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f' = \frac{\hat{k}' \times \hat{t}}{|\hat{k}' \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b' = \hat{k}' \times \hat{u}_f' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml9.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The diffraction coefficients are calculated in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_s = \frac{-e^{-j\pi/4}}{2n \sqrt{2\pi k} \sin\beta_0'}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \cot \left(\frac{\pi + (\phi-\phi')}{2n}\right) F[kLa^+(\phi-\phi')] +&lt;br /&gt;
  \cot \left(\frac{\pi - (\phi-\phi')}{2n}\right) F[kLa^-(\phi-\phi')] \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; R_{0 \perp} \cot \left(\frac{\pi - (\phi+\phi')}{2n}\right) F[kLa^-(\phi+\phi')] +&lt;br /&gt;
  R_{n \perp} \cot \left(\frac{\pi + (\phi+\phi')}{2n}\right) F[kLa^+(\phi+\phi')]&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_h = \frac{-e^{-j\pi/4}}{2n \sqrt{2\pi k} \sin\beta_0'}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \cot \left(\frac{\pi + (\phi-\phi')}{2n}\right) F[kLa^+(\phi-\phi')] +&lt;br /&gt;
  \cot \left(\frac{\pi - (\phi-\phi')}{2n}\right) F[kLa^-(\phi-\phi')] \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; R_{0 \|} \cot \left(\frac{\pi - (\phi+\phi')}{2n}\right) F[kLa^-(\phi+\phi')] +&lt;br /&gt;
  R_{n \|} \cot \left(\frac{\pi + (\phi+\phi')}{2n}\right) F[kLa^+(\phi+\phi')]&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml11.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where ''F(x)'' is the Fresnel Transition function:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = 2j \sqrt{x} e^{jx} \int_{\sqrt{x}}^{\infty} e^{-j\tau^2} \, d\tau &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, we have&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
s = |\rho_D - \rho_S| \\&lt;br /&gt;
s' = |\rho_D - \rho_r|&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L = \frac{s s' \sin^2 \beta'}{s + s'} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\pm}(\nu) = 2\cos^2 \left( \frac{2n\pi N^{\pm} - \nu}{2} \right), \quad \nu = \phi \pm \phi' &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml10.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml13.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;N^{\pm}&amp;lt;/math&amp;gt; are the integers which most closely satisfy the equations &amp;lt;math&amp;gt; 2n\pi N^{\pm} - \nu = \pm \pi &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SBR As An Asymptotic EM Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulation engine can be used as a versatile and powerful asymptotic electromagnetic (EM) solver. If you compare EM.Cube's [[Propagation Module]] with its other computational modules, you will notice a lot of similarities. While other modules group objects primarily by their material properties, [[Propagation Module]] categorizes the types of obstructing surfaces. Besides sharing the same ray-surface interaction mechanisms, all the objects belonging to a surface group also share the same material properties. [[Propagation Module]] offers similar source types and similar observable types as the other computational modules. For instance, the Hertzian dipole sources used in a SBR simulation are identical to those offered in PO, MoM3D and Planar modules. The plane wave sources are identical across all computational modules. [[Propagation Module]]'s sensor field planes, far field observables (either radiation patterns or RCS) and Huygens surfaces are all fully compatible with EM.Cube's other computational modules.&lt;br /&gt;
&lt;br /&gt;
As an asymptotic EM solver, the SBR engine can be used to model large-scale electromagnetic radiation and scattering problems. An example of this kind is radiation of simple or complex antennas in the presence of large scattering platforms. You have to keep in mind that by using an asymptotic technique in place of a full-wave method, you trade computational speed and lower memory requirements for modeling accuracy. In particular, the SBR method cannot take into account the electromagnetic coupling effects among nearby radiators or scatterers. However, when your scene spans thousands of wavelengths, an SBR simulation might often prove to be your sole practical solution.  &lt;br /&gt;
&lt;br /&gt;
=== Novelties Of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine utilizes an intelligent ray tracing algorithm based on the concept of  k-dimensional trees. A k-d tree is a space-partitioning data structure for organizing points in a k-dimensional space. k-d trees are particularly useful for searches that involve multidimensional search keys such as range searches and nearest neighbor searches. In a typical large radio propagation scene, there might be a large number of rays emanating from the transmitter that may never hit any obstacles. For example, upward-looking rays in an urban propagation scene quickly exit the computational domain. Rays that hit obstacles on their path, on the other hand, generate new reflected and transmitted rays. The k-d tree algorithm traces all these rays systematically in a very fast and efficient manner. Another major advantage of k-d trees is the fast processing of multi-transmitters scenes. Unlike the previous versions of the SBR solver which could handle one transmitter at a time and would superpose all the resulting rays at the end of the simulation, the new SBR shoots rays from all the transmitters at the same time.   &lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine performs fully polarimetric and coherent SBR simulations with arbitrary transmitter antenna patterns. The new engine solves directly for the vectorial field components at the receiver locations or field observation points. This is far more rigorous than the previous versions of the SBR solver which primarily utilized ray power calculations based on the two vertical and horizontal polarizations. In other words, EM.Cube's new SBR engine is a truly asymptotic &amp;amp;quot;field&amp;amp;quot; solver. As a result, you can visualize the magnitude and phase of all six electric and magnetic field components at any point in the computational domain. For power calculations at the receiver location, an isotropic, polarization-matched, receiving antenna is assumed.       &lt;br /&gt;
&lt;br /&gt;
In most scenes, the buildings and the ground or terrain can be assumed to be made of homogeneous materials. These are represented by their electrical properties such as permittivity e and electric conductivity s. More complex scenes may involve a multilayer ground or multilayer building walls. In such cases, one can no longer use the simple reflection or transmission coefficient formulas for homogeneous medium interfaces. EM.Cube calculates the reflection and transmission coefficients of multilayer structures as functions of incident angle, frequency and polarization and uses them at the respective specular points.  &lt;br /&gt;
&lt;br /&gt;
=== Limitations of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
It is very important to keep in mind that SBR is an asymptotic electromagnetic analysis technique that is based on Geometrical Optics (GO) and the Uniform Theory of Diffraction (UTD). It is not a &amp;amp;quot;full-wave&amp;amp;quot; technique, and it does not solve Maxwell's equations directly or numerically. SBR makes a number of assumptions, chief among them, a very high operational frequency such that the length scales involved are much larger than the operating wavelength. Under this assumed regime, electromagnetic waves start to behave like optical rays. Virtually all the calculations in SBR are based on far field approximations. &lt;br /&gt;
&lt;br /&gt;
In order to maintain a high computational speed for urban propagation problems, EM.Cube's SBR solver ignores double diffractions. Recall that diffractions from edges give rise to a large number of new secondary rays. The power of diffracted rays drops much faster than reflected rays. EM.Cube ignores diffracted rays that are not detected by any receiver. In other words, an edge-diffracted ray does not diffract again from another edge. However, reflected and penetrated rays do get diffracted from edges just as rays emanated directly from the sources do.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Propagation Scene ==&lt;br /&gt;
&lt;br /&gt;
An EM.Cube propagation scene typically consists of several elements. At a minimum, you need a transmitter (Tx) at some location to launch rays into the scene and a receiver (Rx) at another location to receive and collect the incoming rays. A transmitter and a receiver together make the simplest propagation scene, representing a free-space line-of-sight (LOS) channel. A transmitter is one of EM.Cube's several source types, while a receiver is one of EM.Cube's several observable types. A simpler source type is a Hertzian dipole. A simpler observable is a field sensor that is used to compute the electric and magnetic fields on a specified plane.&lt;br /&gt;
&lt;br /&gt;
An outdoor propagation scene may involve several buildings (modeled as impenetrable surfaces) and an underlying flat ground or irregular terrain surface. An indoor propagation scene may involve several walls (modeled as thin penetrable surfaces), a ceiling and a floor arranged according to a certain floor plan. You can also build mixed scenes involving both impenetrable and penetrable blocks, possibly along with irregular terrain surfaces. Your sources and observables can be placed anywhere in the scene. Your transmitters and receivers can be placed outdoors or indoors. A complete list of the various elements of a propagation scene is given in the '''Physical Structure''' section of [[Propagation Module]]'s Navigation Tree as follows:&lt;br /&gt;
&lt;br /&gt;
* Impenetrable Surfaces&lt;br /&gt;
* Penetrable Surfaces&lt;br /&gt;
* Terrain Surfaces&lt;br /&gt;
* Base Points&lt;br /&gt;
&lt;br /&gt;
Impenetrable, penetrable and terrain surfaces all obstruct the propagation of electromagnetic waves (rays) in the free space. What differentiates them is the types of physical phenomena that are used to model their interaction with the impinging rays. Base points are simply used to define transmitter and receiver locations in the scene. The following sections of this manual will describe each of these elements in detail.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Navigation Tree of EM.Cube's [[Propagation Module]].&lt;br /&gt;
&lt;br /&gt;
=== The Various Types Of Surfaces &amp;amp;amp; Blocks ===&lt;br /&gt;
&lt;br /&gt;
In a SBR simulation, the propagating rays hit the surface of building structures, walls, terrain (or global ground) and bounce back into the scene (reflection). Some rays penetrate thin walls or other penetrable surfaces and continue their path on the other side of the surface (transmission). The field intensity, phase and power of the reflected and transmitted rays depend on the material properties of the obstructing surface. The specular surface can be modeled as a simple homogeneous dielectric half-space or as a multilayer structure. In that respect, the buildings, walls, terrain or even the global ground all behave in a similar way:&lt;br /&gt;
&lt;br /&gt;
* They terminate an impinging ray and replace it with one or more new rays.&lt;br /&gt;
* They represent a specular interface between two media of different material compositions for calculating the reflection, transmission and possibly diffraction coefficients.&lt;br /&gt;
&lt;br /&gt;
EM.Cube has generalized the concept of '''Block''' as any object that obstructs and affects radio wave propagation. Rays hit the facets of a block and bounce off the surface of those facets or penetrate them and continue their propagation. Rays also get diffracted off the edges of these blocks. In EM.Cube's [[Propagation Module]], blocks are grouped together by the type of their interaction with rays. EM.Cube currently offers three types of blocks for use in a propagation scene:&lt;br /&gt;
&lt;br /&gt;
# '''Impenetrable Surfaces:''' Rays hit the facets of this type of blocks and bounce back, but they do not penetrate the object. It is assumed that the interior of such blocks or buildings are highly absorptive.&lt;br /&gt;
# '''Penetrable Surfaces:''' These blocks represent thin surfaces that are used to model the exterior and interior walls of buildings based on the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;. Rays reflect off the surface of penetrable surfaces and diffract off their edges. They also penetrate such thin surfaces and continue their paths on the other side of the wall.&lt;br /&gt;
# '''Terrain Surfaces:''' These blocks are used to provide one or more impenetrable, ground surfaces for the propagation scene. Rays simply bounce off terrain objects. The global ground acts as a flat super-terrain that covers the bottom of the entire computational domain. &lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to define block groups of each of the above three types. Each block group has the same color or texture and its members share the same material properties: permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and conductivity &amp;amp;sigma;. Also, all the penetrable surfaces belonging to the same block group have the same wall thickness. You can define many different block groups with certain properties and underneath each introduce many member objects with different geometrical shapes and dimensions. The table below summarizes the characteristics of each block type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Block Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Physical Effects&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Admissible Object Types&lt;br /&gt;
|-&lt;br /&gt;
| Impenetrable Surface&lt;br /&gt;
| Reflection, Diffraction&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Penetrable Surface&lt;br /&gt;
| Reflection, Diffraction, Transmission&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Terrain Surface&lt;br /&gt;
| Reflection&lt;br /&gt;
| Tessellated Objects Only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Impenetrable Surfaces For Outdoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
In outdoor propagation scenes such as &amp;amp;quot;Urban Canyons&amp;amp;quot;, you are primarily interested in the wireless coverage in the areas among buildings. You can assume that rays bounce off the exterior walls of these buildings but do not penetrate them. In other words, you ignore the transmitted rays and assume that they are either absorbed or diffused inside the buildings. This is not an unrealistic assumption. EM.Cube offers &amp;amp;quot;Impenetrable Blocks&amp;amp;quot; to model buildings in outdoor propagation scenes. A penetrable block has a color or texture property as well as material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and conductivity (s). By default, a brick building is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m. Impinging rays are reflected from the facets of impenetrable buildings or diffracted from their edges.&lt;br /&gt;
&lt;br /&gt;
To define a new impenetrable block group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on either the '''Impenetrable Surfaces''' item of the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the block properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the block group and select a color or texture.&lt;br /&gt;
# The electromagnetic model that determines ray-block interaction is selected under '''Specular Interface Type'''. Two options are available: '''Standard Material''' or '''User Defined Model'''. The former is the default choice and requires material properties, '''Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity''' (&amp;amp;sigma;), which are set to &amp;amp;quot;Brick&amp;amp;quot; by default. No magnetic properties are allowed for blocks.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(2).png]]   &lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Impenetrable Surface dialog.&lt;br /&gt;
&lt;br /&gt;
Under an impenetrable block group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of an impenetrable surface. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. In this dialog, you can change the name of the material and its permittivity and electric conductivity. The box labeled &amp;amp;quot;Specify Loss Tangent&amp;amp;quot; is unchecked by default. If you check it, you can specify the '''Loss Tangent''' of the material, which, in turn, updates the value of electric conductivity at the center frequency of the project. You can also use EM.Cube's Material List, which will  be explained later.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to impenetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
=== Penetrable Surfaces For Indoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
A typical indoor propagation scene usually involves an arrangement of walls that represent the interior of a building. The transmitters and receivers are then placed in the spaces among such walls. From the point of view of EM.Cube's SBR simulator, walls act like thin penetrable surfaces. EM.Cube uses the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot; to model penetrable surfaces. It assumes that rays simply penetrate a wall and exit at the same specular point on the opposite side of the wall. In other words, rays are not displaced by the walls, nor do they get trapped inside the walls (no internal reflection). This is equivalent to assuming a zero thickness for penetrable surfaces for the purpose of geometrical ray tracing, while the finite thickness of the &amp;amp;quot;thin&amp;amp;quot; surface is used for electromagnetic calculation of transmission coefficient. EM.Cube offers &amp;amp;quot;Penetrable Surface Blocks&amp;amp;quot; for the construction of rooms in indoor propagation scenes as well as modeling of hollow buildings and other structures. You can define many penetrable surface groups with arbitrary thicknesses and material properties (color, texture, permittivity and electric conductivity).&lt;br /&gt;
&lt;br /&gt;
To define a new penetrable surface group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on one of the '''Penetrable Surfaces''' item in the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the wall properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the surface group and select a color or texture.&lt;br /&gt;
# The properties of a penetrable surface are identical to those of an impenetrable surface, plus an additional thickness property.&lt;br /&gt;
# By default, a brick wall with a thickness of 0.5 units is assumed. You can change the '''Thickness''' of the penetrable surface as well as its '''Permittivity'''  &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and '''Electric Conductivity''' &amp;amp;sigma;.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Penetrable Surface dialog.&lt;br /&gt;
&lt;br /&gt;
Under a penetrable surface group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of a penetrable surface group including its default thickness. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. Similar to the case of impenetrable surfaces, from this dialog, you can change the material properties (permittivity and electric conductivity) as well as '''Thickness''', which is expressed in the project units. You can also use EM.Cube's Material List, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to penetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
You can construct several thin walls and arrange them as rooms. A regular room can be built by placing four vertical wall objects together with an optional horizontal wall at the top for the ceiling. Alternatively, you may use EM.Cube's hollow box objects or boxes with one or two capped end(s).  '''Keep in mind that all the penetrable surfaces belonging to a group have the same wall thickness, which is initially set to 0.5 project units by default. Also, note that solid CAD objects belonging to a penetrable surface group are treated as air-filled hollow structures.''' The thickness of penetrable surfaces is implied and not visualized when displaying objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Computational Domain &amp;amp;amp; Global Ground ===&lt;br /&gt;
&lt;br /&gt;
The SBR simulation engine requires a finite computational domain. All the stray rays that hit the boundaries of this finite domain are terminated during the simulation process. Such rays exit the computational domain and travel to the infinity, with no chance of ever reaching any receiver in the scene. When you define a propagation scene with various elements like buildings, walls, terrain, etc., a dynamic domain is automatically established and displayed as a wireframe box with green lines that surrounds the entire scene. Every time you create a new object, the domain is automatically adjusted and extended to enclose all the objects in the scene. You can change the size and color of the domain box through the Ray Domain Settings Dialog, which can be accessed in one of the following three ways:&lt;br /&gt;
&lt;br /&gt;
# Click the '''Domain''' [[File:image025.jpg]] button of the Simulation Toolbar.&lt;br /&gt;
# Select the '''Simulate''' &amp;amp;gt; '''Computational Domain''' &amp;amp;gt; '''Settings...''' item of the Simulate Menu.&lt;br /&gt;
# Right click on the '''Ray Domain''' item of the Navigation Tree and select '''Domain Settings...'''&lt;br /&gt;
# Use the keyboard shortcut '''Ctrl + A'''.&lt;br /&gt;
&lt;br /&gt;
The size of the Ray domain is specified in terms of six '''Offset''' parameters along the ±X, ±Y and ±Z directions. The default value of all these six offset parameters is 10 project units. You can change them arbitrarily. After changing these values, use the '''Apply''' button to make the changes effective while the dialog is still open.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Most outdoor and indoor propagation scenes include a flat ground at their bottom, which bounces incident rays back into the scene. EM.Cube's [[Propagation Module]] provides a global flat ground at z = 0. The global ground indeed acts as an impenetrable surface that blocks the entire computational domain from the z = 0 plane downward. It is displayed as a translucent green plane at z = 0 extending downward. The color of the ground plane is always the same as the color of the ray domain. The global ground is assumed to be made of a homogeneous dielectric material with a specified permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma;. By default, a rocky ground is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m. You can remove the global ground, in which case, you will have a free space scene. To disable the global ground, open up the Global Ground Settings Dialog, which can be accessed by right clicking on the '''Global Ground''' item in the Navigation Tree and selecting '''Global Ground Settings... '''Remove the check mark from the box labeled '''&amp;amp;quot;Include Half-Space Ground (z&amp;amp;lt;0)&amp;amp;quot;''' to disable the global ground. This will also remove the green translucent plane from the bottom of your scene. You can also change the material properties of the global ground and set new values for the permittivity and electric conductivity of the impenetrable, half-space, dielectric medium. '''Do not forget to disable the global ground if you want to model a free space propagation scene.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PROP4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s Global Ground Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Surfaces vs. Global Ground ===&lt;br /&gt;
&lt;br /&gt;
A terrain surface acts as a custom, unlevel or irregular ground for your propagation scene. EM.Cube's default global ground blocks the z &amp;amp;lt; 0 half-space everywhere in the computational domain. You can simply turn off the global ground and create one or more terrain objects and place them arbitrarily in the scene. You can also import an external terrain model or file. A terrain represents an impenetrable surface with a more complex surface profile. You can have one or more terrain objects of finite extents and place them on or above the global ground.&lt;br /&gt;
&lt;br /&gt;
Terrain objects have some important differences with objects of the &amp;amp;quot;Impenetrable Surface&amp;amp;quot; type:&lt;br /&gt;
&lt;br /&gt;
# While impenetrable blocks can be created using any of EM.Cube's solid or surface CAD object creation tools, terrain objects are created either using EM.Cube's '''Terrain Generator''' or by importing an external terrain file. &lt;br /&gt;
# Terrain objects belong to a special type of CAD objects called &amp;amp;quot;Tessellated Objects&amp;amp;quot;, which differ from other regular CAD [[Surface Objects|surface objects]] or EM.Cube's polymesh surfaces.&lt;br /&gt;
# Terrain surfaces do not diffract impinging rays at their many small edges.&lt;br /&gt;
# Terrain objects affect the elevation of other objects or transmitters or receivers that are located above them.&lt;br /&gt;
&lt;br /&gt;
Just as other blocks are grouped by their color, texture and material composition, terrain objects are also grouped in a similar fashion. Before you can generate or import a new terrain object, first you have to define a terrain group and specify its color/texture and material properties. To define a new terrain group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Terrain''' item in the Navigation Tree and select '''Insert New Terrain...''' A dialog for setting up the terrain properties opens up offering a of preloaded material type (Rock) with predefined green color and no texture.&lt;br /&gt;
* Specify a name for the terrain group and select a color or texture.&lt;br /&gt;
* Similar to other blocks, you have to specify the material properties, Permittivity (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and Electric Conductivity (&amp;amp;sigma;), of the terrain group. Rock with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m is the default material choice for a new terrain.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Terrain dialog.&lt;br /&gt;
&lt;br /&gt;
You can change the properties of a terrain surface group from its property dialog. Click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog, which is identical to the case of impenetrable surfaces. You can also use EM.Cube's Material List, which will be explained later. When a new terrain type is created, its node on the Navigation Tree becomes active. Under this node you can create and add new terrain objects. When a terrain node is active for drawing, all CAD object creation tools are disabled. You have three options for creating a new terrain object, which will be described in detail in the next sections of this manual:&lt;br /&gt;
&lt;br /&gt;
# Use EM.Cube's '''Terrain Generator'''.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.TRN'''&amp;amp;quot; type.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.DEM'''&amp;amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
=== Using Terrain Generator ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18.png|thumb|250px|[[Propagation Module]]'s Terrain Generator dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides a convenient and powerful Terrain Generator for creating a variety of terrain [[Surface Objects|surface objects]]. EM.Cube's Terrain Generator looks very similar to [[CubeCAD]]'s Surface Generator. However, whereas the Surface Generator creates a generic or polymesh surface object, Terrain Generator always creates another special type of object known as a '''Tessellated Object'''. A terrain object is much simpler than EM.Cube's polymesh objects and is usually made up of triangular or quadrilateral facets. As such, terrain objects have limited editing capabilities. For example, you can cut, copy, paste, translate or rotate  terrain objects. But operations like scaling, mirroring, grouping (composite), arraying, exploding, linking or Boolean operations do not work on terrain objects.&lt;br /&gt;
&lt;br /&gt;
To create a new terrain object using Terrain Generator, first you need to define a terrain group in the Navigation Tree. Right click on the name of the terrain node and select '''Terrain Generator...''' from the contextual menu. This opens up the Terrain Generator Dialog. Using Terrain Generator, you can build a single terrain surface or an array of surfaces patched together. Some of the available terrain models include:&lt;br /&gt;
&lt;br /&gt;
# Flat Plane&lt;br /&gt;
# Hill (Elliptic Quadratic)&lt;br /&gt;
# Mountain (Elliptic Cone)&lt;br /&gt;
# 1-D and 2-D Cliff&lt;br /&gt;
# Gaussian Hump&lt;br /&gt;
# Undulated Sinusoid&lt;br /&gt;
# Undulated Sinc&lt;br /&gt;
# Super-quadratic Plateau&lt;br /&gt;
# Custom Function&lt;br /&gt;
# XY Grid Data&lt;br /&gt;
&lt;br /&gt;
In all of the above models, you can set the height of the surface object to an any desired value. You set the lateral extents of the surface and its resolution along the X and Y directions in the boxes labeled '''Range Start''', '''Range Stop''' and '''Range Step'''. The step values along the X and Y directions are a measure of surface smoothness: the smaller the step values, the higher the resolution and the smoother the resulting terrain object.&lt;br /&gt;
&lt;br /&gt;
Some surface types have an additional shape factor called '''Alpha''' that is identical to the alpha parameter in the surface generator. For example, a Gaussian Hump is defined as exp(-r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/(2a&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)), where r is the polar radius. For a Super-quadratic Hump, the input parameter a defines the degree of the super-quadratic surface. a = 2 corresponds to an ellipsoid. Larger values of a get close to a rectangular base with rounded corners. An undulated sinusoidal surface is defined by cos(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*cos(pay/D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;), and an undulated sinc is defined by D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;*D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;*sin(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*sin(pay/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/(2pxy), where D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; are the X and Y dimensions, respectively. Terrain Generator creates a unit cell based on the specified surface type. From the same dialog, you can also produce an array arrangement of such unit cells. Simply enter any number of elements along the X and Y directions in the boxes labeled '''Array'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP19.png|800px]]  &lt;br /&gt;
&lt;br /&gt;
Figure: A 4 × 4 array of hill terrain objects.&lt;br /&gt;
&lt;br /&gt;
You can define any arbitrary surface by entering an equation of the two [[variables]] x and y as z = f(x,y). In this case, you have to select the '''Custom Function''' option in the dropdown list labeled '''Model'''. You should enter your equation as any mathematical expression in the box labeled '''Function f(x,y)'''. You can use any of EM.Cube's mathematical functions listed in the '''Function Dialog''' or combine several of them. Note that after selecting the custom function option, the height of the surface is determined by your equation, and the '''Height''' box is disabled. You can also introduce random noise and create a rough terrain. You can do this by setting a nonzero value for '''Noise''', which represent the RMS peak-to-valley amplitude of the surface roughness. The figures below show two custom terrain surfaces modeled by the equation z = (x.y)/20 defined over the range [0, 10] in both X and Y directions. Random noise has been added to both surfaces, with the noise amplitude being 0.2 and 0.5 for the left and right figures, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP21.png|400px]] [[File:PROP20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Two noisy custom terrain surfaces both defined as z = (x.y)/20: (Left) RMS noise amplitude = 0.2, (right) RMS noise amplitude = 0.5.&lt;br /&gt;
&lt;br /&gt;
=== Generating Grid-Based Terrain ===&lt;br /&gt;
&lt;br /&gt;
Every time you create a new terrain object using Terrain Generator, an ASCII data file named &amp;amp;quot;GeneratedTerrain&amp;amp;quot; with a &amp;amp;quot;'''.TRN'''&amp;amp;quot; file extension is created and placed in your project folder. This is EM.Cube's simple native terrain file format that basically lists all the (x, y, z) coordinates of the generated surface points on a horizontal, rectangular XY grid. Terrain Generator simply takes your custom function definition or one of the selected catalog surface types and generates the digital elevation data on the specified grid.  &lt;br /&gt;
&lt;br /&gt;
Another type of terrain model that the terrain generator provides is '''XY Grid Data'''. In this case, you define a rectangular XY grid with a uniform grid cell size along the X and Y directions and manually define the Z-elevation for each grid point. This is similar to the surface generator's &amp;amp;quot;2D Uniform Grid&amp;amp;quot; model type in [[CubeCAD]]. Based on your input to '''Range Start''', '''Range Stop''' and '''Range Step''' along X and Y, a 2D grid is set up and displayed in a table at the bottom of the terrain generator dialog. By default, all the Z-elevations are set to zero initially. You can click on each table cell and overwrite it with a new value. At the end, click the '''Create''' button of the dialog to add the new grid-based terrain object to the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:terrain10_tn.png]]&lt;br /&gt;
&lt;br /&gt;
A grid-based terrain object.&lt;br /&gt;
&lt;br /&gt;
=== Importing &amp;amp;amp; Exporting Terrain Models ===&lt;br /&gt;
&lt;br /&gt;
You can import two types of terrain in EM.Cube's [[Propagation Module]]. The first type is &amp;amp;quot;'''.TRN&amp;amp;quot;''' terrain file, which is EM.Cube's native terrain format. It is a basic digital elevation map with a very simple ASCII data file format. The resolution of the terrain map in the X and Y directions is specified in meters as STEPS. The (x, y, z) coordinates of the terrain points are then listed one point per line. The other type of terrain format supported by EM.Cube is the standard '''7.5min DEM''' file format with a '''.DEM''' file extension. &lt;br /&gt;
&lt;br /&gt;
To import an external terrain model, first you have to create a terrain group node in the Navigation Tree. Right click on the name of the terrain group in the Navigation Tree and select either '''Import Terrain...''' or '''Import DEM File...''' A standard Windows '''Open Dialog''' opens up, with the file type set to .TRN or .DEM extensions, respectively. You can browse your folders and find the right terrain model file to import.&lt;br /&gt;
&lt;br /&gt;
You can also export all the terrain objects in the project workspace as a terrain file with a '''.TRN''' file extension. You can even import a DEM terrain model from an external file and then save and export it as a native terrain (.TRN) file. To export the terrain, select '''File''' &amp;amp;gt; '''Export...''' from [[Propagation Module]]'s '''File Menu'''. The standard Windows Save Dialog opens up with the default file type set to '''.TRN'''. Type in a name for your new terrain file and click the '''Save''' button to export the terrain data.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-12_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figur: An imported external terrain model.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Surface Models ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP26.png|thumb|250px|Propagation Module's Penetrable Surface Dialog showing a three-layer wall composition]]&lt;br /&gt;
&lt;br /&gt;
Most of the time, your outdoor propagation scene consists of simple buildings made of single-layer walls with standard material properties (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;). In the case of a single-layer impenetrable surface, the specular interface is an infinite dielectric half-space, which reflects the impinging rays. Single-layer penetrable surfaces, on the other hand, involve finite-thickness dielectric walls, which both reflect and transmit the incident rays. Similarly, most of your indoor propagation scenes involve simple single-layer penetrable walls with the specified material properties &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. A thin wall acts like a finite-thickness dielectric slab that both reflects and transmits incident rays. In the case of the global ground or terrain objects, only ray reflection off the ground surface is considered.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[Propagation Module]], you can define multilayer surfaces with both reflection and transmission properties. You can define multilayer impenetrable buildings, multilayer penetrable walls, and multilayer terrain, with an arbitrary number of layers having different material compositions. You define a multilayer surface in the property dialog of a block, whether impenetrable, penetrable or terrain. In the section entitled '''Surface Type''', two options are available: '''Standard Material''' or '''User Defined Model'''. For simple multilayer walls, select the '''Standard Material''' option. You can add new layers with arbitrary thickness and material parameters to the existing layers. To insert a new layer, deselect any items in the layer list, and click the '''Add/Edit''' button to open the &amp;amp;quot;Add Layer&amp;amp;quot; Dialog. Here you can enter a name for the new layer and values for its '''Thickness''', &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. You may also delete any layer by selecting and highlighting it and clicking the '''Delete''' button. You can move layers up or down using the '''Move Up''' and '''Move Down''' buttons and change the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
You can also search EM.Cube's material database by clicking the '''Material''' button of &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. This opens the '''Materials''' Dialog. Inside the material list select and highlight any row and click the '''OK''' button. The selected material will fill out all the fields in the &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. Inside the Materials Dialog, you can type the few first letters of any material, and it will take you to the corresponding row of the list.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Transferring Objects From Or To Other Modules ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube's [[Propagation Module]] and draw a solid object like a box in the project workspace without having defined any surface groups, it is assumed to be of the impenetrable surface type. A default impenetrable surface group called Block_1 is automatically added to the Navigation Tree, which holds your newly drawn object. The default group has the material properties of &amp;amp;quot;Brick&amp;amp;quot; (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m.) with a dark brown color. You can continue drawing new objects in the project workspace and adding them under this block node. Or you can define a new surface type with different properties. By default, the last surface group that was defined is '''Active'''. The current active surface group is always listed in bold letters in the Navigation Tree. When you draw a new object, it is always inserted under the current active surface group. Any surface group can be activated by right clicking its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move any object from its current surface group into any other available surface group. First select the object, then right click on its surface and select '''MoveTo &amp;amp;gt; Propagation &amp;amp;gt;'''. A submenu appears which lists all the available surface groups where you can transfer the selected object. You can also move objects among surface groups by selecting their names in the Navigation Tree and using the contextual menu. In a similar way, you can transfer objects from [[Propagation Module]] to EM.Cube's other modules or vice versa. '''Keep in mind that all the external model files such as STEP, IGES, STL, etc. are first imported to EM.Cube's [[CubeCAD]], from which you can transfer them to other modules.''' First select the object, then right click and select '''MoveTo &amp;amp;gt;'''. In the submenu you will see a list of all the EM.Cube modules that have at least one available group where you can transfer your selected object. You can select multiple objects for transfer. When using the keyboard's '''Shift Key''' or '''Ctrl Key''' for multiple selection, make sure that those keys are held down, when you right click to access the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Defining Sources &amp;amp;amp; Observables ==&lt;br /&gt;
&lt;br /&gt;
Like every other electromagnetic solver, EM.Cube's SBR ray tracer requires a source for excitation and one or more observables for generation of simulation data. EM.Cube's new [[Propagation Module]] offers several types of sources and observables for a SBR simulation. You can mix and match different source types and observable types depending on the requirements of your modeling problem. There are two types of sources:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Transmitter Sets|Transmitter]]&lt;br /&gt;
* [[#Hertzian Dipole Sources|Hertzian Dipole]]&lt;br /&gt;
&lt;br /&gt;
There are four types of observables:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Receiver Sets|Receivers]]&lt;br /&gt;
* [[#Defining Field Sensors|Field Sensor]]&lt;br /&gt;
* Far Fields&lt;br /&gt;
* Huygens Surface&lt;br /&gt;
&lt;br /&gt;
The simplest SBR simulation can be performed using a short dipole source with a specified field sensor plane. In this way, EM.Cube computes the electric and magnetic fields radiated by your dipole source in the presence of your multipath propagation environment. A &amp;amp;quot;classic&amp;amp;quot; urban propagation scene can be set up using a &amp;amp;quot;Transmitter&amp;amp;quot; source and an array of &amp;amp;quot;Receiver&amp;amp;quot; observables. A transmitter is a point radiator with a user defined radiation pattern. A receiver is a polarization-matched isotropic point radiator that collects the received rays at its aperture. Using receivers, you can calculate the received power coverage map of your propagation scene. You can also calculate your channel's path loss between the transmitter and all the receivers. &amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18(1).png|thumb|[[Propagation Module]]'s Transmitter dialog with a short dipole radiator selected]]&lt;br /&gt;
Earlier versions of EM.Cube's [[Propagation Module]] used to offer an isotropic radiator with vertical or horizontal polarization as the simplest transmitter type. This release of EM.Cube has abandoned isotropic radiator transmitters because they do not exist physically in a real world. Instead, the default transmitter radiator type is now a Hertzian dipole. Note that before defining a transmitter, first you have to define a base set to establish the location of the transmitter. Most simulation scenes involve only a single transmitter. Your base set can be made up of a single point for this purpose. &lt;br /&gt;
&lt;br /&gt;
To define a new Transmitter Set, go to the '''Sources''' section of the Navigation Tree, right click on the '''Transmitters''' item and select '''Insert Transmitter...''' A dialog opens up that contains a default name for the new Transmitter Set as well as a dropdown list labeled '''Select Base Set'''. In this list you will see all the available base sets already defined in the project workspace. Select the desired base set to associate with the transmitter set. Note that if the base set contains more than one point, then more than one transmitter will be created and contained in your transmitter set. After defining a transmitter set, the base points change their color to the transmitter color, which is red by default.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Radiator&amp;amp;quot; section of the dialog, you have two options to choose from: &amp;amp;quot;Short Dipole&amp;amp;quot; and &amp;amp;quot;User Defined&amp;amp;quot;. The default option is short dipole. A short dipole radiator has a '''Length'''''dl'' expressed in project units, a current '''Amplitude''' in Amperes and a current '''Phase''' in degrees. The '''Direction''' of the dipole is determined by its unit vector that has three X, Y and Z components. By default, a Z-directed short dipole radiator is assumed. You can change all parameters of the dipole as you wish. Keep in mind that all the transmitters belonging to the same set have parallel radiators with identical properties.&lt;br /&gt;
&lt;br /&gt;
=== Defining Base Point Sets ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP1.png|thumb|[[Propagation Module]]'s Base Set dialog]]&lt;br /&gt;
In order to tie up transmitters and receivers with CAD objects in the project workspace, EM.Cube uses point objects to define transmitters and receivers. These point objects represent the base of the location of transmitters and receivers in the computational domain. Hence, they are grouped together as &amp;amp;quot;Base Sets&amp;amp;quot;. You can easily interchange the role of transmitters and receivers in a scene by switching their associated bases. The usefulness of concept of base sets will become apparent later when you place transmitters or receivers on an irregular terrain and adjust their elevation.   &lt;br /&gt;
&lt;br /&gt;
To create a new base set, right click on the '''Base Sets''' item of Navigation Tree and select '''Insert Base Set...''' A dialog for setting up the Base Set properties opens up.&lt;br /&gt;
&lt;br /&gt;
# Enter a name for the base set and change the default blue color if you wish. It is useful to differentiate the base sets associated with transmitters and receivers by their color.&lt;br /&gt;
# Click the '''OK''' button to close the Base Set Dialog.&lt;br /&gt;
&lt;br /&gt;
Once a base set node has been added to the Navigation Tree, it becomes the active node for new object drawing. Under base sets, you can only draw point objects. All other object creation tools are disabled. A point is initially drawn on the XY plane. Make sure to change the Z-coordinate of your radiator, otherwise, it will fall on the global ground at z = 0. You can also create arrays of base points under the same base set. This is particularly useful for setting up receiver grids to compute coverage maps. Simply select a point object and click the '''Array Tool''' of '''Tools Toolbar''' or use the keyboard shortcut &amp;amp;quot;A&amp;amp;quot;. Enter values for the X, Y or Z spacing as well as the number of elements along these three directions in the Array Dialog. In most propagation scenes you are interested in 2D horizontal arrays along a fixed Z coordinate (parallel to the XY plane).&lt;br /&gt;
&lt;br /&gt;
=== Defining Transmitter Sets ===&lt;br /&gt;
&lt;br /&gt;
A short dipole is the closest thing to an omni-directional radiator. The direction or orientation of the short dipole determines its polarization. In many applications, you may rather want to use a directional antenna for your transmitter. You can model a radiating structure using EM.Cube's FDTD, Planar, MoM3D or PO modules and generate a 3D radiation pattern data file for it. These data are stored in a specially formatted file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension, which contains columns of spherical &amp;amp;phi; and &amp;amp;theta; angles as well as the real and imaginary parts of the complex-valued far field components '''E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;''' and '''E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;'''. The &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field determine the polarization of the transmitting radiator. &lt;br /&gt;
&lt;br /&gt;
To define a directional transmitter radiator, you need to select the &amp;amp;quot;User Defined&amp;amp;quot; option in the &amp;amp;quot;Radiator&amp;amp;quot; section of the Transmitter Dialog. You can do this either at the time of creating a transmitter set, or afterwards by opening the property dialog of the transmitter set. In the &amp;amp;quot;Custom Pattern Parameters&amp;amp;quot;, click the '''Import Pattern''' button to set the path for the radiation data file. This opens up the standard Windows Open dialog, with the default file type or extension set to &amp;amp;quot;.RAD&amp;amp;quot;. Browse your folders to find the right data file. A radiation pattern file usually contains the value of &amp;amp;quot;Total Radiated Power&amp;amp;quot; in its file header. This is used by default for power calculations in the SBR simulation. However, you can check the box labeled &amp;amp;quot;'''Custom Power'''&amp;amp;quot; and enter a value for the transmitter power in Watts. EM.Cube can also rotate the imported radiation pattern arbitrarily. In this case, you need to specify the '''Rotation''' angles in degrees about the X-, Y- and Z-axes. Note that these rotations are performed sequentially and in order: first a rotation about the X-axis, then a rotation about the Y-axis, and finally a rotation about the Z-axis. &lt;br /&gt;
&lt;br /&gt;
[[File:PROP19(1).png]] [[File:PROP20(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Transmitter dialog with a user defined radiator selected.&lt;br /&gt;
&lt;br /&gt;
=== Multiple Transmitters vs. Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulations are fully coherent and 3D-polarimetric. This means that the phase and polarization of all the rays are maintained and processed during their bounces in the scene. Your propagation scene can have more than one transmitter. During an SBR simulation, all the rays emanating from all the transmitters are traced in the propagation scene. All the received rays at a given receiver location are summed coherently and vectorially. This is based on the principle of linear superposition. All the transmitters belonging to the same transmitter set have the same radiation properties. They are either parallel short dipole radiators with the same current amplitudes and phases, or parallel user defined radiators with identical radiation patterns. As these transmitters are placed at different spatial locations, they effectively form an antenna array with identical elements. The array factor is simply determined by the coordinates of the base points. If you want to have different amplitude or phases, then you need to define different transmitter sets.&lt;br /&gt;
&lt;br /&gt;
If that radiators are indeed the elements of an actual antenna array with a half wavelength spacing or so, we recommend that you import the radiation pattern of the array structure instead and replace the whole multi-radiator system with a single point transmitting radiator in your propagation scene. This case is usually encountered in MIMO systems, and using an equivalent point transmitter is an acceptable approximation because the total size of the array aperture is usually much smaller than the dimensions of your propagation scene and its representative length scales. In that case, you need to position the equivalent point radiator at the radiation center of the antenna array. This depends on the physical structure of the antenna array. However, keep in mind that any reasonable guess may still provide a good approximation without any significant error in the received ray data.    &lt;br /&gt;
&lt;br /&gt;
=== Defining Receiver Sets ===&lt;br /&gt;
&lt;br /&gt;
Receivers act as observables in a propagation scene. The objective of a SBR simulation is to calculate the far-zone electric fields and the total received power at the location of a receiver. In that sense, receivers indeed act as field observation points. You need to define at least one receiver in the scene before you can run a SBR simulation. You define the receivers of your scene by associating them with the base sets you have already defined in the project workspace. Unlike transmitters that usually one or few, a typical propagation scene may involve a large number of receivers. To generate a wireless coverage map, you need to define an array of points as your base set.    &lt;br /&gt;
&lt;br /&gt;
To define a new Receiver Set, go to the Observables section of the Navigation Tree, right click on the '''Receivers''' item and select '''Insert Receiver...''' A dialog opens up that contains a default name for the new Receiver Set as well as a dropdown list labeled '''Select Radiator Set'''. In this list you will see all the available base sets that you have already define in the project workspace. Select and designate the desired base set as the receiver set. Note that if the base set contains more than one point, all of them are designated as receivers. After defining a receiver set, the points change their color to the receiver color, which is yellow by default. The first element of the set is represented by a larger ball of the same color indicating that it is the selected receiver in the scene. The Receiver Set Dialog is also used to access individual receivers of the set for data visualization at the end of a simulation. At the end of an SBR simulation, the button labeled &amp;amp;quot;Show Ray Data&amp;amp;quot; becomes enabled. Clicking this button opens the Ray Data Dialog, where you can see a list of all the received rays at the selected receiver and their computed characteristics.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP21(1).png]] [[File:PROP22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Receiver dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Field Sensors ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|[[Propagation Module]]'s Field Sensor dialog]]&lt;br /&gt;
As an asymptotic electromagnetic field solver, the SBR simulation engine can compute the electric and magnetic field distributions in a specified plane. In order to view these field distributions, you must first define field sensor observables before running the SBR simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear. &lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.   &lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a SBR simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|E_{tot}|} = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|H_{tot}|} = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Computing Radiation Patterns In SBR ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
== Scene Discretization &amp;amp;amp; Adjustment ==&lt;br /&gt;
&lt;br /&gt;
=== The Need For Discretization Of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
In a typical SBR simulation, a ray is traced from the location of the source until it hits a scatterer. The SBR method assumes that the ray hits either a flat facet of the scatterer or one of its edges. In the case of hitting a flat facet, the specular point is used to launch new reflected and transmitted rays. The surface of the facet is treated as an infinite dielectric medium interface, at which the reflection and transmission coefficients are calculated. In the case of hitting an edge, new diffracted rays are generated in the scene. However, only those who reach a nearby receiver in their line of sight are ever taken into account. In other words, diffractions are treated locally.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to draw any type of surface or solid CAD objects under impenetrable and penetrable surface groups. Some of these objects have flat faces such as boxes, pyramids, rectangle or triangle strips, etc. Some others contain curved surfaces or curved boundaries such as cylinders, cones, etc. All the non-flat surfaces have to be discretized in the form of a collection of smaller flat facets. EM.Cube uses a triangular surface mesh generator to discretize the penetrable and impenetrable [[Surface Objects|surface objects]] of your propagation scene. This mesh generator is very similar to the ones used in EM.Cube's two other modules: MoM3D and Physical Optics (PO). &lt;br /&gt;
&lt;br /&gt;
You can build a variety of surface and [[Solid Objects|solid objects]] using EM.Cube's native &amp;amp;quot;Curve&amp;amp;quot; CAD objects like lines, polylines, circles, etc. You can use tools like Extrude, Loft, Strip-Sweep, Pipe-Sweep, etc. to transform curves into surface or [[Solid Objects|solid objects]]. '''However, keep in mind that all the &amp;amp;quot;Curve&amp;amp;quot; CAD objects are ignored by the SBR mesh generator and are therefore not sent to the simulation engine.'''&lt;br /&gt;
&lt;br /&gt;
=== Viewing SBR Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can view and examine the discretized version of your scene objects as they are sent to the SBR simulation engine. To view the mesh, click the '''Mesh''' [[File:mesh_tool.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''', or use the keyboard shortcut '''Ctrl+M'''. A triangular surface mesh of your physical structure appears in the project workspace. In this case, EM.Cube enters it mesh view mode. You can perform view operations like rotate view, pan, zoom, etc. But you cannot select objects, or move them or edit their properties. To get out of the Mesh View and return to EM.Cube's Normal View, press the '''Esc Key''' of the keyboard, or click the Mesh button of the Simulate Toolbar once again, or go to the Simulate Menu and deselect the '''Discretization &amp;amp;gt;''' '''Show Mesh''' item.&lt;br /&gt;
&lt;br /&gt;
You can adjust the mesh resolution and increase the geometric fidelity of discretization by creating more and finer triangular facets. On the other hand, you may want to reduce the mesh complexity and send to the SBR engine only a few coarse facets to model your buildings. To adjust the mesh resolution, open the Mesh Settings Dialog by clicking the '''Mesh Settings''' [[File:mesh_settings.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt;''' '''Mesh Settings...'''. This dialog provides a single parameters: '''Edge Length'''., which has a default value of 100 project units. If you are already in the Mesh View Mode and open the Mesh Settings Dialog, you can see the effect of changing the edge length using the '''Apply''' button. Click OK to close the dialog.&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules that express the default mesh density based on the wavelength, the resolution of the SBR mesh generator is expressed in project length units. The default edge length value of 100 units might be too large for non-flat objects. You may have to use a lower value to capture the curvature of your curved structures adequately. &lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-29.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Special Discretized Object Types ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, terrain objects are represented by and saved as special &amp;amp;quot;Tessellated&amp;amp;quot; objects with quadrilateral cells. This is true of terrain objects that you create yourself using EM.Cube's Terrain Generator as well as all the terrain objects that you import from external files to your project. The center of each cell represents the terrain elevation at that point. Tessellated objects are considered as discretized objects by EM.Cube and they are not meshed one more time by the SBR mesh generator. Each quadrilateral cell is divided into two triangular cells before being passed to the SBR simulation engine. Therefore, when using EM.Cube's Terrain Generator to create a new terrain object, you have to pay special attention to the resolution of the terrain object as it determines the total number of terrain facets sent to the simulation engine. A high resolution terrain, although looking better and more realistic, may easily lead to an enormous computational problem.&lt;br /&gt;
&lt;br /&gt;
You can use EM.Cube's &amp;amp;quot;Polymesh&amp;amp;quot; tool to discretize solid and surface CAD objects. You can manually control the mesh characteristics of polymesh objects including inserting new nodes on faces and edges or deleting existing nodes. In addition, EM.Cube's Solid Generator and Surface Generator tools create ploymesh solids and surfaces, respectively. Like tessellated object, polymesh objects are also considered as discretized objects by EM.Cube and they are not meshed again by the SBR mesh generator.   &lt;br /&gt;
&lt;br /&gt;
=== SBR Mesh Rules &amp;amp;amp; Considerations ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
=== Adjusting Block Elevation On Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, buildings and all other CAD objects are initially created on the XY plane by default. In other words, the Z-coordinate of the local coordinate system (LCS) of all blocks is set to zero until you change them. As long as you use the global ground, all is fine as your buildings are seated on the ground. When your propagation scene has an irregular terrain, you want to place your buildings on the terrain and not buried under it. Buildings in EM.Cube are not adjusted to the terrain elevation automatically. You need to instruct EM.Cube to do so.&lt;br /&gt;
&lt;br /&gt;
To update the building positions and adjust their elevation to the underlying terrain, right click on the '''Terrain''' item of the Navigation Tree and select '''Adjust Scene Elevation''' from the context menu. All the blocks in the scene are automatically elevated in the Z direction such that their bases sit on the terrain. In effect, all the blocks are translated along the global Z axis by proper amounts such that their local Z coordinate equals the Z-elevation of the underlying terrain object. This feature is particularly useful if you change the location of the terrain or import a new terrain after the blocks have been created.&lt;br /&gt;
&lt;br /&gt;
Note: You have to make sure that the resolution of your terrain, its fluctuation scale and building dimensions are all comparable. Otherwise, on a high-resolution, rapidly varying terrain, you will have buildings whose bottoms are in contact with the terrain only at a few points and parts of them hang in the air.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_adjust1_tn.png|400px]] [[File:prop_adjust2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Scene with Buildings and Terrain Before and After Adjusting Elevation&lt;br /&gt;
&lt;br /&gt;
=== Transmitters &amp;amp;amp; Receivers Above An Irregular Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, all the transmitters and receivers are tied up with point objects in the project workspace. These point objects are grouped and organized in base sets. When you move the point objects or change their coordinates, all of their associated transmitters or receivers immediately follow them to the new location. For example, you usually define a grid of receivers using a base set that is made up of a uniformly spaced array of points and spread them in your scene. All of these receivers have the same height because their associated base points all have the same Z-coordinate. When your receivers are located above a flat terrain like the global ground, their Z-coordinates are equal to their height above the ground, as the terrain elevation is fixed and equal to zero everywhere. The same is true for transmitters, too.   &lt;br /&gt;
&lt;br /&gt;
In many propagation modeling problems, your transmitters and receivers may be located above an irregular terrain with varying elevation across the scene. In that case, you may want to place your transmitters or receivers at a certain height above the underlying ground. The Z-coordinate of a transmitter or receiver is now the sum of the terrain elevation at the base point and the specified height. EM.Cube gives you the option to adjust the transmitter and receiver sets to the terrain elevation. This is done for individual transmitter sets and individual receiver sets. At the top of the Transmitter Dialog there is a check box labeled &amp;amp;quot;'''Adjust Tx Sets to Terrain Elevation'''&amp;amp;quot;. Similarly, at the top of the Receiver Dialog there is a check box labeled &amp;amp;quot;'''Adjust Rx Sets to Terrain Elevation'''&amp;amp;quot;. These boxes are unchecked by default. As a result, your transmitter sets or receiver sets coincide with their associated base points in the project workspace. If you check these boxes and place a transmitter set or a receiver set above an irregular terrain, the transmitters or receivers are elevated from the location of their associated base points by the amount of terrain elevation as can be seen in the figure below.   &lt;br /&gt;
&lt;br /&gt;
To better understand why there are two separate sets of points in the scene, note that a point array (CAD object) is used to create a uniformly spaced base set. The array object always preserves its grid topology as you move it around the scene. However, the transmitters or receivers associated with this point array object are elevated above the irregular terrain and no longer follow a strictly uniform grid. If you move the base set from its original position to a new location, the base points' topology will stay intact, while the associated transmitters or receivers will be redistributed above the terrain based on their new elevations.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_txrx1_tn.png|400px]] [[File:prop_txrx2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Transmitters and receivers adjusted above an uneven terrain and their associated base sets.&lt;br /&gt;
&lt;br /&gt;
== Running A SBR Simulation ==&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] offers three types of ray tracing simulations:&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
An SBR analysis is the simplest ray tracing simulation and involves the following steps:&lt;br /&gt;
&lt;br /&gt;
# Set the unit of project scene and the frequency of operation. Note that EM.Cube's default project unit is millimeter. When working with the [[Propagation Module]], pay attention to the project unit. Radio propagation problems usually require meter, mile or kilometer as the project unit.&lt;br /&gt;
# Create the blocks and draw the buildings at the desired locations.&lt;br /&gt;
# Keep the default ray domain and accept the default global ground or change its material properties.&lt;br /&gt;
# Define the base sets (at least one for the transmitter and one for the receiver).&lt;br /&gt;
# Define the transmitter and receiver(s) using the available base sets.&lt;br /&gt;
# Run the SBR simulation engine.&lt;br /&gt;
# Visualize the coverage map and plot other data.&lt;br /&gt;
&lt;br /&gt;
You can access the [[Propagation Module]]'s run dialog by clicking the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or by selecting '''Simulate &amp;amp;gt; Run...''' or using the keyboard shortcut '''Ctrl+R'''. When you click the '''Run''' button, a new window opens up that reports the different stages of the SBR simulation and indicates the progress of each stage. After the SBR simulation is successfully completed, a message pops up and prompts the completion of the process.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== SBR Simulation Parameters ===&lt;br /&gt;
&lt;br /&gt;
There are a number of SBR simulation settings that can be accessed and changed from the SBR Settings Dialog. To open this dialog, click the button labeled '''Settings''' on the right side of the '''Select Engine''' dropdown list in the Run Dialog. EM.Cube's SBR simulation engine allows you to separate the physical effects that are calculated during a ray tracing process. You can selectively enable or disable '''Ray Reflection''', '''Ray Transmission''' and '''Ray Diffraction'''. By default, all three effects are checked and included in the computations. Separating these effects sometimes help you better analyze your propagation scene and understand the impact of various blocks in the scene.&lt;br /&gt;
&lt;br /&gt;
EM.Cube requires a finite number of ray bounces for each original ray emanating from a transmitter. This is very important in situations that may involve resonance effects where rays get trapped among certain group of surfaces and may bounce back and forth indefinitely. This is set using the box labeled &amp;amp;quot;'''Max No. Ray Bounces'''&amp;amp;quot;, which has a default value of 10. Note that the maximum number of ray bounces directly affects the computation time as well as the size of output simulation data files. This can become critical for indoor propagation scenes, where most of the rays undergo a large number of reflections.   &lt;br /&gt;
&lt;br /&gt;
As rays travel in the scene and bounce from surfaces, they lose their power and their amplitudes diminish. From a practical point of view, only rays that have power above the receiver sensitivity threshold can be effectively received. Therefore, all the rays whose power fall below a specified power threshold are discarded. The '''Ray Power Threshold''' is specified in dBm and has a default value of -100dBm. Keep in mind that the value of this threshold directly affects the accuracy of the simulation results as well as the size of the output data file.&lt;br /&gt;
&lt;br /&gt;
You can also set the '''Angular Resolution''' of the transmitter rays in degrees. By default, every transmitter emanates equi-angular ray tubes at a resolution of 1 degree. Lower angular resolutions larger than 1° speed up the SBR simulation significantly, but they may compromise the accuracy. Higher angular resolutions less than 1° increase the accuracy of the simulating results, but they also increase the computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP13.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s SBR Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== The Coverage Map ===&lt;br /&gt;
&lt;br /&gt;
If the associated radiator set is isotropic, so will be the transmitter set. By default, an isotropic transmitter has vertical polarization. You can use the '''Polarization''' radio button to select one of the two options: '''Vertical''' or '''Horizontal'''. If the associated radiator set consists of '''Short Dipole''' or '''User Defined''' radiators, it is indicated in the transmitter property dialog. In the case of a short dipole radiator, you can set a value for the dipole current in Amperes. The radiation resistance of a short dipole of length ''dl'' is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; R_r = 80\pi^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:eqngr6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The radiated power of a short dipole carrying a current I&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; P_{rad} = \frac{1}{2} R_r |I_0|^2 = 40\pi^2 |I_0|^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:shortdipole.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For isotropic and user defined radiators you can set the '''Input Power''' and '''Phase''' of a transmitter set in Watts and degrees, respectively. This can be accessed from the '''Transmitter Chain''' dialog, which will be described in detail in the next section. The radiation pattern of the associated radiator set is normalized and used in conjunction with the input power value to create a weighted distribution of transmitted rays. In certain cases like hybrid simulations, you may want to use the actual values of the far field to define the transmitter power rather than a normalized radiation pattern. Note that the pattern (.RAD) file contains the value of total radiated power in its header. In this case, check the box labeled '''&amp;amp;quot;Calculate Power From Radiation Pattern&amp;amp;quot;'''. This is calculated directly from the complex &amp;amp;theta; and &amp;amp;phi; components of the far field data by integrating them over the entire space (4&amp;amp;pi; solid angle). Note that this option is available only when the radiator is of the User Defined type. When this box is checked, the transmitter chain button is grayed out. By default, an isotropic transmitter emanates rays uniformly in all directions at the angular resolution specified by the user. A transmitter with a user defined associated radiator may represent a highly directional radiation pattern with the main beam pointing in a certain direction. You can additionally force and limit the '''Angular Extents''' of rays to a certain solid angle around the transmitter. This is especially useful and computationally efficient when the transmitter is on one side of the scene, and all the scatterers and receivers are on the other side. In this case, there is no need to generate rays in all directions. To limit the angular extents of rays, define the Start and End values for both Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles. The value of the angular resolution of the rays can be changed from the Run Dialog as will be discussed later.&lt;br /&gt;
&lt;br /&gt;
In a regular SBR simulation, you have a transmitter and one or more arrays of receivers in your scene. At the end of the simulation, you can visualize the coverage map of the transmitter over the receiver sets. A coverage map shows the total '''Received Power''' by each of the receivers and is visualized as a color-coded intensity plot. You can visualize the coverage maps of individual receiver sets. At the end of a SBR simulation, each Received Power Coverage Map is listed under the receiver set's name in the Navigation Tree. To display a coverage map, simply click on its entry in the Navigation Tree. The coverage map plot appears in the Main Window overlaid on the scene. A legend box on the right shows the color scale and units (dB). The 3-D coverage maps are displayed as horizontal confetti above the receivers. If the receivers are packed close to each other, you will see a continuous confetti map. If the receivers are far apart, you will see individual colored squares. You can also visualize coverage maps as colored 3-D cubes. This may be useful when you set up your receivers in a vertical arrangement or the scene has a highly uneven terrain. To change the type of coverage map visualization, open the receiver set's property dialog and select the desired option for '''Coverage Map: Confetti''' or '''Cube''' in the '''&amp;amp;quot;Visualization Options&amp;amp;quot;''' section of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run11_tn.png|400px]] [[File:prop_run12_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Received power coverage map: (Left) confetti style, and (Right) cube style.&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the coverage map by right clicking on its entry in the Navigation Tree and selecting '''Properties...''' or by double-clicking on the legend box. In the Output Plot Settings dialog, you can choose from one of three Color Map options: '''Default''', '''Rainbow''' and '''Grayscale'''. The visualization plot uses default values for the color scale. In the section titled &amp;amp;quot;Limits&amp;amp;quot;, you can choose the radio button labeled '''User Defined'''. Then, you have to enter new values for the '''Lower''' and '''Upper''' Limits of the plot. You can also show or hide the Legend Box or change its '''Background''' and '''Foreground''' colors by clicking the buttons provided for this purpose.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run4.png]]&lt;br /&gt;
&lt;br /&gt;
Output Plot Settings&lt;br /&gt;
&lt;br /&gt;
=== The Ray Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a SBR simulation, each receiver receives a number of rays. Some receivers may not receive any rays at all. You can visualize all the rays received by a certain receiver from the active transmitter of the scene. To do this, right click the '''Receivers''' item of the Navigation Tree. From the context menu select '''Show Received Rays'''. All the rays received by the currently selected receiver of the scene are displayed in the scene. The rays are identified by labels, are ordered by their power and have different colors for better visualization. You can display the rays for only one receiver at a time. The receiver set property dialog has a list of all the individual receivers belonging to that set. To display the rays received by another receiver, you have to change the '''Selected Receiver''' in the receiver set's property dialog. If you keep the mouse focus on this dropdown list and roll your mouse scroll wheel, you can scan the selected receivers and move the rays from one receiver to the next in the list. To remove the visualized rays from the scene, right click the Receivers item of the Navigation Tree again and from the context menu select '''Hide Received Rays'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run5_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Visualization of received rays at the location of the selected receiver.&lt;br /&gt;
&lt;br /&gt;
You can also view the ray parameters by opening the property dialog of a receiver set. By default, the first receiver of the set is always selected. You can select any other receiver from the drop-down list labeled '''Selected Receiver'''. If you click the button labeled '''Show Ray Data''', a new dialog opens up with a table that contains all the received rays at the selected receiver and their parameters:&lt;br /&gt;
&lt;br /&gt;
* Delay is the total time delay that a ray experiences travelling from the transmitter to the receiver after all the reflections, transmissions and diffractions and is expressed in nanoseconds.&lt;br /&gt;
* Ray Field is the received electric field at the receiver location due to a specific ray and is given in dBV/m.&lt;br /&gt;
* Ray Power is the received power at the receiver due to a specific ray and is given in dBm.&lt;br /&gt;
* Angles of Arrival are the &amp;amp;theta; and &amp;amp;phi; angles of the incoming ray at the local spherical coordinate system of the receiver.&lt;br /&gt;
&lt;br /&gt;
The Ray Data Dialog also shows the '''Total Received Power''' in dBm and '''Total Received Field''' in dBV/m due to all the rays received by the receiver. You can sort the rays based on their delay, field, power, etc. To do so, simply click on the grey column label in the table to sort the rays in ascending order based on the selected parameter. You can also select any ray by clicking on its '''ID''' and highlighting its row in the table. In that case, the selected rays is highlighted in the Project Workspace and all the other rays become thin (faded).&lt;br /&gt;
&lt;br /&gt;
Note: The rays are summed up coherently at the receiver.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run6_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Analyzing a selected ray from the ray data dialog.&lt;br /&gt;
&lt;br /&gt;
=== Plotting Other Simulation Results ===&lt;br /&gt;
&lt;br /&gt;
Besides visualizing the coverage map and received rays in the EM.CUBE's [[Propagation Module]], you can also plot the '''Path Loss''' of all the receivers belonging to a receiver set as well as the '''Power Delay Profile''' of individual receivers. To plot these data, go the '''Observables''' section of the Navigation Tree and right click on the '''Receivers''' item. From the context menu, select '''Plot Path Loss''' or '''Plot Power Delay Profile''', respectively. The path loss data between the active transmitter and all the receivers belonging to a receiver set are plotted on a Cartesian graph. The horizontal axis of this graph represents the index of the receiver. Power Delay Profile is a bar chart that plots the power of individual rays received by the currently selected receiver versus their time delay. If there is a line of sight (LOS) between a transmitter and receiver, the LOS ray will have the smallest delay and therefore will appear first in the bar chart. Sometimes you may have several rays arriving at a receiver at the same time, i.e. all with the same delay, but with different power level. These will appear as stacked bars in the chart.&lt;br /&gt;
&lt;br /&gt;
You can also plot the path loss and power delay profile graphs and many others from EM.CUBE's data manager. You can open data manager by clicking the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or by selecting '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or by right clicking on the '''Data Manager''' item of the Navigation Tree and selecting Open Data Manager... from the contextual menu or by using the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the theta and phi angles of arrival and departure of the selected receiver. You can select any data file by clicking and highlighting its '''ID''' in the table and then clicking the '''Plot''' button.&lt;br /&gt;
&lt;br /&gt;
=== Output Data Files ===&lt;br /&gt;
&lt;br /&gt;
At the end of an SBR simulation, the results are written into a main output data file with the reserved name of SBR_Results.RTOUT. This file has the following format:&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Receiver Number&lt;br /&gt;
* Receiver Base X, Y , Z Coordinates&lt;br /&gt;
* Receiver Height&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
Number of Rays&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Ray Number&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Arrival in deg&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Departure in deg&lt;br /&gt;
* Delay in nsec&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''') &amp;amp;amp; Imag('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''')&lt;br /&gt;
* Power&lt;br /&gt;
&lt;br /&gt;
The angles of arrival are the &amp;amp;theta; and &amp;amp;phi; angles of a received ray measured in degrees and are referenced in the spherical coordinate systems centered at the location of the receiver. The angles of departure for a received ray are the &amp;amp;theta; and &amp;amp;phi; angles of the originating transmitter ray, measured in degrees and referenced in the spherical coordinate systems centered at the location of the active transmitter, which eventually arrives at the receiver. The total time delay is measured in nanoseconds between t = 0 nsec at the time of launch from the transmitter location till being received at the receiver location. The last four columns show the real and imaginary parts of the received electric fields with vertical and horizontal polarizations, respectively. The complex field values are normalized in a way that when their magnitude is squared, it equals the received ray power. If the active transmitter is an isotropic radiator with either a vertical or horizontal polarization, then the field components corresponding to the other polarization will have zero entries in the output data file.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run8_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A typical SBR output data file.&lt;br /&gt;
&lt;br /&gt;
=== Running A Frequency Sweep With SBR ===&lt;br /&gt;
&lt;br /&gt;
By default, you run a single-frequency simulation in EM.CUBE's [[Propagation Module]]. You set the operational frequency of a SBR simulation in the project's '''Frequency Dialog''', which can be accessed in a number of ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''Frequency''' [[File:freq_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]]'''Frequency Settings...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+F'''.&lt;br /&gt;
# By double clicking the frequency section (box) of the '''Status Bar'''.&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
[[File:prop_freq.png]]    [[File:prop_run10.png]]&lt;br /&gt;
&lt;br /&gt;
(Left) Project's frequency dialog and (Right) the frequency settings dialog.&lt;br /&gt;
&lt;br /&gt;
You can also select the '''Frequency Sweep''' option in the '''Simulation Mode''' drop-down list of the '''Run Dialog'''. Click the '''Settings...''' button on the right side of this dropdown list to open up the Frequency Settings Dialog. Based on the original values of the project center frequency and bandwidth, the '''Start Frequency''' and '''End Frequency''' have default values. You can also change the '''Number of Samples'''. Once you click the '''Run''' button, EM.CUBE performs a frequency sweep by assigning each of the frequency samples as the current operational frequency and running the SBR simulation engine at that frequency. All the simulation data at all frequency samples are saved into the output data files including &amp;amp;quot;SBR_results.RTOUT&amp;amp;quot;. After the completion of a frequency sweep simulation, as many coverage maps as the number of frequency samples are generated and added to the Navigation Tree under the Receiver Set's entry. You can click on each of the coverage maps corresponding to each of the frequency samples and visualize it in the project workspace. You can also animate the coverage maps. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. The coverage maps start to animate by their order on the Navigation Tree. Once the entire list is displayed sequentially, it starts all over again from the beginning of the list. During the animation, the '''Animation Controls''' dialog appears at the lower right corner of the screen. This dialog has a number of buttons for pause/resume, step forward/backward, and step to the end/start. The title of each coverage map is shown in the box labeled '''Sample''' as it is displayed in the main window. You can also change the speed of animation. The default frame duration has a value of 300 (3x100) milliseconds. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run13.png]]    [[File:prop_run14.png]]&lt;br /&gt;
&lt;br /&gt;
Multiple coverage maps on the Navigation Tree at the end of a frequency sweep and starting an animation from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run15_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Animation controls dialog in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep with SBR ===&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run24.png|thumb|300px|EM.CUBE's variable dialog]]&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run23.png|thumb|250px|Dialog for defining new variables]]&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE, all the CAD object properties as well as certain source, material and mesh parameters can be assigned as [[variables]]. [[Variables]] are defined to control and vary the values of such parameters either for editing purposes or to run parametric sweep or [[optimization]]. Variable are defined using the '''[[Variables]] Dialog''', which can be accessed in the three ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''[[Variables]]''' [[File:variable_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]] '''[[Variables]]...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+B'''.&lt;br /&gt;
&lt;br /&gt;
The [[variables]] dialog is initially empty. To add a new variable, click the '''Add''' button to open up the '''Add Variable/Syntax Dialog'''. In this dialog you have to type in a name for the new variable and choose a type. The default type is '''Uniformly Spaced Samples'''. You also need to specify the '''Start''', '''Stop''' and '''Step''' values for the variable. In the figure below, a variable called &amp;amp;quot;Tx_Height&amp;amp;quot; is defined that varies between 2 and 10 with equal steps of 2. This means the sample set {2,4,6,8,10}. When you return to the [[variables]] dialog, the syntax of the new variable is shown as 2:10:2. The last number in this syntax is always the variable step. In this example, this variable is going to be used to control the height of the transmitter in a propagation scene.&lt;br /&gt;
&lt;br /&gt;
Next, you have to attach the variable to the CAD object. In this case, the CAD object is the point object that represents the transmitter's radiator. To attach a variable to a CAD object, open the object's property dialog and type in the name of the variable as the value of a property or parameter. In this case, the variable Tx_Height is going to control the Z-Coordinate of the point object. Once the value of the object parameter is replaced by the name of an already defined variable, it is updated with the current value of that variable. In the case of a variable of &amp;amp;quot;Uniformly Spaced Samples&amp;amp;quot; type, the current value is the start value. This value will be incrementally varied during a parametric sweep simulation process. Note that a variable can take a fixed value or a discrete set of values, too. You can always open the [[variables]] dialog and change the value or syntax of any variable. To make a new or modified value effective, click the '''Apply''' button of the [[variables]] dialog. You can test the values by performing a '''Dry Run''' of the selected variable. This runs an animation of the project workspace as the value of the variable changes and all the related CAD objects are updated accordingly. Note that you can attach the same variable to more than one CAD object property or to the properties of different objects. You can also define multiple values or syntaxes to the same variable. To do so, open the '''Add Variable/Syntax Dialog''', and instead of typing in a new variable name, choose an existing variable name from the '''Name''' dropdown list. This will add a new value or syntax to the existing syntax(es) of the selected variable. When you return to the [[variables]] dialog, [[variables]] with more than one value or syntax will have a dropdown list in the '''Syntax''' column. You can choose any of these values or syntaxed at any time and make the change effective by clicking the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run25.png]]&lt;br /&gt;
&lt;br /&gt;
Replacing the value of a CAD object parameter with a variable name.&lt;br /&gt;
&lt;br /&gt;
To run a parametric sweep, open the '''Run Dialog''' and select the '''Parametric Sweep''' option in the '''Simulation Mode''' drop-down list. If you have not defined any [[variables]] in the project, the box in the '''[[Variables]]''' row before the '''View''' will be red. You have to turn it into green before you can run a simulation. By clicking the '''View''' button, you can open up the [[variables]] dialog from here. Once you click the '''Run''' button, EM.CUBE performs a parametric sweep by incrementally varying the values of all the defined [[variables]] from their start to stop values at the specified steps and updating all the related CAD objects. After the completion of a parametric sweep simulation, as many coverage maps as the total number of variable samples are generated and added to the Navigation Tree under the receiver set's entry. You can click on each of the coverage maps and visualize it in the project workspace. You can also animate the coverage maps sequentially. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run26.png]]&lt;br /&gt;
&lt;br /&gt;
Choosing parametric sweep as the simulation mode in the run dialog. Note that one variable has been defined and EM.CUBE is ready to run the simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run27_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The coverage map of the scene at the end of a parametric sweep where the sweep variable is the transmitter height.&lt;br /&gt;
&lt;br /&gt;
=== Statistical Analysis of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's coverage maps display the received power at the location of all the receivers. The receivers together from a set/ensemble, which might be uniformly spaced or distributed across the propagation scene or may consist of randomly scattered radiators. Every coverage map shows the '''Mean''' and '''Standard Deviation''' of the received power for all the receivers involved. These information are displayed at the bottom of the coverage map's legend box and are expressed in dB.&lt;br /&gt;
&lt;br /&gt;
In the [[Propagation Module]], when you ran a sweep simulation (frequency, transmitter or parametric), you also have the option to generate two additional coverage maps: one for the mean of all the individual sample coverage maps and another for their standard deviation. To do so, in the '''Run Dialog''', check the box labeled '''&amp;amp;quot;Create Mean and Standard Deviation Coverage Maps&amp;amp;quot;'''. Note that the mean and standard deviation values displayed on the individual coverage maps correspond to the spatial statistics of the receivers in the scene, while the mean and standard deviation coverage maps correspond to frequency, transmitter or variable sets defined for the sweep simulation. Also, note that both of the mean and standard deviation coverage maps have their own spatial mean and standard deviation values expressed in dB at the bottom of their legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run21_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The mean coverage map at the end of a transmitter sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run22_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The standard deviation coverage map at the end of a transmitter sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Terrano</id>
		<title>EM.Terrano</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Terrano"/>
				<updated>2013-06-14T14:25:59Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Wedge Diffraction From Edges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Taking out this picture for now for consistency&lt;br /&gt;
[[File:urban.png]]--&amp;gt;&lt;br /&gt;
EM.Terrano is a physics-based, site-specific, wave propagation modeling tool that enables engineers to quickly determine how radio waves propagate in urban, natural or mixed environments. The rapid growth of wireless communications along with the high costs associated with the design and deployment of effective wireless infrastructures underline a persistent need for computer aided communication network planning tools. Wireless engineers have long used simplistic statistical prediction models based on measurements that often exhibit considerable errors especially in areas having mixed building sizes.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Terrano has helped wireless engineers around the globe model the physical channel and the mechanisms by which radio signals propagate from transmitters to receivers. EM.Terrano’s advanced ray tracing simulator finds the dominant propagation paths specific to the site in question. It calculates the true signal characteristics at the actual locations using physical databases of the buildings and terrain at a given site, not those of a statistically average or representative environment. EM.Terrano’s ray tracer is based on the shoot-and-bounce-rays (SBR) method, which utilizes geometrical optics (GO) in combination with uniform theory of diffraction (UTD) models of building edges.&lt;br /&gt;
&lt;br /&gt;
The new EM.Terrano 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has created the opportunity to inject a host of new powerful features such as a highly customizable terrain generator, DEM terrain import, complex building constructions, and versatile interior wall arrangements for indoor propagation modeling. As a result of this seamless interface with EM.Cube's other modules, you can now model complex antenna systems in [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]], and generate antenna radiation patterns than can be used to model directional transmitters and receivers at the two ends of your propagation channel. Conversely, you can analyze a propagation scene in EM.Terrano and import the rays received at a certain receiver location as coherent plane wave sources to [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]]. You can also model periodic wall or ground structures using the periodic simulation capability of [[EM.Picasso]] or [[EM.Tempo]] and generate macromodels for their reflection and transmission coefficients as functions of the ray incidence angles. You can then define buildings or terrains in your propagation scene that are governed by such macromodels.&lt;br /&gt;
&lt;br /&gt;
== A Wireless Propagation Primer ==&lt;br /&gt;
Every wireless communication system involves a transmitter that transmits some sort of signal (voice, video, data, etc.), a receiver that receives and detects the transmitted signal, and a channel in which the signal is transmitted into the air and travels from the location of the transmitter to the location of the receiver. The channel is the physical medium in which the electromagnetic waves propagate. The successful design of a communication system depends on an accurate link budget analysis that determines whether the receiver receives adequate signal power to detect it against the background noise. The simplest channel is the free space. Real communication channels, however, are more complicated and involve a large number of wave scatterers. For example, in an urban environment, the obstructing buildings, vehicles and vegetation reflect, diffract or attenuate the propagating radio waves. As a result, the receiver receives a distorted signal that contains several components with different power levels and different time delays arriving from different angles.&lt;br /&gt;
&lt;br /&gt;
The different rays arriving at a receiver location create constructive and destructive interference patterns. This is known as the multipath effect. This together with the shadowing effects caused by building obstructions lead to channel fading. In many wireless applications, the total received power by the receiver is all that matters. In some others, the angle of arrival of the rays as well as their polarization are of immense interest. A fully polarimetric, coherent ray tracer like EM.Cube's Shooting-and-Bouncing-Rays (SBR) solver lets you compute and resolve all the rays received by a receiver including their power levels, time delays and angles of arrival.&lt;br /&gt;
&lt;br /&gt;
=== Free Space Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
In a free-space line-of-sight (LOS) communication system, the signal propagates directly from the transmitter to the receiver without encountering any obstacles (scatterers). Electromagnetic waves propagate in the form of spherical waves with a functional dependence of e&amp;lt;sup&amp;gt;j(&amp;amp;omega;&amp;lt;/sup&amp;gt;&amp;lt;sup&amp;gt;t-k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;R)&amp;lt;/sup&amp;gt;/R, where R is the distance between the transmitter and receiver, &amp;lt;math&amp;gt;\omega = 2\pi f&amp;lt;/math&amp;gt;, f is the signal frequency, &amp;lt;math&amp;gt;k_0 = \tfrac{\omega}{c} = \tfrac{2\pi}{\lambda}&amp;lt;/math&amp;gt;, c is the speed of light, and &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength at the operational frequency. By the time the signal arrives at the location of the receiver, it undergoes two changes. It is attenuated and its power drops by a factor of 1/R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, and additionally, it experiences a phase shift of &amp;lt;math&amp;gt;\tfrac{2\pi R}{\lambda_0}&amp;lt;/math&amp;gt;, which is equivalent to a time delay of R/c. The signal attenuation from the transmitter to the receiver is usually quantified by '''Path Loss''' defined as the ratio of the received signal power (P&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;) to the transmitted signal power (P&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;). Assuming isotropic transmitting and receiving radiators (i.e. radiating uniformly in all directions), the Path Loss in a free-space line-of-sight communication system is given by Friis’ formula:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = \left( \frac{\lambda_0}{4\pi R} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above formula assumes that the receiving antenna is polarization-matched. Normally, there is a polarization mismatch between the transmitting and receiving antennas. In the case of directional transmitting and receiving antennas, Friis’ formula takes the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = G_T G_R \left( \frac{\lambda_0}{4\pi R} \right)^2 ( \mathbf{ \hat{u}_T \cdot \hat{u}_R } )&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''u&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;''' and '''u&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''' are the unit polarization vectors of the transmitting and receiving antennas, and G&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt; and G&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; are their gains, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:los.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Line-of-Sight (LOS) Propagation Scenario.&lt;br /&gt;
&lt;br /&gt;
=== Multipath Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
Free-space line-of-sight communications is an ideal scenario that is typically used to model aerial or space applications. In ground-based systems, the presence of the ground as a very large reflecting surface affects the signal propagation to a large extent. Along the path from a transmitter to a receiver, the signal may also encounter many obstacles and scatterers such as buildings, vegetation, etc. In an urban canyon environment with many buildings of different heights and other scatterers, a line of sight between the transmitter and receiver can hardly be established. In such cases, the propagating signals bounce back and forth among the building surfaces. It is these reflected or diffracted signals that are often received and detected by the receiver. Such environments are referred to as “multipath”. The group of rays arriving at a specific receiver location experience different attenuations and different time delays. This gives rise to constructive and destructive interference patterns that cause fast fading. As a receiver moves locally, the receiver power level fluctuates sizably due to these fading effects.&lt;br /&gt;
&lt;br /&gt;
The use of statistical models for prediction of fading effects is widely popular among communication system designers. These models are either based on measurement data or derived from simplistic analytical frameworks. The statistical models often exhibit considerable errors especially in areas having mixed building sizes. In such cases, one needs to perform a physics-based, site-specific analysis of the propagation environment to accurately identify and establish all the possible signal paths from the transmitter to the receiver. This involves an electromagnetic analysis of the scene with all of its geometrical and physical details.  &lt;br /&gt;
&lt;br /&gt;
Link budget analysis for a multipath channel is a challenging task due to the large size of the computational domains involved. Typical propagation scenes usually involve length scales on the order of thousands of wavelengths. To calculate the path loss between the transmitter and receiver, one must solve Maxwell's equations in an extremely large space. Full-wave numerical techniques like the Finite Difference Time Domain (FDTD) method, which require a fine discretization of the computational domain, are therefore impractical for solving large-scale propagation problems. The practical solution is to use asymptotic techniques such as SBR, which utilize analytical techniques over large distances rather than a brute force discretization of the entire computational domain. Such asymptotic techniques, of course, have to compromise modeling accuracy for practical computation feasibility.&lt;br /&gt;
&lt;br /&gt;
[[File:multi1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A multipath propagation scene showing all the rays arriving at a particular receiver.&lt;br /&gt;
&lt;br /&gt;
=== The SBR Method ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] provides an asymptotic ray tracing simulation engine that is based on a technique known as Shooting-and-Bouncing-Rays (SBR). In this technique, propagating spherical waves are modeled as ray tubes or beams that emanate from a source, travel in space, bounce from obstacles and are collected by the receiver. As rays propagate away from their source (transmitter), they begin to spread (or diverge) over distance. In other words, the cross section or footprint of a ray tube expands as a function of the distance from the source. EM.Cube uses an accurate equi-angular ray generation scheme to that produces almost identical ray tubes in all directions to satisfy energy and power conservation requirements.&lt;br /&gt;
&lt;br /&gt;
When a ray hits an obstructing surface, one or more of the following phenomena may happen:&lt;br /&gt;
&lt;br /&gt;
# Reflection from the locally flat surface&lt;br /&gt;
# Transmission through the locally flat surface&lt;br /&gt;
# Diffraction from an edge between two conjoined locally flat surfaces&lt;br /&gt;
&lt;br /&gt;
EM.Cube discretizes all the objects of the scene into flat triangular facets. Obviously, rectangular and cubic objects preserve their geometric shapes through this discretization. Objects with curved surfaces such as cylinders, cones or spheres, are approximated by &amp;amp;quot;polymesh&amp;amp;quot; representations. The geometric fidelity of the resulting mesh depends on the specified mesh edge length. When a ray hits a triangular facet, the propagating spherical wave is approximated as a plane wave at the specular point. The reflection and transmission coefficients of the surface are calculated at the operational frequency and at the particular ray incident angle. &lt;br /&gt;
&lt;br /&gt;
A new reflected ray is generated at the specular point, which starts traveling and bouncing around in the scene. If the obstructing surface is penetrable, a second transmitted ray is generated and added to the scene. If the ray hits the edge of an obstacle, it is diffracted from that edge. This leads to the creation of a cone of new rays, which greatly complicate the computational problem. The Uniform Theory of Diffraction (UTD) is used to calculate the wedge diffraction coefficients at the edges of scattering blocks. Note that reflection, transmission and diffraction coefficients are all dependent on the polarization of the incident plane wave.&lt;br /&gt;
&lt;br /&gt;
A receiver may receive a large number of rays: direct line-of-sight rays from the transmitter, rays reflected or diffracted off the ground or terrain, rays reflected or diffracted from buildings or rays transmitted through buildings. Each received ray is characterized by its power, delay and angles of arrival, which are the spherical coordinate angles &amp;amp;theta; and &amp;amp;phi; of the incoming ray. The actual signal received and detected by the receiver is the superposition of all these rays with different power levels and different time delays. Most of the time, you will be interested in the coverage map of an area, which shows how much power is received by a grid of receivers spread over the area from a given fixed transmitter.&lt;br /&gt;
&lt;br /&gt;
=== Ray Reflection &amp;amp; Transmission ===&lt;br /&gt;
&lt;br /&gt;
[[File:reflect.png|thumb|350px|The Incident, Reflected and Transmitted Rays at the Interface Between Two Dielectric Media]]&lt;br /&gt;
&lt;br /&gt;
The incident, reflected and transmitted rays are each characterized by a triplet of unit vectors:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}, \hat{u}_{\perp}, \hat{k} } )&amp;lt;/math&amp;gt; representing the incident parallel polarization vector, incident perpendicular polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}', \hat{u}_{\perp}', \hat{k}' } )&amp;lt;/math&amp;gt; representing the reflected parallel polarization vector, reflected perpendicular polarization vector and reflected propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}'', \hat{u}_{\perp}'', \hat{k}'' } )&amp;lt;/math&amp;gt; representing the transmitted parallel polarization vector, transmitted perpendicular polarization vector and transmitted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The reflected ray is assumed to originate from a virtual image source point. The three triplets constitute three orthonormal basis systems. Below, it is assumed that the two dielectric media have permittivities &amp;amp;epsilon;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;epsilon;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, and permeabilities &amp;amp;mu;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;mu;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, respectively. A lossy medium with a conductivity &amp;amp;sigma; can be modeled by a complex permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = &amp;amp;epsilon;'&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; –j&amp;amp;sigma;/&amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. Assuming '''n''' to be the unit normal to the interface plane between the two media, and Z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;Omega; , the incident polarization vectors as well as all the reflected and transmitted vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp} = \frac{\hat{k} \times \hat{n}}{|\hat{k} \times \hat{n}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|} = \hat{u}_{\perp} \times \hat{k} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflected unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}' = \hat{k} - 2(\hat{k} \cdot \hat{n}) \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}' = \hat{u}_{\perp}' \times \hat{k}' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The transmitted unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}'' = \hat{n} \times a - \sqrt{1-a \cdot a} \; \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}'' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}'' = \hat{u}_{\perp}'' \times \hat{k}'' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{a} = (k_1/k_2) \mathbf{\hat{k} \times \hat{n}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_1 = k_0 \sqrt{\varepsilon_1 \mu_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_2 = k_0 \sqrt{\varepsilon_2 \mu_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_1 = Z_0 \sqrt{\mu_1 / \varepsilon_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_2 = Z_0 \sqrt{\mu_2 / \varepsilon_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sin\theta'' = \frac{k_1}{k_2}\sin\theta \text{ if } \sin\theta \le k_2/k_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml4.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml5.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflection coefficients at the interface are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penetration Through Thin Walls Or Surfaces ===&lt;br /&gt;
&lt;br /&gt;
[[File:thinwalltrans.png|thumb|350px|The Incident and Transmitted Rays through a Thin Wall]]&lt;br /&gt;
&lt;br /&gt;
In &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;, we assume that an incident ray gives rise to two rays, one is reflected at the specular point, and the other is transmitted almost in the same direction as the incident ray. The reflected ray is assumed to originate from a virtual image source point. Similar to the case of reflection and transmission at the interface between two dielectric media, here too we have three triplets of unit vectors, which all form orthonormal basis systems.&lt;br /&gt;
&lt;br /&gt;
The transmission coefficients are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\|} = \frac{(1-{\Gamma_{\|}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\|}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\perp} = \frac{(1-{\Gamma_{\perp}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\perp}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml21.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wedge Diffraction From Edges ===&lt;br /&gt;
&lt;br /&gt;
[[File:diffract.png|thumb|350px|The Incident Ray and Diffract Ray Cone at the Edge of a Building]]&lt;br /&gt;
&lt;br /&gt;
For the purpose of calculation of diffraction from building edges, we define a &amp;amp;quot;Wedge&amp;amp;quot; as having two faces, the 0-face and the ''n''-face. The wedge angle is a = (2-''n'')p, where the parameter ''n'' is required for the calculation of diffraction coefficients. All the diffracted rays lie on a cone with its vertex at the diffraction point and a wedge angle equal to the angle of incidence in the opposite direction. A diffracted ray is assumed to originate from a virtual image source point. Three triplets of unit vectors are defined as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_0, \hat{u}_l, \hat{t})}&amp;lt;/math&amp;gt; representing the unit vector normal to the edge and lying in the plane of the 0-face, the unit vector normal to the 0-face, and the unit vector along the edge, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f, \hat{u}_b, \hat{t})}&amp;lt;/math&amp;gt; representing the incident forward polarization vector, incident backward polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f', \hat{u}_b', \hat{t}')}&amp;lt;/math&amp;gt; representing the diffracted forward polarization vector, diffracted backward polarization vector and diffracted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The three triplets constitute three orthonormal basis systems. The propagation vector '''k'''' of the diffracted ray has to be constructed based on the diffraction cone as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{\hat{k}'} = \cos\phi_w \mathbf{\hat{u}_0} + \sin\phi_w \mathbf{\hat{u}_l} + &lt;br /&gt;
\mathbf{(\hat{k} \cdot \hat{t}) \hat{t}}, \quad 0 \le \phi_w \le \alpha&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the resolution of the angle &amp;amp;theta;&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt; is chosen to be the same as the resolution of the incident ray.&lt;br /&gt;
&lt;br /&gt;
The other unit vectors for the incident and diffracted rays are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f = \frac{\hat{k} \times \hat{t}}{|\hat{k} \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b = \hat{k} \times \hat{u}_f } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f' = \frac{\hat{k}' \times \hat{t}}{|\hat{k}' \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b' = \hat{k}' \times \hat{u}_f' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml9.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The diffraction coefficients are calculated in the following way:&lt;br /&gt;
&lt;br /&gt;
[[File:frml11.png]]&lt;br /&gt;
&lt;br /&gt;
where ''F(x)'' is the Fresnel Transition function:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = 2j \sqrt{x} e^{jx} \int_{\sqrt{x}}^{\infty} e^{-j\tau^2} \, d\tau &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, we have&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
s = |\rho_D - \rho_S| \\&lt;br /&gt;
s' = |\rho_D - \rho_r|&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L = \frac{s s' \sin^2 \beta'}{s + s'} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\pm}(\nu) = 2\cos^2 \left( \frac{2n\pi N^{\pm} - \nu}{2} \right), \quad \nu = \phi \pm \phi' &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml10.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml13.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;N^{\pm}&amp;lt;/math&amp;gt; are the integers which most closely satisfy the equations &amp;lt;math&amp;gt; 2n\pi N^{\pm} - \nu = \pm \pi &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SBR As An Asymptotic EM Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulation engine can be used as a versatile and powerful asymptotic electromagnetic (EM) solver. If you compare EM.Cube's [[Propagation Module]] with its other computational modules, you will notice a lot of similarities. While other modules group objects primarily by their material properties, [[Propagation Module]] categorizes the types of obstructing surfaces. Besides sharing the same ray-surface interaction mechanisms, all the objects belonging to a surface group also share the same material properties. [[Propagation Module]] offers similar source types and similar observable types as the other computational modules. For instance, the Hertzian dipole sources used in a SBR simulation are identical to those offered in PO, MoM3D and Planar modules. The plane wave sources are identical across all computational modules. [[Propagation Module]]'s sensor field planes, far field observables (either radiation patterns or RCS) and Huygens surfaces are all fully compatible with EM.Cube's other computational modules.&lt;br /&gt;
&lt;br /&gt;
As an asymptotic EM solver, the SBR engine can be used to model large-scale electromagnetic radiation and scattering problems. An example of this kind is radiation of simple or complex antennas in the presence of large scattering platforms. You have to keep in mind that by using an asymptotic technique in place of a full-wave method, you trade computational speed and lower memory requirements for modeling accuracy. In particular, the SBR method cannot take into account the electromagnetic coupling effects among nearby radiators or scatterers. However, when your scene spans thousands of wavelengths, an SBR simulation might often prove to be your sole practical solution.  &lt;br /&gt;
&lt;br /&gt;
=== Novelties Of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine utilizes an intelligent ray tracing algorithm based on the concept of  k-dimensional trees. A k-d tree is a space-partitioning data structure for organizing points in a k-dimensional space. k-d trees are particularly useful for searches that involve multidimensional search keys such as range searches and nearest neighbor searches. In a typical large radio propagation scene, there might be a large number of rays emanating from the transmitter that may never hit any obstacles. For example, upward-looking rays in an urban propagation scene quickly exit the computational domain. Rays that hit obstacles on their path, on the other hand, generate new reflected and transmitted rays. The k-d tree algorithm traces all these rays systematically in a very fast and efficient manner. Another major advantage of k-d trees is the fast processing of multi-transmitters scenes. Unlike the previous versions of the SBR solver which could handle one transmitter at a time and would superpose all the resulting rays at the end of the simulation, the new SBR shoots rays from all the transmitters at the same time.   &lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine performs fully polarimetric and coherent SBR simulations with arbitrary transmitter antenna patterns. The new engine solves directly for the vectorial field components at the receiver locations or field observation points. This is far more rigorous than the previous versions of the SBR solver which primarily utilized ray power calculations based on the two vertical and horizontal polarizations. In other words, EM.Cube's new SBR engine is a truly asymptotic &amp;amp;quot;field&amp;amp;quot; solver. As a result, you can visualize the magnitude and phase of all six electric and magnetic field components at any point in the computational domain. For power calculations at the receiver location, an isotropic, polarization-matched, receiving antenna is assumed.       &lt;br /&gt;
&lt;br /&gt;
In most scenes, the buildings and the ground or terrain can be assumed to be made of homogeneous materials. These are represented by their electrical properties such as permittivity e and electric conductivity s. More complex scenes may involve a multilayer ground or multilayer building walls. In such cases, one can no longer use the simple reflection or transmission coefficient formulas for homogeneous medium interfaces. EM.Cube calculates the reflection and transmission coefficients of multilayer structures as functions of incident angle, frequency and polarization and uses them at the respective specular points.  &lt;br /&gt;
&lt;br /&gt;
=== Limitations of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
It is very important to keep in mind that SBR is an asymptotic electromagnetic analysis technique that is based on Geometrical Optics (GO) and the Uniform Theory of Diffraction (UTD). It is not a &amp;amp;quot;full-wave&amp;amp;quot; technique, and it does not solve Maxwell's equations directly or numerically. SBR makes a number of assumptions, chief among them, a very high operational frequency such that the length scales involved are much larger than the operating wavelength. Under this assumed regime, electromagnetic waves start to behave like optical rays. Virtually all the calculations in SBR are based on far field approximations. &lt;br /&gt;
&lt;br /&gt;
In order to maintain a high computational speed for urban propagation problems, EM.Cube's SBR solver ignores double diffractions. Recall that diffractions from edges give rise to a large number of new secondary rays. The power of diffracted rays drops much faster than reflected rays. EM.Cube ignores diffracted rays that are not detected by any receiver. In other words, an edge-diffracted ray does not diffract again from another edge. However, reflected and penetrated rays do get diffracted from edges just as rays emanated directly from the sources do.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Propagation Scene ==&lt;br /&gt;
&lt;br /&gt;
An EM.Cube propagation scene typically consists of several elements. At a minimum, you need a transmitter (Tx) at some location to launch rays into the scene and a receiver (Rx) at another location to receive and collect the incoming rays. A transmitter and a receiver together make the simplest propagation scene, representing a free-space line-of-sight (LOS) channel. A transmitter is one of EM.Cube's several source types, while a receiver is one of EM.Cube's several observable types. A simpler source type is a Hertzian dipole. A simpler observable is a field sensor that is used to compute the electric and magnetic fields on a specified plane.&lt;br /&gt;
&lt;br /&gt;
An outdoor propagation scene may involve several buildings (modeled as impenetrable surfaces) and an underlying flat ground or irregular terrain surface. An indoor propagation scene may involve several walls (modeled as thin penetrable surfaces), a ceiling and a floor arranged according to a certain floor plan. You can also build mixed scenes involving both impenetrable and penetrable blocks, possibly along with irregular terrain surfaces. Your sources and observables can be placed anywhere in the scene. Your transmitters and receivers can be placed outdoors or indoors. A complete list of the various elements of a propagation scene is given in the '''Physical Structure''' section of [[Propagation Module]]'s Navigation Tree as follows:&lt;br /&gt;
&lt;br /&gt;
* Impenetrable Surfaces&lt;br /&gt;
* Penetrable Surfaces&lt;br /&gt;
* Terrain Surfaces&lt;br /&gt;
* Base Points&lt;br /&gt;
&lt;br /&gt;
Impenetrable, penetrable and terrain surfaces all obstruct the propagation of electromagnetic waves (rays) in the free space. What differentiates them is the types of physical phenomena that are used to model their interaction with the impinging rays. Base points are simply used to define transmitter and receiver locations in the scene. The following sections of this manual will describe each of these elements in detail.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Navigation Tree of EM.Cube's [[Propagation Module]].&lt;br /&gt;
&lt;br /&gt;
=== The Various Types Of Surfaces &amp;amp;amp; Blocks ===&lt;br /&gt;
&lt;br /&gt;
In a SBR simulation, the propagating rays hit the surface of building structures, walls, terrain (or global ground) and bounce back into the scene (reflection). Some rays penetrate thin walls or other penetrable surfaces and continue their path on the other side of the surface (transmission). The field intensity, phase and power of the reflected and transmitted rays depend on the material properties of the obstructing surface. The specular surface can be modeled as a simple homogeneous dielectric half-space or as a multilayer structure. In that respect, the buildings, walls, terrain or even the global ground all behave in a similar way:&lt;br /&gt;
&lt;br /&gt;
* They terminate an impinging ray and replace it with one or more new rays.&lt;br /&gt;
* They represent a specular interface between two media of different material compositions for calculating the reflection, transmission and possibly diffraction coefficients.&lt;br /&gt;
&lt;br /&gt;
EM.Cube has generalized the concept of '''Block''' as any object that obstructs and affects radio wave propagation. Rays hit the facets of a block and bounce off the surface of those facets or penetrate them and continue their propagation. Rays also get diffracted off the edges of these blocks. In EM.Cube's [[Propagation Module]], blocks are grouped together by the type of their interaction with rays. EM.Cube currently offers three types of blocks for use in a propagation scene:&lt;br /&gt;
&lt;br /&gt;
# '''Impenetrable Surfaces:''' Rays hit the facets of this type of blocks and bounce back, but they do not penetrate the object. It is assumed that the interior of such blocks or buildings are highly absorptive.&lt;br /&gt;
# '''Penetrable Surfaces:''' These blocks represent thin surfaces that are used to model the exterior and interior walls of buildings based on the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;. Rays reflect off the surface of penetrable surfaces and diffract off their edges. They also penetrate such thin surfaces and continue their paths on the other side of the wall.&lt;br /&gt;
# '''Terrain Surfaces:''' These blocks are used to provide one or more impenetrable, ground surfaces for the propagation scene. Rays simply bounce off terrain objects. The global ground acts as a flat super-terrain that covers the bottom of the entire computational domain. &lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to define block groups of each of the above three types. Each block group has the same color or texture and its members share the same material properties: permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and conductivity &amp;amp;sigma;. Also, all the penetrable surfaces belonging to the same block group have the same wall thickness. You can define many different block groups with certain properties and underneath each introduce many member objects with different geometrical shapes and dimensions. The table below summarizes the characteristics of each block type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Block Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Physical Effects&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Admissible Object Types&lt;br /&gt;
|-&lt;br /&gt;
| Impenetrable Surface&lt;br /&gt;
| Reflection, Diffraction&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Penetrable Surface&lt;br /&gt;
| Reflection, Diffraction, Transmission&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Terrain Surface&lt;br /&gt;
| Reflection&lt;br /&gt;
| Tessellated Objects Only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Impenetrable Surfaces For Outdoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
In outdoor propagation scenes such as &amp;amp;quot;Urban Canyons&amp;amp;quot;, you are primarily interested in the wireless coverage in the areas among buildings. You can assume that rays bounce off the exterior walls of these buildings but do not penetrate them. In other words, you ignore the transmitted rays and assume that they are either absorbed or diffused inside the buildings. This is not an unrealistic assumption. EM.Cube offers &amp;amp;quot;Impenetrable Blocks&amp;amp;quot; to model buildings in outdoor propagation scenes. A penetrable block has a color or texture property as well as material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and conductivity (s). By default, a brick building is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m. Impinging rays are reflected from the facets of impenetrable buildings or diffracted from their edges.&lt;br /&gt;
&lt;br /&gt;
To define a new impenetrable block group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on either the '''Impenetrable Surfaces''' item of the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the block properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the block group and select a color or texture.&lt;br /&gt;
# The electromagnetic model that determines ray-block interaction is selected under '''Specular Interface Type'''. Two options are available: '''Standard Material''' or '''User Defined Model'''. The former is the default choice and requires material properties, '''Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity''' (&amp;amp;sigma;), which are set to &amp;amp;quot;Brick&amp;amp;quot; by default. No magnetic properties are allowed for blocks.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(2).png]]   &lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Impenetrable Surface dialog.&lt;br /&gt;
&lt;br /&gt;
Under an impenetrable block group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of an impenetrable surface. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. In this dialog, you can change the name of the material and its permittivity and electric conductivity. The box labeled &amp;amp;quot;Specify Loss Tangent&amp;amp;quot; is unchecked by default. If you check it, you can specify the '''Loss Tangent''' of the material, which, in turn, updates the value of electric conductivity at the center frequency of the project. You can also use EM.Cube's Material List, which will  be explained later.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to impenetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
=== Penetrable Surfaces For Indoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
A typical indoor propagation scene usually involves an arrangement of walls that represent the interior of a building. The transmitters and receivers are then placed in the spaces among such walls. From the point of view of EM.Cube's SBR simulator, walls act like thin penetrable surfaces. EM.Cube uses the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot; to model penetrable surfaces. It assumes that rays simply penetrate a wall and exit at the same specular point on the opposite side of the wall. In other words, rays are not displaced by the walls, nor do they get trapped inside the walls (no internal reflection). This is equivalent to assuming a zero thickness for penetrable surfaces for the purpose of geometrical ray tracing, while the finite thickness of the &amp;amp;quot;thin&amp;amp;quot; surface is used for electromagnetic calculation of transmission coefficient. EM.Cube offers &amp;amp;quot;Penetrable Surface Blocks&amp;amp;quot; for the construction of rooms in indoor propagation scenes as well as modeling of hollow buildings and other structures. You can define many penetrable surface groups with arbitrary thicknesses and material properties (color, texture, permittivity and electric conductivity).&lt;br /&gt;
&lt;br /&gt;
To define a new penetrable surface group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on one of the '''Penetrable Surfaces''' item in the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the wall properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the surface group and select a color or texture.&lt;br /&gt;
# The properties of a penetrable surface are identical to those of an impenetrable surface, plus an additional thickness property.&lt;br /&gt;
# By default, a brick wall with a thickness of 0.5 units is assumed. You can change the '''Thickness''' of the penetrable surface as well as its '''Permittivity'''  &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and '''Electric Conductivity''' &amp;amp;sigma;.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Penetrable Surface dialog.&lt;br /&gt;
&lt;br /&gt;
Under a penetrable surface group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of a penetrable surface group including its default thickness. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. Similar to the case of impenetrable surfaces, from this dialog, you can change the material properties (permittivity and electric conductivity) as well as '''Thickness''', which is expressed in the project units. You can also use EM.Cube's Material List, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to penetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
You can construct several thin walls and arrange them as rooms. A regular room can be built by placing four vertical wall objects together with an optional horizontal wall at the top for the ceiling. Alternatively, you may use EM.Cube's hollow box objects or boxes with one or two capped end(s).  '''Keep in mind that all the penetrable surfaces belonging to a group have the same wall thickness, which is initially set to 0.5 project units by default. Also, note that solid CAD objects belonging to a penetrable surface group are treated as air-filled hollow structures.''' The thickness of penetrable surfaces is implied and not visualized when displaying objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Computational Domain &amp;amp;amp; Global Ground ===&lt;br /&gt;
&lt;br /&gt;
The SBR simulation engine requires a finite computational domain. All the stray rays that hit the boundaries of this finite domain are terminated during the simulation process. Such rays exit the computational domain and travel to the infinity, with no chance of ever reaching any receiver in the scene. When you define a propagation scene with various elements like buildings, walls, terrain, etc., a dynamic domain is automatically established and displayed as a wireframe box with green lines that surrounds the entire scene. Every time you create a new object, the domain is automatically adjusted and extended to enclose all the objects in the scene. You can change the size and color of the domain box through the Ray Domain Settings Dialog, which can be accessed in one of the following three ways:&lt;br /&gt;
&lt;br /&gt;
# Click the '''Domain''' [[File:image025.jpg]] button of the Simulation Toolbar.&lt;br /&gt;
# Select the '''Simulate''' &amp;amp;gt; '''Computational Domain''' &amp;amp;gt; '''Settings...''' item of the Simulate Menu.&lt;br /&gt;
# Right click on the '''Ray Domain''' item of the Navigation Tree and select '''Domain Settings...'''&lt;br /&gt;
# Use the keyboard shortcut '''Ctrl + A'''.&lt;br /&gt;
&lt;br /&gt;
The size of the Ray domain is specified in terms of six '''Offset''' parameters along the ±X, ±Y and ±Z directions. The default value of all these six offset parameters is 10 project units. You can change them arbitrarily. After changing these values, use the '''Apply''' button to make the changes effective while the dialog is still open.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Most outdoor and indoor propagation scenes include a flat ground at their bottom, which bounces incident rays back into the scene. EM.Cube's [[Propagation Module]] provides a global flat ground at z = 0. The global ground indeed acts as an impenetrable surface that blocks the entire computational domain from the z = 0 plane downward. It is displayed as a translucent green plane at z = 0 extending downward. The color of the ground plane is always the same as the color of the ray domain. The global ground is assumed to be made of a homogeneous dielectric material with a specified permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma;. By default, a rocky ground is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m. You can remove the global ground, in which case, you will have a free space scene. To disable the global ground, open up the Global Ground Settings Dialog, which can be accessed by right clicking on the '''Global Ground''' item in the Navigation Tree and selecting '''Global Ground Settings... '''Remove the check mark from the box labeled '''&amp;amp;quot;Include Half-Space Ground (z&amp;amp;lt;0)&amp;amp;quot;''' to disable the global ground. This will also remove the green translucent plane from the bottom of your scene. You can also change the material properties of the global ground and set new values for the permittivity and electric conductivity of the impenetrable, half-space, dielectric medium. '''Do not forget to disable the global ground if you want to model a free space propagation scene.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PROP4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s Global Ground Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Surfaces vs. Global Ground ===&lt;br /&gt;
&lt;br /&gt;
A terrain surface acts as a custom, unlevel or irregular ground for your propagation scene. EM.Cube's default global ground blocks the z &amp;amp;lt; 0 half-space everywhere in the computational domain. You can simply turn off the global ground and create one or more terrain objects and place them arbitrarily in the scene. You can also import an external terrain model or file. A terrain represents an impenetrable surface with a more complex surface profile. You can have one or more terrain objects of finite extents and place them on or above the global ground.&lt;br /&gt;
&lt;br /&gt;
Terrain objects have some important differences with objects of the &amp;amp;quot;Impenetrable Surface&amp;amp;quot; type:&lt;br /&gt;
&lt;br /&gt;
# While impenetrable blocks can be created using any of EM.Cube's solid or surface CAD object creation tools, terrain objects are created either using EM.Cube's '''Terrain Generator''' or by importing an external terrain file. &lt;br /&gt;
# Terrain objects belong to a special type of CAD objects called &amp;amp;quot;Tessellated Objects&amp;amp;quot;, which differ from other regular CAD [[Surface Objects|surface objects]] or EM.Cube's polymesh surfaces.&lt;br /&gt;
# Terrain surfaces do not diffract impinging rays at their many small edges.&lt;br /&gt;
# Terrain objects affect the elevation of other objects or transmitters or receivers that are located above them.&lt;br /&gt;
&lt;br /&gt;
Just as other blocks are grouped by their color, texture and material composition, terrain objects are also grouped in a similar fashion. Before you can generate or import a new terrain object, first you have to define a terrain group and specify its color/texture and material properties. To define a new terrain group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Terrain''' item in the Navigation Tree and select '''Insert New Terrain...''' A dialog for setting up the terrain properties opens up offering a of preloaded material type (Rock) with predefined green color and no texture.&lt;br /&gt;
* Specify a name for the terrain group and select a color or texture.&lt;br /&gt;
* Similar to other blocks, you have to specify the material properties, Permittivity (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and Electric Conductivity (&amp;amp;sigma;), of the terrain group. Rock with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m is the default material choice for a new terrain.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Terrain dialog.&lt;br /&gt;
&lt;br /&gt;
You can change the properties of a terrain surface group from its property dialog. Click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog, which is identical to the case of impenetrable surfaces. You can also use EM.Cube's Material List, which will be explained later. When a new terrain type is created, its node on the Navigation Tree becomes active. Under this node you can create and add new terrain objects. When a terrain node is active for drawing, all CAD object creation tools are disabled. You have three options for creating a new terrain object, which will be described in detail in the next sections of this manual:&lt;br /&gt;
&lt;br /&gt;
# Use EM.Cube's '''Terrain Generator'''.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.TRN'''&amp;amp;quot; type.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.DEM'''&amp;amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
=== Using Terrain Generator ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18.png|thumb|250px|[[Propagation Module]]'s Terrain Generator dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides a convenient and powerful Terrain Generator for creating a variety of terrain [[Surface Objects|surface objects]]. EM.Cube's Terrain Generator looks very similar to [[CubeCAD]]'s Surface Generator. However, whereas the Surface Generator creates a generic or polymesh surface object, Terrain Generator always creates another special type of object known as a '''Tessellated Object'''. A terrain object is much simpler than EM.Cube's polymesh objects and is usually made up of triangular or quadrilateral facets. As such, terrain objects have limited editing capabilities. For example, you can cut, copy, paste, translate or rotate  terrain objects. But operations like scaling, mirroring, grouping (composite), arraying, exploding, linking or Boolean operations do not work on terrain objects.&lt;br /&gt;
&lt;br /&gt;
To create a new terrain object using Terrain Generator, first you need to define a terrain group in the Navigation Tree. Right click on the name of the terrain node and select '''Terrain Generator...''' from the contextual menu. This opens up the Terrain Generator Dialog. Using Terrain Generator, you can build a single terrain surface or an array of surfaces patched together. Some of the available terrain models include:&lt;br /&gt;
&lt;br /&gt;
# Flat Plane&lt;br /&gt;
# Hill (Elliptic Quadratic)&lt;br /&gt;
# Mountain (Elliptic Cone)&lt;br /&gt;
# 1-D and 2-D Cliff&lt;br /&gt;
# Gaussian Hump&lt;br /&gt;
# Undulated Sinusoid&lt;br /&gt;
# Undulated Sinc&lt;br /&gt;
# Super-quadratic Plateau&lt;br /&gt;
# Custom Function&lt;br /&gt;
# XY Grid Data&lt;br /&gt;
&lt;br /&gt;
In all of the above models, you can set the height of the surface object to an any desired value. You set the lateral extents of the surface and its resolution along the X and Y directions in the boxes labeled '''Range Start''', '''Range Stop''' and '''Range Step'''. The step values along the X and Y directions are a measure of surface smoothness: the smaller the step values, the higher the resolution and the smoother the resulting terrain object.&lt;br /&gt;
&lt;br /&gt;
Some surface types have an additional shape factor called '''Alpha''' that is identical to the alpha parameter in the surface generator. For example, a Gaussian Hump is defined as exp(-r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/(2a&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)), where r is the polar radius. For a Super-quadratic Hump, the input parameter a defines the degree of the super-quadratic surface. a = 2 corresponds to an ellipsoid. Larger values of a get close to a rectangular base with rounded corners. An undulated sinusoidal surface is defined by cos(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*cos(pay/D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;), and an undulated sinc is defined by D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;*D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;*sin(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*sin(pay/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/(2pxy), where D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; are the X and Y dimensions, respectively. Terrain Generator creates a unit cell based on the specified surface type. From the same dialog, you can also produce an array arrangement of such unit cells. Simply enter any number of elements along the X and Y directions in the boxes labeled '''Array'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP19.png|800px]]  &lt;br /&gt;
&lt;br /&gt;
Figure: A 4 × 4 array of hill terrain objects.&lt;br /&gt;
&lt;br /&gt;
You can define any arbitrary surface by entering an equation of the two [[variables]] x and y as z = f(x,y). In this case, you have to select the '''Custom Function''' option in the dropdown list labeled '''Model'''. You should enter your equation as any mathematical expression in the box labeled '''Function f(x,y)'''. You can use any of EM.Cube's mathematical functions listed in the '''Function Dialog''' or combine several of them. Note that after selecting the custom function option, the height of the surface is determined by your equation, and the '''Height''' box is disabled. You can also introduce random noise and create a rough terrain. You can do this by setting a nonzero value for '''Noise''', which represent the RMS peak-to-valley amplitude of the surface roughness. The figures below show two custom terrain surfaces modeled by the equation z = (x.y)/20 defined over the range [0, 10] in both X and Y directions. Random noise has been added to both surfaces, with the noise amplitude being 0.2 and 0.5 for the left and right figures, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP21.png|400px]] [[File:PROP20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Two noisy custom terrain surfaces both defined as z = (x.y)/20: (Left) RMS noise amplitude = 0.2, (right) RMS noise amplitude = 0.5.&lt;br /&gt;
&lt;br /&gt;
=== Generating Grid-Based Terrain ===&lt;br /&gt;
&lt;br /&gt;
Every time you create a new terrain object using Terrain Generator, an ASCII data file named &amp;amp;quot;GeneratedTerrain&amp;amp;quot; with a &amp;amp;quot;'''.TRN'''&amp;amp;quot; file extension is created and placed in your project folder. This is EM.Cube's simple native terrain file format that basically lists all the (x, y, z) coordinates of the generated surface points on a horizontal, rectangular XY grid. Terrain Generator simply takes your custom function definition or one of the selected catalog surface types and generates the digital elevation data on the specified grid.  &lt;br /&gt;
&lt;br /&gt;
Another type of terrain model that the terrain generator provides is '''XY Grid Data'''. In this case, you define a rectangular XY grid with a uniform grid cell size along the X and Y directions and manually define the Z-elevation for each grid point. This is similar to the surface generator's &amp;amp;quot;2D Uniform Grid&amp;amp;quot; model type in [[CubeCAD]]. Based on your input to '''Range Start''', '''Range Stop''' and '''Range Step''' along X and Y, a 2D grid is set up and displayed in a table at the bottom of the terrain generator dialog. By default, all the Z-elevations are set to zero initially. You can click on each table cell and overwrite it with a new value. At the end, click the '''Create''' button of the dialog to add the new grid-based terrain object to the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:terrain10_tn.png]]&lt;br /&gt;
&lt;br /&gt;
A grid-based terrain object.&lt;br /&gt;
&lt;br /&gt;
=== Importing &amp;amp;amp; Exporting Terrain Models ===&lt;br /&gt;
&lt;br /&gt;
You can import two types of terrain in EM.Cube's [[Propagation Module]]. The first type is &amp;amp;quot;'''.TRN&amp;amp;quot;''' terrain file, which is EM.Cube's native terrain format. It is a basic digital elevation map with a very simple ASCII data file format. The resolution of the terrain map in the X and Y directions is specified in meters as STEPS. The (x, y, z) coordinates of the terrain points are then listed one point per line. The other type of terrain format supported by EM.Cube is the standard '''7.5min DEM''' file format with a '''.DEM''' file extension. &lt;br /&gt;
&lt;br /&gt;
To import an external terrain model, first you have to create a terrain group node in the Navigation Tree. Right click on the name of the terrain group in the Navigation Tree and select either '''Import Terrain...''' or '''Import DEM File...''' A standard Windows '''Open Dialog''' opens up, with the file type set to .TRN or .DEM extensions, respectively. You can browse your folders and find the right terrain model file to import.&lt;br /&gt;
&lt;br /&gt;
You can also export all the terrain objects in the project workspace as a terrain file with a '''.TRN''' file extension. You can even import a DEM terrain model from an external file and then save and export it as a native terrain (.TRN) file. To export the terrain, select '''File''' &amp;amp;gt; '''Export...''' from [[Propagation Module]]'s '''File Menu'''. The standard Windows Save Dialog opens up with the default file type set to '''.TRN'''. Type in a name for your new terrain file and click the '''Save''' button to export the terrain data.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-12_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figur: An imported external terrain model.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Surface Models ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP26.png|thumb|250px|Propagation Module's Penetrable Surface Dialog showing a three-layer wall composition]]&lt;br /&gt;
&lt;br /&gt;
Most of the time, your outdoor propagation scene consists of simple buildings made of single-layer walls with standard material properties (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;). In the case of a single-layer impenetrable surface, the specular interface is an infinite dielectric half-space, which reflects the impinging rays. Single-layer penetrable surfaces, on the other hand, involve finite-thickness dielectric walls, which both reflect and transmit the incident rays. Similarly, most of your indoor propagation scenes involve simple single-layer penetrable walls with the specified material properties &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. A thin wall acts like a finite-thickness dielectric slab that both reflects and transmits incident rays. In the case of the global ground or terrain objects, only ray reflection off the ground surface is considered.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[Propagation Module]], you can define multilayer surfaces with both reflection and transmission properties. You can define multilayer impenetrable buildings, multilayer penetrable walls, and multilayer terrain, with an arbitrary number of layers having different material compositions. You define a multilayer surface in the property dialog of a block, whether impenetrable, penetrable or terrain. In the section entitled '''Surface Type''', two options are available: '''Standard Material''' or '''User Defined Model'''. For simple multilayer walls, select the '''Standard Material''' option. You can add new layers with arbitrary thickness and material parameters to the existing layers. To insert a new layer, deselect any items in the layer list, and click the '''Add/Edit''' button to open the &amp;amp;quot;Add Layer&amp;amp;quot; Dialog. Here you can enter a name for the new layer and values for its '''Thickness''', &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. You may also delete any layer by selecting and highlighting it and clicking the '''Delete''' button. You can move layers up or down using the '''Move Up''' and '''Move Down''' buttons and change the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
You can also search EM.Cube's material database by clicking the '''Material''' button of &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. This opens the '''Materials''' Dialog. Inside the material list select and highlight any row and click the '''OK''' button. The selected material will fill out all the fields in the &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. Inside the Materials Dialog, you can type the few first letters of any material, and it will take you to the corresponding row of the list.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Transferring Objects From Or To Other Modules ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube's [[Propagation Module]] and draw a solid object like a box in the project workspace without having defined any surface groups, it is assumed to be of the impenetrable surface type. A default impenetrable surface group called Block_1 is automatically added to the Navigation Tree, which holds your newly drawn object. The default group has the material properties of &amp;amp;quot;Brick&amp;amp;quot; (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m.) with a dark brown color. You can continue drawing new objects in the project workspace and adding them under this block node. Or you can define a new surface type with different properties. By default, the last surface group that was defined is '''Active'''. The current active surface group is always listed in bold letters in the Navigation Tree. When you draw a new object, it is always inserted under the current active surface group. Any surface group can be activated by right clicking its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move any object from its current surface group into any other available surface group. First select the object, then right click on its surface and select '''MoveTo &amp;amp;gt; Propagation &amp;amp;gt;'''. A submenu appears which lists all the available surface groups where you can transfer the selected object. You can also move objects among surface groups by selecting their names in the Navigation Tree and using the contextual menu. In a similar way, you can transfer objects from [[Propagation Module]] to EM.Cube's other modules or vice versa. '''Keep in mind that all the external model files such as STEP, IGES, STL, etc. are first imported to EM.Cube's [[CubeCAD]], from which you can transfer them to other modules.''' First select the object, then right click and select '''MoveTo &amp;amp;gt;'''. In the submenu you will see a list of all the EM.Cube modules that have at least one available group where you can transfer your selected object. You can select multiple objects for transfer. When using the keyboard's '''Shift Key''' or '''Ctrl Key''' for multiple selection, make sure that those keys are held down, when you right click to access the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Defining Sources &amp;amp;amp; Observables ==&lt;br /&gt;
&lt;br /&gt;
Like every other electromagnetic solver, EM.Cube's SBR ray tracer requires a source for excitation and one or more observables for generation of simulation data. EM.Cube's new [[Propagation Module]] offers several types of sources and observables for a SBR simulation. You can mix and match different source types and observable types depending on the requirements of your modeling problem. There are two types of sources:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Transmitter Sets|Transmitter]]&lt;br /&gt;
* [[#Hertzian Dipole Sources|Hertzian Dipole]]&lt;br /&gt;
&lt;br /&gt;
There are four types of observables:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Receiver Sets|Receivers]]&lt;br /&gt;
* [[#Defining Field Sensors|Field Sensor]]&lt;br /&gt;
* Far Fields&lt;br /&gt;
* Huygens Surface&lt;br /&gt;
&lt;br /&gt;
The simplest SBR simulation can be performed using a short dipole source with a specified field sensor plane. In this way, EM.Cube computes the electric and magnetic fields radiated by your dipole source in the presence of your multipath propagation environment. A &amp;amp;quot;classic&amp;amp;quot; urban propagation scene can be set up using a &amp;amp;quot;Transmitter&amp;amp;quot; source and an array of &amp;amp;quot;Receiver&amp;amp;quot; observables. A transmitter is a point radiator with a user defined radiation pattern. A receiver is a polarization-matched isotropic point radiator that collects the received rays at its aperture. Using receivers, you can calculate the received power coverage map of your propagation scene. You can also calculate your channel's path loss between the transmitter and all the receivers. &amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18(1).png|thumb|[[Propagation Module]]'s Transmitter dialog with a short dipole radiator selected]]&lt;br /&gt;
Earlier versions of EM.Cube's [[Propagation Module]] used to offer an isotropic radiator with vertical or horizontal polarization as the simplest transmitter type. This release of EM.Cube has abandoned isotropic radiator transmitters because they do not exist physically in a real world. Instead, the default transmitter radiator type is now a Hertzian dipole. Note that before defining a transmitter, first you have to define a base set to establish the location of the transmitter. Most simulation scenes involve only a single transmitter. Your base set can be made up of a single point for this purpose. &lt;br /&gt;
&lt;br /&gt;
To define a new Transmitter Set, go to the '''Sources''' section of the Navigation Tree, right click on the '''Transmitters''' item and select '''Insert Transmitter...''' A dialog opens up that contains a default name for the new Transmitter Set as well as a dropdown list labeled '''Select Base Set'''. In this list you will see all the available base sets already defined in the project workspace. Select the desired base set to associate with the transmitter set. Note that if the base set contains more than one point, then more than one transmitter will be created and contained in your transmitter set. After defining a transmitter set, the base points change their color to the transmitter color, which is red by default.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Radiator&amp;amp;quot; section of the dialog, you have two options to choose from: &amp;amp;quot;Short Dipole&amp;amp;quot; and &amp;amp;quot;User Defined&amp;amp;quot;. The default option is short dipole. A short dipole radiator has a '''Length'''''dl'' expressed in project units, a current '''Amplitude''' in Amperes and a current '''Phase''' in degrees. The '''Direction''' of the dipole is determined by its unit vector that has three X, Y and Z components. By default, a Z-directed short dipole radiator is assumed. You can change all parameters of the dipole as you wish. Keep in mind that all the transmitters belonging to the same set have parallel radiators with identical properties.&lt;br /&gt;
&lt;br /&gt;
=== Defining Base Point Sets ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP1.png|thumb|[[Propagation Module]]'s Base Set dialog]]&lt;br /&gt;
In order to tie up transmitters and receivers with CAD objects in the project workspace, EM.Cube uses point objects to define transmitters and receivers. These point objects represent the base of the location of transmitters and receivers in the computational domain. Hence, they are grouped together as &amp;amp;quot;Base Sets&amp;amp;quot;. You can easily interchange the role of transmitters and receivers in a scene by switching their associated bases. The usefulness of concept of base sets will become apparent later when you place transmitters or receivers on an irregular terrain and adjust their elevation.   &lt;br /&gt;
&lt;br /&gt;
To create a new base set, right click on the '''Base Sets''' item of Navigation Tree and select '''Insert Base Set...''' A dialog for setting up the Base Set properties opens up.&lt;br /&gt;
&lt;br /&gt;
# Enter a name for the base set and change the default blue color if you wish. It is useful to differentiate the base sets associated with transmitters and receivers by their color.&lt;br /&gt;
# Click the '''OK''' button to close the Base Set Dialog.&lt;br /&gt;
&lt;br /&gt;
Once a base set node has been added to the Navigation Tree, it becomes the active node for new object drawing. Under base sets, you can only draw point objects. All other object creation tools are disabled. A point is initially drawn on the XY plane. Make sure to change the Z-coordinate of your radiator, otherwise, it will fall on the global ground at z = 0. You can also create arrays of base points under the same base set. This is particularly useful for setting up receiver grids to compute coverage maps. Simply select a point object and click the '''Array Tool''' of '''Tools Toolbar''' or use the keyboard shortcut &amp;amp;quot;A&amp;amp;quot;. Enter values for the X, Y or Z spacing as well as the number of elements along these three directions in the Array Dialog. In most propagation scenes you are interested in 2D horizontal arrays along a fixed Z coordinate (parallel to the XY plane).&lt;br /&gt;
&lt;br /&gt;
=== Defining Transmitter Sets ===&lt;br /&gt;
&lt;br /&gt;
A short dipole is the closest thing to an omni-directional radiator. The direction or orientation of the short dipole determines its polarization. In many applications, you may rather want to use a directional antenna for your transmitter. You can model a radiating structure using EM.Cube's FDTD, Planar, MoM3D or PO modules and generate a 3D radiation pattern data file for it. These data are stored in a specially formatted file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension, which contains columns of spherical &amp;amp;phi; and &amp;amp;theta; angles as well as the real and imaginary parts of the complex-valued far field components '''E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;''' and '''E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;'''. The &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field determine the polarization of the transmitting radiator. &lt;br /&gt;
&lt;br /&gt;
To define a directional transmitter radiator, you need to select the &amp;amp;quot;User Defined&amp;amp;quot; option in the &amp;amp;quot;Radiator&amp;amp;quot; section of the Transmitter Dialog. You can do this either at the time of creating a transmitter set, or afterwards by opening the property dialog of the transmitter set. In the &amp;amp;quot;Custom Pattern Parameters&amp;amp;quot;, click the '''Import Pattern''' button to set the path for the radiation data file. This opens up the standard Windows Open dialog, with the default file type or extension set to &amp;amp;quot;.RAD&amp;amp;quot;. Browse your folders to find the right data file. A radiation pattern file usually contains the value of &amp;amp;quot;Total Radiated Power&amp;amp;quot; in its file header. This is used by default for power calculations in the SBR simulation. However, you can check the box labeled &amp;amp;quot;'''Custom Power'''&amp;amp;quot; and enter a value for the transmitter power in Watts. EM.Cube can also rotate the imported radiation pattern arbitrarily. In this case, you need to specify the '''Rotation''' angles in degrees about the X-, Y- and Z-axes. Note that these rotations are performed sequentially and in order: first a rotation about the X-axis, then a rotation about the Y-axis, and finally a rotation about the Z-axis. &lt;br /&gt;
&lt;br /&gt;
[[File:PROP19(1).png]] [[File:PROP20(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Transmitter dialog with a user defined radiator selected.&lt;br /&gt;
&lt;br /&gt;
=== Multiple Transmitters vs. Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulations are fully coherent and 3D-polarimetric. This means that the phase and polarization of all the rays are maintained and processed during their bounces in the scene. Your propagation scene can have more than one transmitter. During an SBR simulation, all the rays emanating from all the transmitters are traced in the propagation scene. All the received rays at a given receiver location are summed coherently and vectorially. This is based on the principle of linear superposition. All the transmitters belonging to the same transmitter set have the same radiation properties. They are either parallel short dipole radiators with the same current amplitudes and phases, or parallel user defined radiators with identical radiation patterns. As these transmitters are placed at different spatial locations, they effectively form an antenna array with identical elements. The array factor is simply determined by the coordinates of the base points. If you want to have different amplitude or phases, then you need to define different transmitter sets.&lt;br /&gt;
&lt;br /&gt;
If that radiators are indeed the elements of an actual antenna array with a half wavelength spacing or so, we recommend that you import the radiation pattern of the array structure instead and replace the whole multi-radiator system with a single point transmitting radiator in your propagation scene. This case is usually encountered in MIMO systems, and using an equivalent point transmitter is an acceptable approximation because the total size of the array aperture is usually much smaller than the dimensions of your propagation scene and its representative length scales. In that case, you need to position the equivalent point radiator at the radiation center of the antenna array. This depends on the physical structure of the antenna array. However, keep in mind that any reasonable guess may still provide a good approximation without any significant error in the received ray data.    &lt;br /&gt;
&lt;br /&gt;
=== Defining Receiver Sets ===&lt;br /&gt;
&lt;br /&gt;
Receivers act as observables in a propagation scene. The objective of a SBR simulation is to calculate the far-zone electric fields and the total received power at the location of a receiver. In that sense, receivers indeed act as field observation points. You need to define at least one receiver in the scene before you can run a SBR simulation. You define the receivers of your scene by associating them with the base sets you have already defined in the project workspace. Unlike transmitters that usually one or few, a typical propagation scene may involve a large number of receivers. To generate a wireless coverage map, you need to define an array of points as your base set.    &lt;br /&gt;
&lt;br /&gt;
To define a new Receiver Set, go to the Observables section of the Navigation Tree, right click on the '''Receivers''' item and select '''Insert Receiver...''' A dialog opens up that contains a default name for the new Receiver Set as well as a dropdown list labeled '''Select Radiator Set'''. In this list you will see all the available base sets that you have already define in the project workspace. Select and designate the desired base set as the receiver set. Note that if the base set contains more than one point, all of them are designated as receivers. After defining a receiver set, the points change their color to the receiver color, which is yellow by default. The first element of the set is represented by a larger ball of the same color indicating that it is the selected receiver in the scene. The Receiver Set Dialog is also used to access individual receivers of the set for data visualization at the end of a simulation. At the end of an SBR simulation, the button labeled &amp;amp;quot;Show Ray Data&amp;amp;quot; becomes enabled. Clicking this button opens the Ray Data Dialog, where you can see a list of all the received rays at the selected receiver and their computed characteristics.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP21(1).png]] [[File:PROP22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Receiver dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Field Sensors ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|[[Propagation Module]]'s Field Sensor dialog]]&lt;br /&gt;
As an asymptotic electromagnetic field solver, the SBR simulation engine can compute the electric and magnetic field distributions in a specified plane. In order to view these field distributions, you must first define field sensor observables before running the SBR simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear. &lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.   &lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a SBR simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|E_{tot}|} = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|H_{tot}|} = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Computing Radiation Patterns In SBR ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
== Scene Discretization &amp;amp;amp; Adjustment ==&lt;br /&gt;
&lt;br /&gt;
=== The Need For Discretization Of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
In a typical SBR simulation, a ray is traced from the location of the source until it hits a scatterer. The SBR method assumes that the ray hits either a flat facet of the scatterer or one of its edges. In the case of hitting a flat facet, the specular point is used to launch new reflected and transmitted rays. The surface of the facet is treated as an infinite dielectric medium interface, at which the reflection and transmission coefficients are calculated. In the case of hitting an edge, new diffracted rays are generated in the scene. However, only those who reach a nearby receiver in their line of sight are ever taken into account. In other words, diffractions are treated locally.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to draw any type of surface or solid CAD objects under impenetrable and penetrable surface groups. Some of these objects have flat faces such as boxes, pyramids, rectangle or triangle strips, etc. Some others contain curved surfaces or curved boundaries such as cylinders, cones, etc. All the non-flat surfaces have to be discretized in the form of a collection of smaller flat facets. EM.Cube uses a triangular surface mesh generator to discretize the penetrable and impenetrable [[Surface Objects|surface objects]] of your propagation scene. This mesh generator is very similar to the ones used in EM.Cube's two other modules: MoM3D and Physical Optics (PO). &lt;br /&gt;
&lt;br /&gt;
You can build a variety of surface and [[Solid Objects|solid objects]] using EM.Cube's native &amp;amp;quot;Curve&amp;amp;quot; CAD objects like lines, polylines, circles, etc. You can use tools like Extrude, Loft, Strip-Sweep, Pipe-Sweep, etc. to transform curves into surface or [[Solid Objects|solid objects]]. '''However, keep in mind that all the &amp;amp;quot;Curve&amp;amp;quot; CAD objects are ignored by the SBR mesh generator and are therefore not sent to the simulation engine.'''&lt;br /&gt;
&lt;br /&gt;
=== Viewing SBR Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can view and examine the discretized version of your scene objects as they are sent to the SBR simulation engine. To view the mesh, click the '''Mesh''' [[File:mesh_tool.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''', or use the keyboard shortcut '''Ctrl+M'''. A triangular surface mesh of your physical structure appears in the project workspace. In this case, EM.Cube enters it mesh view mode. You can perform view operations like rotate view, pan, zoom, etc. But you cannot select objects, or move them or edit their properties. To get out of the Mesh View and return to EM.Cube's Normal View, press the '''Esc Key''' of the keyboard, or click the Mesh button of the Simulate Toolbar once again, or go to the Simulate Menu and deselect the '''Discretization &amp;amp;gt;''' '''Show Mesh''' item.&lt;br /&gt;
&lt;br /&gt;
You can adjust the mesh resolution and increase the geometric fidelity of discretization by creating more and finer triangular facets. On the other hand, you may want to reduce the mesh complexity and send to the SBR engine only a few coarse facets to model your buildings. To adjust the mesh resolution, open the Mesh Settings Dialog by clicking the '''Mesh Settings''' [[File:mesh_settings.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt;''' '''Mesh Settings...'''. This dialog provides a single parameters: '''Edge Length'''., which has a default value of 100 project units. If you are already in the Mesh View Mode and open the Mesh Settings Dialog, you can see the effect of changing the edge length using the '''Apply''' button. Click OK to close the dialog.&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules that express the default mesh density based on the wavelength, the resolution of the SBR mesh generator is expressed in project length units. The default edge length value of 100 units might be too large for non-flat objects. You may have to use a lower value to capture the curvature of your curved structures adequately. &lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-29.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Special Discretized Object Types ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, terrain objects are represented by and saved as special &amp;amp;quot;Tessellated&amp;amp;quot; objects with quadrilateral cells. This is true of terrain objects that you create yourself using EM.Cube's Terrain Generator as well as all the terrain objects that you import from external files to your project. The center of each cell represents the terrain elevation at that point. Tessellated objects are considered as discretized objects by EM.Cube and they are not meshed one more time by the SBR mesh generator. Each quadrilateral cell is divided into two triangular cells before being passed to the SBR simulation engine. Therefore, when using EM.Cube's Terrain Generator to create a new terrain object, you have to pay special attention to the resolution of the terrain object as it determines the total number of terrain facets sent to the simulation engine. A high resolution terrain, although looking better and more realistic, may easily lead to an enormous computational problem.&lt;br /&gt;
&lt;br /&gt;
You can use EM.Cube's &amp;amp;quot;Polymesh&amp;amp;quot; tool to discretize solid and surface CAD objects. You can manually control the mesh characteristics of polymesh objects including inserting new nodes on faces and edges or deleting existing nodes. In addition, EM.Cube's Solid Generator and Surface Generator tools create ploymesh solids and surfaces, respectively. Like tessellated object, polymesh objects are also considered as discretized objects by EM.Cube and they are not meshed again by the SBR mesh generator.   &lt;br /&gt;
&lt;br /&gt;
=== SBR Mesh Rules &amp;amp;amp; Considerations ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
=== Adjusting Block Elevation On Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, buildings and all other CAD objects are initially created on the XY plane by default. In other words, the Z-coordinate of the local coordinate system (LCS) of all blocks is set to zero until you change them. As long as you use the global ground, all is fine as your buildings are seated on the ground. When your propagation scene has an irregular terrain, you want to place your buildings on the terrain and not buried under it. Buildings in EM.Cube are not adjusted to the terrain elevation automatically. You need to instruct EM.Cube to do so.&lt;br /&gt;
&lt;br /&gt;
To update the building positions and adjust their elevation to the underlying terrain, right click on the '''Terrain''' item of the Navigation Tree and select '''Adjust Scene Elevation''' from the context menu. All the blocks in the scene are automatically elevated in the Z direction such that their bases sit on the terrain. In effect, all the blocks are translated along the global Z axis by proper amounts such that their local Z coordinate equals the Z-elevation of the underlying terrain object. This feature is particularly useful if you change the location of the terrain or import a new terrain after the blocks have been created.&lt;br /&gt;
&lt;br /&gt;
Note: You have to make sure that the resolution of your terrain, its fluctuation scale and building dimensions are all comparable. Otherwise, on a high-resolution, rapidly varying terrain, you will have buildings whose bottoms are in contact with the terrain only at a few points and parts of them hang in the air.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_adjust1_tn.png|400px]] [[File:prop_adjust2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Scene with Buildings and Terrain Before and After Adjusting Elevation&lt;br /&gt;
&lt;br /&gt;
=== Transmitters &amp;amp;amp; Receivers Above An Irregular Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, all the transmitters and receivers are tied up with point objects in the project workspace. These point objects are grouped and organized in base sets. When you move the point objects or change their coordinates, all of their associated transmitters or receivers immediately follow them to the new location. For example, you usually define a grid of receivers using a base set that is made up of a uniformly spaced array of points and spread them in your scene. All of these receivers have the same height because their associated base points all have the same Z-coordinate. When your receivers are located above a flat terrain like the global ground, their Z-coordinates are equal to their height above the ground, as the terrain elevation is fixed and equal to zero everywhere. The same is true for transmitters, too.   &lt;br /&gt;
&lt;br /&gt;
In many propagation modeling problems, your transmitters and receivers may be located above an irregular terrain with varying elevation across the scene. In that case, you may want to place your transmitters or receivers at a certain height above the underlying ground. The Z-coordinate of a transmitter or receiver is now the sum of the terrain elevation at the base point and the specified height. EM.Cube gives you the option to adjust the transmitter and receiver sets to the terrain elevation. This is done for individual transmitter sets and individual receiver sets. At the top of the Transmitter Dialog there is a check box labeled &amp;amp;quot;'''Adjust Tx Sets to Terrain Elevation'''&amp;amp;quot;. Similarly, at the top of the Receiver Dialog there is a check box labeled &amp;amp;quot;'''Adjust Rx Sets to Terrain Elevation'''&amp;amp;quot;. These boxes are unchecked by default. As a result, your transmitter sets or receiver sets coincide with their associated base points in the project workspace. If you check these boxes and place a transmitter set or a receiver set above an irregular terrain, the transmitters or receivers are elevated from the location of their associated base points by the amount of terrain elevation as can be seen in the figure below.   &lt;br /&gt;
&lt;br /&gt;
To better understand why there are two separate sets of points in the scene, note that a point array (CAD object) is used to create a uniformly spaced base set. The array object always preserves its grid topology as you move it around the scene. However, the transmitters or receivers associated with this point array object are elevated above the irregular terrain and no longer follow a strictly uniform grid. If you move the base set from its original position to a new location, the base points' topology will stay intact, while the associated transmitters or receivers will be redistributed above the terrain based on their new elevations.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_txrx1_tn.png|400px]] [[File:prop_txrx2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Transmitters and receivers adjusted above an uneven terrain and their associated base sets.&lt;br /&gt;
&lt;br /&gt;
== Running A SBR Simulation ==&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] offers three types of ray tracing simulations:&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
An SBR analysis is the simplest ray tracing simulation and involves the following steps:&lt;br /&gt;
&lt;br /&gt;
# Set the unit of project scene and the frequency of operation. Note that EM.Cube's default project unit is millimeter. When working with the [[Propagation Module]], pay attention to the project unit. Radio propagation problems usually require meter, mile or kilometer as the project unit.&lt;br /&gt;
# Create the blocks and draw the buildings at the desired locations.&lt;br /&gt;
# Keep the default ray domain and accept the default global ground or change its material properties.&lt;br /&gt;
# Define the base sets (at least one for the transmitter and one for the receiver).&lt;br /&gt;
# Define the transmitter and receiver(s) using the available base sets.&lt;br /&gt;
# Run the SBR simulation engine.&lt;br /&gt;
# Visualize the coverage map and plot other data.&lt;br /&gt;
&lt;br /&gt;
You can access the [[Propagation Module]]'s run dialog by clicking the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or by selecting '''Simulate &amp;amp;gt; Run...''' or using the keyboard shortcut '''Ctrl+R'''. When you click the '''Run''' button, a new window opens up that reports the different stages of the SBR simulation and indicates the progress of each stage. After the SBR simulation is successfully completed, a message pops up and prompts the completion of the process.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== SBR Simulation Parameters ===&lt;br /&gt;
&lt;br /&gt;
There are a number of SBR simulation settings that can be accessed and changed from the SBR Settings Dialog. To open this dialog, click the button labeled '''Settings''' on the right side of the '''Select Engine''' dropdown list in the Run Dialog. EM.Cube's SBR simulation engine allows you to separate the physical effects that are calculated during a ray tracing process. You can selectively enable or disable '''Ray Reflection''', '''Ray Transmission''' and '''Ray Diffraction'''. By default, all three effects are checked and included in the computations. Separating these effects sometimes help you better analyze your propagation scene and understand the impact of various blocks in the scene.&lt;br /&gt;
&lt;br /&gt;
EM.Cube requires a finite number of ray bounces for each original ray emanating from a transmitter. This is very important in situations that may involve resonance effects where rays get trapped among certain group of surfaces and may bounce back and forth indefinitely. This is set using the box labeled &amp;amp;quot;'''Max No. Ray Bounces'''&amp;amp;quot;, which has a default value of 10. Note that the maximum number of ray bounces directly affects the computation time as well as the size of output simulation data files. This can become critical for indoor propagation scenes, where most of the rays undergo a large number of reflections.   &lt;br /&gt;
&lt;br /&gt;
As rays travel in the scene and bounce from surfaces, they lose their power and their amplitudes diminish. From a practical point of view, only rays that have power above the receiver sensitivity threshold can be effectively received. Therefore, all the rays whose power fall below a specified power threshold are discarded. The '''Ray Power Threshold''' is specified in dBm and has a default value of -100dBm. Keep in mind that the value of this threshold directly affects the accuracy of the simulation results as well as the size of the output data file.&lt;br /&gt;
&lt;br /&gt;
You can also set the '''Angular Resolution''' of the transmitter rays in degrees. By default, every transmitter emanates equi-angular ray tubes at a resolution of 1 degree. Lower angular resolutions larger than 1° speed up the SBR simulation significantly, but they may compromise the accuracy. Higher angular resolutions less than 1° increase the accuracy of the simulating results, but they also increase the computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP13.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s SBR Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== The Coverage Map ===&lt;br /&gt;
&lt;br /&gt;
If the associated radiator set is isotropic, so will be the transmitter set. By default, an isotropic transmitter has vertical polarization. You can use the '''Polarization''' radio button to select one of the two options: '''Vertical''' or '''Horizontal'''. If the associated radiator set consists of '''Short Dipole''' or '''User Defined''' radiators, it is indicated in the transmitter property dialog. In the case of a short dipole radiator, you can set a value for the dipole current in Amperes. The radiation resistance of a short dipole of length ''dl'' is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; R_r = 80\pi^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:eqngr6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The radiated power of a short dipole carrying a current I&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; P_{rad} = \frac{1}{2} R_r |I_0|^2 = 40\pi^2 |I_0|^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:shortdipole.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For isotropic and user defined radiators you can set the '''Input Power''' and '''Phase''' of a transmitter set in Watts and degrees, respectively. This can be accessed from the '''Transmitter Chain''' dialog, which will be described in detail in the next section. The radiation pattern of the associated radiator set is normalized and used in conjunction with the input power value to create a weighted distribution of transmitted rays. In certain cases like hybrid simulations, you may want to use the actual values of the far field to define the transmitter power rather than a normalized radiation pattern. Note that the pattern (.RAD) file contains the value of total radiated power in its header. In this case, check the box labeled '''&amp;amp;quot;Calculate Power From Radiation Pattern&amp;amp;quot;'''. This is calculated directly from the complex &amp;amp;theta; and &amp;amp;phi; components of the far field data by integrating them over the entire space (4&amp;amp;pi; solid angle). Note that this option is available only when the radiator is of the User Defined type. When this box is checked, the transmitter chain button is grayed out. By default, an isotropic transmitter emanates rays uniformly in all directions at the angular resolution specified by the user. A transmitter with a user defined associated radiator may represent a highly directional radiation pattern with the main beam pointing in a certain direction. You can additionally force and limit the '''Angular Extents''' of rays to a certain solid angle around the transmitter. This is especially useful and computationally efficient when the transmitter is on one side of the scene, and all the scatterers and receivers are on the other side. In this case, there is no need to generate rays in all directions. To limit the angular extents of rays, define the Start and End values for both Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles. The value of the angular resolution of the rays can be changed from the Run Dialog as will be discussed later.&lt;br /&gt;
&lt;br /&gt;
In a regular SBR simulation, you have a transmitter and one or more arrays of receivers in your scene. At the end of the simulation, you can visualize the coverage map of the transmitter over the receiver sets. A coverage map shows the total '''Received Power''' by each of the receivers and is visualized as a color-coded intensity plot. You can visualize the coverage maps of individual receiver sets. At the end of a SBR simulation, each Received Power Coverage Map is listed under the receiver set's name in the Navigation Tree. To display a coverage map, simply click on its entry in the Navigation Tree. The coverage map plot appears in the Main Window overlaid on the scene. A legend box on the right shows the color scale and units (dB). The 3-D coverage maps are displayed as horizontal confetti above the receivers. If the receivers are packed close to each other, you will see a continuous confetti map. If the receivers are far apart, you will see individual colored squares. You can also visualize coverage maps as colored 3-D cubes. This may be useful when you set up your receivers in a vertical arrangement or the scene has a highly uneven terrain. To change the type of coverage map visualization, open the receiver set's property dialog and select the desired option for '''Coverage Map: Confetti''' or '''Cube''' in the '''&amp;amp;quot;Visualization Options&amp;amp;quot;''' section of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run11_tn.png|400px]] [[File:prop_run12_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Received power coverage map: (Left) confetti style, and (Right) cube style.&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the coverage map by right clicking on its entry in the Navigation Tree and selecting '''Properties...''' or by double-clicking on the legend box. In the Output Plot Settings dialog, you can choose from one of three Color Map options: '''Default''', '''Rainbow''' and '''Grayscale'''. The visualization plot uses default values for the color scale. In the section titled &amp;amp;quot;Limits&amp;amp;quot;, you can choose the radio button labeled '''User Defined'''. Then, you have to enter new values for the '''Lower''' and '''Upper''' Limits of the plot. You can also show or hide the Legend Box or change its '''Background''' and '''Foreground''' colors by clicking the buttons provided for this purpose.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run4.png]]&lt;br /&gt;
&lt;br /&gt;
Output Plot Settings&lt;br /&gt;
&lt;br /&gt;
=== The Ray Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a SBR simulation, each receiver receives a number of rays. Some receivers may not receive any rays at all. You can visualize all the rays received by a certain receiver from the active transmitter of the scene. To do this, right click the '''Receivers''' item of the Navigation Tree. From the context menu select '''Show Received Rays'''. All the rays received by the currently selected receiver of the scene are displayed in the scene. The rays are identified by labels, are ordered by their power and have different colors for better visualization. You can display the rays for only one receiver at a time. The receiver set property dialog has a list of all the individual receivers belonging to that set. To display the rays received by another receiver, you have to change the '''Selected Receiver''' in the receiver set's property dialog. If you keep the mouse focus on this dropdown list and roll your mouse scroll wheel, you can scan the selected receivers and move the rays from one receiver to the next in the list. To remove the visualized rays from the scene, right click the Receivers item of the Navigation Tree again and from the context menu select '''Hide Received Rays'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run5_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Visualization of received rays at the location of the selected receiver.&lt;br /&gt;
&lt;br /&gt;
You can also view the ray parameters by opening the property dialog of a receiver set. By default, the first receiver of the set is always selected. You can select any other receiver from the drop-down list labeled '''Selected Receiver'''. If you click the button labeled '''Show Ray Data''', a new dialog opens up with a table that contains all the received rays at the selected receiver and their parameters:&lt;br /&gt;
&lt;br /&gt;
* Delay is the total time delay that a ray experiences travelling from the transmitter to the receiver after all the reflections, transmissions and diffractions and is expressed in nanoseconds.&lt;br /&gt;
* Ray Field is the received electric field at the receiver location due to a specific ray and is given in dBV/m.&lt;br /&gt;
* Ray Power is the received power at the receiver due to a specific ray and is given in dBm.&lt;br /&gt;
* Angles of Arrival are the &amp;amp;theta; and &amp;amp;phi; angles of the incoming ray at the local spherical coordinate system of the receiver.&lt;br /&gt;
&lt;br /&gt;
The Ray Data Dialog also shows the '''Total Received Power''' in dBm and '''Total Received Field''' in dBV/m due to all the rays received by the receiver. You can sort the rays based on their delay, field, power, etc. To do so, simply click on the grey column label in the table to sort the rays in ascending order based on the selected parameter. You can also select any ray by clicking on its '''ID''' and highlighting its row in the table. In that case, the selected rays is highlighted in the Project Workspace and all the other rays become thin (faded).&lt;br /&gt;
&lt;br /&gt;
Note: The rays are summed up coherently at the receiver.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run6_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Analyzing a selected ray from the ray data dialog.&lt;br /&gt;
&lt;br /&gt;
=== Plotting Other Simulation Results ===&lt;br /&gt;
&lt;br /&gt;
Besides visualizing the coverage map and received rays in the EM.CUBE's [[Propagation Module]], you can also plot the '''Path Loss''' of all the receivers belonging to a receiver set as well as the '''Power Delay Profile''' of individual receivers. To plot these data, go the '''Observables''' section of the Navigation Tree and right click on the '''Receivers''' item. From the context menu, select '''Plot Path Loss''' or '''Plot Power Delay Profile''', respectively. The path loss data between the active transmitter and all the receivers belonging to a receiver set are plotted on a Cartesian graph. The horizontal axis of this graph represents the index of the receiver. Power Delay Profile is a bar chart that plots the power of individual rays received by the currently selected receiver versus their time delay. If there is a line of sight (LOS) between a transmitter and receiver, the LOS ray will have the smallest delay and therefore will appear first in the bar chart. Sometimes you may have several rays arriving at a receiver at the same time, i.e. all with the same delay, but with different power level. These will appear as stacked bars in the chart.&lt;br /&gt;
&lt;br /&gt;
You can also plot the path loss and power delay profile graphs and many others from EM.CUBE's data manager. You can open data manager by clicking the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or by selecting '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or by right clicking on the '''Data Manager''' item of the Navigation Tree and selecting Open Data Manager... from the contextual menu or by using the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the theta and phi angles of arrival and departure of the selected receiver. You can select any data file by clicking and highlighting its '''ID''' in the table and then clicking the '''Plot''' button.&lt;br /&gt;
&lt;br /&gt;
=== Output Data Files ===&lt;br /&gt;
&lt;br /&gt;
At the end of an SBR simulation, the results are written into a main output data file with the reserved name of SBR_Results.RTOUT. This file has the following format:&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Receiver Number&lt;br /&gt;
* Receiver Base X, Y , Z Coordinates&lt;br /&gt;
* Receiver Height&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
Number of Rays&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Ray Number&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Arrival in deg&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Departure in deg&lt;br /&gt;
* Delay in nsec&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''') &amp;amp;amp; Imag('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''')&lt;br /&gt;
* Power&lt;br /&gt;
&lt;br /&gt;
The angles of arrival are the &amp;amp;theta; and &amp;amp;phi; angles of a received ray measured in degrees and are referenced in the spherical coordinate systems centered at the location of the receiver. The angles of departure for a received ray are the &amp;amp;theta; and &amp;amp;phi; angles of the originating transmitter ray, measured in degrees and referenced in the spherical coordinate systems centered at the location of the active transmitter, which eventually arrives at the receiver. The total time delay is measured in nanoseconds between t = 0 nsec at the time of launch from the transmitter location till being received at the receiver location. The last four columns show the real and imaginary parts of the received electric fields with vertical and horizontal polarizations, respectively. The complex field values are normalized in a way that when their magnitude is squared, it equals the received ray power. If the active transmitter is an isotropic radiator with either a vertical or horizontal polarization, then the field components corresponding to the other polarization will have zero entries in the output data file.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run8_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A typical SBR output data file.&lt;br /&gt;
&lt;br /&gt;
=== Running A Frequency Sweep With SBR ===&lt;br /&gt;
&lt;br /&gt;
By default, you run a single-frequency simulation in EM.CUBE's [[Propagation Module]]. You set the operational frequency of a SBR simulation in the project's '''Frequency Dialog''', which can be accessed in a number of ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''Frequency''' [[File:freq_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]]'''Frequency Settings...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+F'''.&lt;br /&gt;
# By double clicking the frequency section (box) of the '''Status Bar'''.&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
[[File:prop_freq.png]]    [[File:prop_run10.png]]&lt;br /&gt;
&lt;br /&gt;
(Left) Project's frequency dialog and (Right) the frequency settings dialog.&lt;br /&gt;
&lt;br /&gt;
You can also select the '''Frequency Sweep''' option in the '''Simulation Mode''' drop-down list of the '''Run Dialog'''. Click the '''Settings...''' button on the right side of this dropdown list to open up the Frequency Settings Dialog. Based on the original values of the project center frequency and bandwidth, the '''Start Frequency''' and '''End Frequency''' have default values. You can also change the '''Number of Samples'''. Once you click the '''Run''' button, EM.CUBE performs a frequency sweep by assigning each of the frequency samples as the current operational frequency and running the SBR simulation engine at that frequency. All the simulation data at all frequency samples are saved into the output data files including &amp;amp;quot;SBR_results.RTOUT&amp;amp;quot;. After the completion of a frequency sweep simulation, as many coverage maps as the number of frequency samples are generated and added to the Navigation Tree under the Receiver Set's entry. You can click on each of the coverage maps corresponding to each of the frequency samples and visualize it in the project workspace. You can also animate the coverage maps. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. The coverage maps start to animate by their order on the Navigation Tree. Once the entire list is displayed sequentially, it starts all over again from the beginning of the list. During the animation, the '''Animation Controls''' dialog appears at the lower right corner of the screen. This dialog has a number of buttons for pause/resume, step forward/backward, and step to the end/start. The title of each coverage map is shown in the box labeled '''Sample''' as it is displayed in the main window. You can also change the speed of animation. The default frame duration has a value of 300 (3x100) milliseconds. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run13.png]]    [[File:prop_run14.png]]&lt;br /&gt;
&lt;br /&gt;
Multiple coverage maps on the Navigation Tree at the end of a frequency sweep and starting an animation from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run15_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Animation controls dialog in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep with SBR ===&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run24.png|thumb|300px|EM.CUBE's variable dialog]]&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run23.png|thumb|250px|Dialog for defining new variables]]&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE, all the CAD object properties as well as certain source, material and mesh parameters can be assigned as [[variables]]. [[Variables]] are defined to control and vary the values of such parameters either for editing purposes or to run parametric sweep or [[optimization]]. Variable are defined using the '''[[Variables]] Dialog''', which can be accessed in the three ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''[[Variables]]''' [[File:variable_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]] '''[[Variables]]...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+B'''.&lt;br /&gt;
&lt;br /&gt;
The [[variables]] dialog is initially empty. To add a new variable, click the '''Add''' button to open up the '''Add Variable/Syntax Dialog'''. In this dialog you have to type in a name for the new variable and choose a type. The default type is '''Uniformly Spaced Samples'''. You also need to specify the '''Start''', '''Stop''' and '''Step''' values for the variable. In the figure below, a variable called &amp;amp;quot;Tx_Height&amp;amp;quot; is defined that varies between 2 and 10 with equal steps of 2. This means the sample set {2,4,6,8,10}. When you return to the [[variables]] dialog, the syntax of the new variable is shown as 2:10:2. The last number in this syntax is always the variable step. In this example, this variable is going to be used to control the height of the transmitter in a propagation scene.&lt;br /&gt;
&lt;br /&gt;
Next, you have to attach the variable to the CAD object. In this case, the CAD object is the point object that represents the transmitter's radiator. To attach a variable to a CAD object, open the object's property dialog and type in the name of the variable as the value of a property or parameter. In this case, the variable Tx_Height is going to control the Z-Coordinate of the point object. Once the value of the object parameter is replaced by the name of an already defined variable, it is updated with the current value of that variable. In the case of a variable of &amp;amp;quot;Uniformly Spaced Samples&amp;amp;quot; type, the current value is the start value. This value will be incrementally varied during a parametric sweep simulation process. Note that a variable can take a fixed value or a discrete set of values, too. You can always open the [[variables]] dialog and change the value or syntax of any variable. To make a new or modified value effective, click the '''Apply''' button of the [[variables]] dialog. You can test the values by performing a '''Dry Run''' of the selected variable. This runs an animation of the project workspace as the value of the variable changes and all the related CAD objects are updated accordingly. Note that you can attach the same variable to more than one CAD object property or to the properties of different objects. You can also define multiple values or syntaxes to the same variable. To do so, open the '''Add Variable/Syntax Dialog''', and instead of typing in a new variable name, choose an existing variable name from the '''Name''' dropdown list. This will add a new value or syntax to the existing syntax(es) of the selected variable. When you return to the [[variables]] dialog, [[variables]] with more than one value or syntax will have a dropdown list in the '''Syntax''' column. You can choose any of these values or syntaxed at any time and make the change effective by clicking the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run25.png]]&lt;br /&gt;
&lt;br /&gt;
Replacing the value of a CAD object parameter with a variable name.&lt;br /&gt;
&lt;br /&gt;
To run a parametric sweep, open the '''Run Dialog''' and select the '''Parametric Sweep''' option in the '''Simulation Mode''' drop-down list. If you have not defined any [[variables]] in the project, the box in the '''[[Variables]]''' row before the '''View''' will be red. You have to turn it into green before you can run a simulation. By clicking the '''View''' button, you can open up the [[variables]] dialog from here. Once you click the '''Run''' button, EM.CUBE performs a parametric sweep by incrementally varying the values of all the defined [[variables]] from their start to stop values at the specified steps and updating all the related CAD objects. After the completion of a parametric sweep simulation, as many coverage maps as the total number of variable samples are generated and added to the Navigation Tree under the receiver set's entry. You can click on each of the coverage maps and visualize it in the project workspace. You can also animate the coverage maps sequentially. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run26.png]]&lt;br /&gt;
&lt;br /&gt;
Choosing parametric sweep as the simulation mode in the run dialog. Note that one variable has been defined and EM.CUBE is ready to run the simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run27_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The coverage map of the scene at the end of a parametric sweep where the sweep variable is the transmitter height.&lt;br /&gt;
&lt;br /&gt;
=== Statistical Analysis of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's coverage maps display the received power at the location of all the receivers. The receivers together from a set/ensemble, which might be uniformly spaced or distributed across the propagation scene or may consist of randomly scattered radiators. Every coverage map shows the '''Mean''' and '''Standard Deviation''' of the received power for all the receivers involved. These information are displayed at the bottom of the coverage map's legend box and are expressed in dB.&lt;br /&gt;
&lt;br /&gt;
In the [[Propagation Module]], when you ran a sweep simulation (frequency, transmitter or parametric), you also have the option to generate two additional coverage maps: one for the mean of all the individual sample coverage maps and another for their standard deviation. To do so, in the '''Run Dialog''', check the box labeled '''&amp;amp;quot;Create Mean and Standard Deviation Coverage Maps&amp;amp;quot;'''. Note that the mean and standard deviation values displayed on the individual coverage maps correspond to the spatial statistics of the receivers in the scene, while the mean and standard deviation coverage maps correspond to frequency, transmitter or variable sets defined for the sweep simulation. Also, note that both of the mean and standard deviation coverage maps have their own spatial mean and standard deviation values expressed in dB at the bottom of their legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run21_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The mean coverage map at the end of a transmitter sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run22_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The standard deviation coverage map at the end of a transmitter sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Terrano</id>
		<title>EM.Terrano</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Terrano"/>
				<updated>2013-06-14T14:25:29Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Penetration Through Thin Walls Or Surfaces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Taking out this picture for now for consistency&lt;br /&gt;
[[File:urban.png]]--&amp;gt;&lt;br /&gt;
EM.Terrano is a physics-based, site-specific, wave propagation modeling tool that enables engineers to quickly determine how radio waves propagate in urban, natural or mixed environments. The rapid growth of wireless communications along with the high costs associated with the design and deployment of effective wireless infrastructures underline a persistent need for computer aided communication network planning tools. Wireless engineers have long used simplistic statistical prediction models based on measurements that often exhibit considerable errors especially in areas having mixed building sizes.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Terrano has helped wireless engineers around the globe model the physical channel and the mechanisms by which radio signals propagate from transmitters to receivers. EM.Terrano’s advanced ray tracing simulator finds the dominant propagation paths specific to the site in question. It calculates the true signal characteristics at the actual locations using physical databases of the buildings and terrain at a given site, not those of a statistically average or representative environment. EM.Terrano’s ray tracer is based on the shoot-and-bounce-rays (SBR) method, which utilizes geometrical optics (GO) in combination with uniform theory of diffraction (UTD) models of building edges.&lt;br /&gt;
&lt;br /&gt;
The new EM.Terrano 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has created the opportunity to inject a host of new powerful features such as a highly customizable terrain generator, DEM terrain import, complex building constructions, and versatile interior wall arrangements for indoor propagation modeling. As a result of this seamless interface with EM.Cube's other modules, you can now model complex antenna systems in [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]], and generate antenna radiation patterns than can be used to model directional transmitters and receivers at the two ends of your propagation channel. Conversely, you can analyze a propagation scene in EM.Terrano and import the rays received at a certain receiver location as coherent plane wave sources to [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]]. You can also model periodic wall or ground structures using the periodic simulation capability of [[EM.Picasso]] or [[EM.Tempo]] and generate macromodels for their reflection and transmission coefficients as functions of the ray incidence angles. You can then define buildings or terrains in your propagation scene that are governed by such macromodels.&lt;br /&gt;
&lt;br /&gt;
== A Wireless Propagation Primer ==&lt;br /&gt;
Every wireless communication system involves a transmitter that transmits some sort of signal (voice, video, data, etc.), a receiver that receives and detects the transmitted signal, and a channel in which the signal is transmitted into the air and travels from the location of the transmitter to the location of the receiver. The channel is the physical medium in which the electromagnetic waves propagate. The successful design of a communication system depends on an accurate link budget analysis that determines whether the receiver receives adequate signal power to detect it against the background noise. The simplest channel is the free space. Real communication channels, however, are more complicated and involve a large number of wave scatterers. For example, in an urban environment, the obstructing buildings, vehicles and vegetation reflect, diffract or attenuate the propagating radio waves. As a result, the receiver receives a distorted signal that contains several components with different power levels and different time delays arriving from different angles.&lt;br /&gt;
&lt;br /&gt;
The different rays arriving at a receiver location create constructive and destructive interference patterns. This is known as the multipath effect. This together with the shadowing effects caused by building obstructions lead to channel fading. In many wireless applications, the total received power by the receiver is all that matters. In some others, the angle of arrival of the rays as well as their polarization are of immense interest. A fully polarimetric, coherent ray tracer like EM.Cube's Shooting-and-Bouncing-Rays (SBR) solver lets you compute and resolve all the rays received by a receiver including their power levels, time delays and angles of arrival.&lt;br /&gt;
&lt;br /&gt;
=== Free Space Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
In a free-space line-of-sight (LOS) communication system, the signal propagates directly from the transmitter to the receiver without encountering any obstacles (scatterers). Electromagnetic waves propagate in the form of spherical waves with a functional dependence of e&amp;lt;sup&amp;gt;j(&amp;amp;omega;&amp;lt;/sup&amp;gt;&amp;lt;sup&amp;gt;t-k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;R)&amp;lt;/sup&amp;gt;/R, where R is the distance between the transmitter and receiver, &amp;lt;math&amp;gt;\omega = 2\pi f&amp;lt;/math&amp;gt;, f is the signal frequency, &amp;lt;math&amp;gt;k_0 = \tfrac{\omega}{c} = \tfrac{2\pi}{\lambda}&amp;lt;/math&amp;gt;, c is the speed of light, and &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength at the operational frequency. By the time the signal arrives at the location of the receiver, it undergoes two changes. It is attenuated and its power drops by a factor of 1/R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, and additionally, it experiences a phase shift of &amp;lt;math&amp;gt;\tfrac{2\pi R}{\lambda_0}&amp;lt;/math&amp;gt;, which is equivalent to a time delay of R/c. The signal attenuation from the transmitter to the receiver is usually quantified by '''Path Loss''' defined as the ratio of the received signal power (P&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;) to the transmitted signal power (P&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;). Assuming isotropic transmitting and receiving radiators (i.e. radiating uniformly in all directions), the Path Loss in a free-space line-of-sight communication system is given by Friis’ formula:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = \left( \frac{\lambda_0}{4\pi R} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above formula assumes that the receiving antenna is polarization-matched. Normally, there is a polarization mismatch between the transmitting and receiving antennas. In the case of directional transmitting and receiving antennas, Friis’ formula takes the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = G_T G_R \left( \frac{\lambda_0}{4\pi R} \right)^2 ( \mathbf{ \hat{u}_T \cdot \hat{u}_R } )&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''u&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;''' and '''u&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''' are the unit polarization vectors of the transmitting and receiving antennas, and G&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt; and G&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; are their gains, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:los.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Line-of-Sight (LOS) Propagation Scenario.&lt;br /&gt;
&lt;br /&gt;
=== Multipath Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
Free-space line-of-sight communications is an ideal scenario that is typically used to model aerial or space applications. In ground-based systems, the presence of the ground as a very large reflecting surface affects the signal propagation to a large extent. Along the path from a transmitter to a receiver, the signal may also encounter many obstacles and scatterers such as buildings, vegetation, etc. In an urban canyon environment with many buildings of different heights and other scatterers, a line of sight between the transmitter and receiver can hardly be established. In such cases, the propagating signals bounce back and forth among the building surfaces. It is these reflected or diffracted signals that are often received and detected by the receiver. Such environments are referred to as “multipath”. The group of rays arriving at a specific receiver location experience different attenuations and different time delays. This gives rise to constructive and destructive interference patterns that cause fast fading. As a receiver moves locally, the receiver power level fluctuates sizably due to these fading effects.&lt;br /&gt;
&lt;br /&gt;
The use of statistical models for prediction of fading effects is widely popular among communication system designers. These models are either based on measurement data or derived from simplistic analytical frameworks. The statistical models often exhibit considerable errors especially in areas having mixed building sizes. In such cases, one needs to perform a physics-based, site-specific analysis of the propagation environment to accurately identify and establish all the possible signal paths from the transmitter to the receiver. This involves an electromagnetic analysis of the scene with all of its geometrical and physical details.  &lt;br /&gt;
&lt;br /&gt;
Link budget analysis for a multipath channel is a challenging task due to the large size of the computational domains involved. Typical propagation scenes usually involve length scales on the order of thousands of wavelengths. To calculate the path loss between the transmitter and receiver, one must solve Maxwell's equations in an extremely large space. Full-wave numerical techniques like the Finite Difference Time Domain (FDTD) method, which require a fine discretization of the computational domain, are therefore impractical for solving large-scale propagation problems. The practical solution is to use asymptotic techniques such as SBR, which utilize analytical techniques over large distances rather than a brute force discretization of the entire computational domain. Such asymptotic techniques, of course, have to compromise modeling accuracy for practical computation feasibility.&lt;br /&gt;
&lt;br /&gt;
[[File:multi1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A multipath propagation scene showing all the rays arriving at a particular receiver.&lt;br /&gt;
&lt;br /&gt;
=== The SBR Method ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] provides an asymptotic ray tracing simulation engine that is based on a technique known as Shooting-and-Bouncing-Rays (SBR). In this technique, propagating spherical waves are modeled as ray tubes or beams that emanate from a source, travel in space, bounce from obstacles and are collected by the receiver. As rays propagate away from their source (transmitter), they begin to spread (or diverge) over distance. In other words, the cross section or footprint of a ray tube expands as a function of the distance from the source. EM.Cube uses an accurate equi-angular ray generation scheme to that produces almost identical ray tubes in all directions to satisfy energy and power conservation requirements.&lt;br /&gt;
&lt;br /&gt;
When a ray hits an obstructing surface, one or more of the following phenomena may happen:&lt;br /&gt;
&lt;br /&gt;
# Reflection from the locally flat surface&lt;br /&gt;
# Transmission through the locally flat surface&lt;br /&gt;
# Diffraction from an edge between two conjoined locally flat surfaces&lt;br /&gt;
&lt;br /&gt;
EM.Cube discretizes all the objects of the scene into flat triangular facets. Obviously, rectangular and cubic objects preserve their geometric shapes through this discretization. Objects with curved surfaces such as cylinders, cones or spheres, are approximated by &amp;amp;quot;polymesh&amp;amp;quot; representations. The geometric fidelity of the resulting mesh depends on the specified mesh edge length. When a ray hits a triangular facet, the propagating spherical wave is approximated as a plane wave at the specular point. The reflection and transmission coefficients of the surface are calculated at the operational frequency and at the particular ray incident angle. &lt;br /&gt;
&lt;br /&gt;
A new reflected ray is generated at the specular point, which starts traveling and bouncing around in the scene. If the obstructing surface is penetrable, a second transmitted ray is generated and added to the scene. If the ray hits the edge of an obstacle, it is diffracted from that edge. This leads to the creation of a cone of new rays, which greatly complicate the computational problem. The Uniform Theory of Diffraction (UTD) is used to calculate the wedge diffraction coefficients at the edges of scattering blocks. Note that reflection, transmission and diffraction coefficients are all dependent on the polarization of the incident plane wave.&lt;br /&gt;
&lt;br /&gt;
A receiver may receive a large number of rays: direct line-of-sight rays from the transmitter, rays reflected or diffracted off the ground or terrain, rays reflected or diffracted from buildings or rays transmitted through buildings. Each received ray is characterized by its power, delay and angles of arrival, which are the spherical coordinate angles &amp;amp;theta; and &amp;amp;phi; of the incoming ray. The actual signal received and detected by the receiver is the superposition of all these rays with different power levels and different time delays. Most of the time, you will be interested in the coverage map of an area, which shows how much power is received by a grid of receivers spread over the area from a given fixed transmitter.&lt;br /&gt;
&lt;br /&gt;
=== Ray Reflection &amp;amp; Transmission ===&lt;br /&gt;
&lt;br /&gt;
[[File:reflect.png|thumb|350px|The Incident, Reflected and Transmitted Rays at the Interface Between Two Dielectric Media]]&lt;br /&gt;
&lt;br /&gt;
The incident, reflected and transmitted rays are each characterized by a triplet of unit vectors:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}, \hat{u}_{\perp}, \hat{k} } )&amp;lt;/math&amp;gt; representing the incident parallel polarization vector, incident perpendicular polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}', \hat{u}_{\perp}', \hat{k}' } )&amp;lt;/math&amp;gt; representing the reflected parallel polarization vector, reflected perpendicular polarization vector and reflected propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}'', \hat{u}_{\perp}'', \hat{k}'' } )&amp;lt;/math&amp;gt; representing the transmitted parallel polarization vector, transmitted perpendicular polarization vector and transmitted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The reflected ray is assumed to originate from a virtual image source point. The three triplets constitute three orthonormal basis systems. Below, it is assumed that the two dielectric media have permittivities &amp;amp;epsilon;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;epsilon;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, and permeabilities &amp;amp;mu;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;mu;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, respectively. A lossy medium with a conductivity &amp;amp;sigma; can be modeled by a complex permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = &amp;amp;epsilon;'&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; –j&amp;amp;sigma;/&amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. Assuming '''n''' to be the unit normal to the interface plane between the two media, and Z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;Omega; , the incident polarization vectors as well as all the reflected and transmitted vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp} = \frac{\hat{k} \times \hat{n}}{|\hat{k} \times \hat{n}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|} = \hat{u}_{\perp} \times \hat{k} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflected unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}' = \hat{k} - 2(\hat{k} \cdot \hat{n}) \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}' = \hat{u}_{\perp}' \times \hat{k}' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The transmitted unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}'' = \hat{n} \times a - \sqrt{1-a \cdot a} \; \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}'' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}'' = \hat{u}_{\perp}'' \times \hat{k}'' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{a} = (k_1/k_2) \mathbf{\hat{k} \times \hat{n}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_1 = k_0 \sqrt{\varepsilon_1 \mu_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_2 = k_0 \sqrt{\varepsilon_2 \mu_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_1 = Z_0 \sqrt{\mu_1 / \varepsilon_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_2 = Z_0 \sqrt{\mu_2 / \varepsilon_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sin\theta'' = \frac{k_1}{k_2}\sin\theta \text{ if } \sin\theta \le k_2/k_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml4.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml5.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflection coefficients at the interface are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penetration Through Thin Walls Or Surfaces ===&lt;br /&gt;
&lt;br /&gt;
[[File:thinwalltrans.png|thumb|350px|The Incident and Transmitted Rays through a Thin Wall]]&lt;br /&gt;
&lt;br /&gt;
In &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;, we assume that an incident ray gives rise to two rays, one is reflected at the specular point, and the other is transmitted almost in the same direction as the incident ray. The reflected ray is assumed to originate from a virtual image source point. Similar to the case of reflection and transmission at the interface between two dielectric media, here too we have three triplets of unit vectors, which all form orthonormal basis systems.&lt;br /&gt;
&lt;br /&gt;
The transmission coefficients are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\|} = \frac{(1-{\Gamma_{\|}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\|}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\perp} = \frac{(1-{\Gamma_{\perp}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\perp}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml21.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wedge Diffraction From Edges ===&lt;br /&gt;
&lt;br /&gt;
For the purpose of calculation of diffraction from building edges, we define a &amp;amp;quot;Wedge&amp;amp;quot; as having two faces, the 0-face and the ''n''-face. The wedge angle is a = (2-''n'')p, where the parameter ''n'' is required for the calculation of diffraction coefficients. All the diffracted rays lie on a cone with its vertex at the diffraction point and a wedge angle equal to the angle of incidence in the opposite direction. A diffracted ray is assumed to originate from a virtual image source point. Three triplets of unit vectors are defined as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_0, \hat{u}_l, \hat{t})}&amp;lt;/math&amp;gt; representing the unit vector normal to the edge and lying in the plane of the 0-face, the unit vector normal to the 0-face, and the unit vector along the edge, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f, \hat{u}_b, \hat{t})}&amp;lt;/math&amp;gt; representing the incident forward polarization vector, incident backward polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f', \hat{u}_b', \hat{t}')}&amp;lt;/math&amp;gt; representing the diffracted forward polarization vector, diffracted backward polarization vector and diffracted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The three triplets constitute three orthonormal basis systems. The propagation vector '''k'''' of the diffracted ray has to be constructed based on the diffraction cone as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{\hat{k}'} = \cos\phi_w \mathbf{\hat{u}_0} + \sin\phi_w \mathbf{\hat{u}_l} + &lt;br /&gt;
\mathbf{(\hat{k} \cdot \hat{t}) \hat{t}}, \quad 0 \le \phi_w \le \alpha&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the resolution of the angle &amp;amp;theta;&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt; is chosen to be the same as the resolution of the incident ray.&lt;br /&gt;
&lt;br /&gt;
[[File:diffract.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Incident Ray and Diffract Ray Cone at the Edge of a Building&lt;br /&gt;
&lt;br /&gt;
The other unit vectors for the incident and diffracted rays are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f = \frac{\hat{k} \times \hat{t}}{|\hat{k} \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b = \hat{k} \times \hat{u}_f } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f' = \frac{\hat{k}' \times \hat{t}}{|\hat{k}' \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b' = \hat{k}' \times \hat{u}_f' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml9.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The diffraction coefficients are calculated in the following way:&lt;br /&gt;
&lt;br /&gt;
[[File:frml11.png]]&lt;br /&gt;
&lt;br /&gt;
where ''F(x)'' is the Fresnel Transition function:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = 2j \sqrt{x} e^{jx} \int_{\sqrt{x}}^{\infty} e^{-j\tau^2} \, d\tau &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, we have&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
s = |\rho_D - \rho_S| \\&lt;br /&gt;
s' = |\rho_D - \rho_r|&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L = \frac{s s' \sin^2 \beta'}{s + s'} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\pm}(\nu) = 2\cos^2 \left( \frac{2n\pi N^{\pm} - \nu}{2} \right), \quad \nu = \phi \pm \phi' &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml10.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml13.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;N^{\pm}&amp;lt;/math&amp;gt; are the integers which most closely satisfy the equations &amp;lt;math&amp;gt; 2n\pi N^{\pm} - \nu = \pm \pi &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SBR As An Asymptotic EM Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulation engine can be used as a versatile and powerful asymptotic electromagnetic (EM) solver. If you compare EM.Cube's [[Propagation Module]] with its other computational modules, you will notice a lot of similarities. While other modules group objects primarily by their material properties, [[Propagation Module]] categorizes the types of obstructing surfaces. Besides sharing the same ray-surface interaction mechanisms, all the objects belonging to a surface group also share the same material properties. [[Propagation Module]] offers similar source types and similar observable types as the other computational modules. For instance, the Hertzian dipole sources used in a SBR simulation are identical to those offered in PO, MoM3D and Planar modules. The plane wave sources are identical across all computational modules. [[Propagation Module]]'s sensor field planes, far field observables (either radiation patterns or RCS) and Huygens surfaces are all fully compatible with EM.Cube's other computational modules.&lt;br /&gt;
&lt;br /&gt;
As an asymptotic EM solver, the SBR engine can be used to model large-scale electromagnetic radiation and scattering problems. An example of this kind is radiation of simple or complex antennas in the presence of large scattering platforms. You have to keep in mind that by using an asymptotic technique in place of a full-wave method, you trade computational speed and lower memory requirements for modeling accuracy. In particular, the SBR method cannot take into account the electromagnetic coupling effects among nearby radiators or scatterers. However, when your scene spans thousands of wavelengths, an SBR simulation might often prove to be your sole practical solution.  &lt;br /&gt;
&lt;br /&gt;
=== Novelties Of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine utilizes an intelligent ray tracing algorithm based on the concept of  k-dimensional trees. A k-d tree is a space-partitioning data structure for organizing points in a k-dimensional space. k-d trees are particularly useful for searches that involve multidimensional search keys such as range searches and nearest neighbor searches. In a typical large radio propagation scene, there might be a large number of rays emanating from the transmitter that may never hit any obstacles. For example, upward-looking rays in an urban propagation scene quickly exit the computational domain. Rays that hit obstacles on their path, on the other hand, generate new reflected and transmitted rays. The k-d tree algorithm traces all these rays systematically in a very fast and efficient manner. Another major advantage of k-d trees is the fast processing of multi-transmitters scenes. Unlike the previous versions of the SBR solver which could handle one transmitter at a time and would superpose all the resulting rays at the end of the simulation, the new SBR shoots rays from all the transmitters at the same time.   &lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine performs fully polarimetric and coherent SBR simulations with arbitrary transmitter antenna patterns. The new engine solves directly for the vectorial field components at the receiver locations or field observation points. This is far more rigorous than the previous versions of the SBR solver which primarily utilized ray power calculations based on the two vertical and horizontal polarizations. In other words, EM.Cube's new SBR engine is a truly asymptotic &amp;amp;quot;field&amp;amp;quot; solver. As a result, you can visualize the magnitude and phase of all six electric and magnetic field components at any point in the computational domain. For power calculations at the receiver location, an isotropic, polarization-matched, receiving antenna is assumed.       &lt;br /&gt;
&lt;br /&gt;
In most scenes, the buildings and the ground or terrain can be assumed to be made of homogeneous materials. These are represented by their electrical properties such as permittivity e and electric conductivity s. More complex scenes may involve a multilayer ground or multilayer building walls. In such cases, one can no longer use the simple reflection or transmission coefficient formulas for homogeneous medium interfaces. EM.Cube calculates the reflection and transmission coefficients of multilayer structures as functions of incident angle, frequency and polarization and uses them at the respective specular points.  &lt;br /&gt;
&lt;br /&gt;
=== Limitations of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
It is very important to keep in mind that SBR is an asymptotic electromagnetic analysis technique that is based on Geometrical Optics (GO) and the Uniform Theory of Diffraction (UTD). It is not a &amp;amp;quot;full-wave&amp;amp;quot; technique, and it does not solve Maxwell's equations directly or numerically. SBR makes a number of assumptions, chief among them, a very high operational frequency such that the length scales involved are much larger than the operating wavelength. Under this assumed regime, electromagnetic waves start to behave like optical rays. Virtually all the calculations in SBR are based on far field approximations. &lt;br /&gt;
&lt;br /&gt;
In order to maintain a high computational speed for urban propagation problems, EM.Cube's SBR solver ignores double diffractions. Recall that diffractions from edges give rise to a large number of new secondary rays. The power of diffracted rays drops much faster than reflected rays. EM.Cube ignores diffracted rays that are not detected by any receiver. In other words, an edge-diffracted ray does not diffract again from another edge. However, reflected and penetrated rays do get diffracted from edges just as rays emanated directly from the sources do.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Propagation Scene ==&lt;br /&gt;
&lt;br /&gt;
An EM.Cube propagation scene typically consists of several elements. At a minimum, you need a transmitter (Tx) at some location to launch rays into the scene and a receiver (Rx) at another location to receive and collect the incoming rays. A transmitter and a receiver together make the simplest propagation scene, representing a free-space line-of-sight (LOS) channel. A transmitter is one of EM.Cube's several source types, while a receiver is one of EM.Cube's several observable types. A simpler source type is a Hertzian dipole. A simpler observable is a field sensor that is used to compute the electric and magnetic fields on a specified plane.&lt;br /&gt;
&lt;br /&gt;
An outdoor propagation scene may involve several buildings (modeled as impenetrable surfaces) and an underlying flat ground or irregular terrain surface. An indoor propagation scene may involve several walls (modeled as thin penetrable surfaces), a ceiling and a floor arranged according to a certain floor plan. You can also build mixed scenes involving both impenetrable and penetrable blocks, possibly along with irregular terrain surfaces. Your sources and observables can be placed anywhere in the scene. Your transmitters and receivers can be placed outdoors or indoors. A complete list of the various elements of a propagation scene is given in the '''Physical Structure''' section of [[Propagation Module]]'s Navigation Tree as follows:&lt;br /&gt;
&lt;br /&gt;
* Impenetrable Surfaces&lt;br /&gt;
* Penetrable Surfaces&lt;br /&gt;
* Terrain Surfaces&lt;br /&gt;
* Base Points&lt;br /&gt;
&lt;br /&gt;
Impenetrable, penetrable and terrain surfaces all obstruct the propagation of electromagnetic waves (rays) in the free space. What differentiates them is the types of physical phenomena that are used to model their interaction with the impinging rays. Base points are simply used to define transmitter and receiver locations in the scene. The following sections of this manual will describe each of these elements in detail.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Navigation Tree of EM.Cube's [[Propagation Module]].&lt;br /&gt;
&lt;br /&gt;
=== The Various Types Of Surfaces &amp;amp;amp; Blocks ===&lt;br /&gt;
&lt;br /&gt;
In a SBR simulation, the propagating rays hit the surface of building structures, walls, terrain (or global ground) and bounce back into the scene (reflection). Some rays penetrate thin walls or other penetrable surfaces and continue their path on the other side of the surface (transmission). The field intensity, phase and power of the reflected and transmitted rays depend on the material properties of the obstructing surface. The specular surface can be modeled as a simple homogeneous dielectric half-space or as a multilayer structure. In that respect, the buildings, walls, terrain or even the global ground all behave in a similar way:&lt;br /&gt;
&lt;br /&gt;
* They terminate an impinging ray and replace it with one or more new rays.&lt;br /&gt;
* They represent a specular interface between two media of different material compositions for calculating the reflection, transmission and possibly diffraction coefficients.&lt;br /&gt;
&lt;br /&gt;
EM.Cube has generalized the concept of '''Block''' as any object that obstructs and affects radio wave propagation. Rays hit the facets of a block and bounce off the surface of those facets or penetrate them and continue their propagation. Rays also get diffracted off the edges of these blocks. In EM.Cube's [[Propagation Module]], blocks are grouped together by the type of their interaction with rays. EM.Cube currently offers three types of blocks for use in a propagation scene:&lt;br /&gt;
&lt;br /&gt;
# '''Impenetrable Surfaces:''' Rays hit the facets of this type of blocks and bounce back, but they do not penetrate the object. It is assumed that the interior of such blocks or buildings are highly absorptive.&lt;br /&gt;
# '''Penetrable Surfaces:''' These blocks represent thin surfaces that are used to model the exterior and interior walls of buildings based on the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;. Rays reflect off the surface of penetrable surfaces and diffract off their edges. They also penetrate such thin surfaces and continue their paths on the other side of the wall.&lt;br /&gt;
# '''Terrain Surfaces:''' These blocks are used to provide one or more impenetrable, ground surfaces for the propagation scene. Rays simply bounce off terrain objects. The global ground acts as a flat super-terrain that covers the bottom of the entire computational domain. &lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to define block groups of each of the above three types. Each block group has the same color or texture and its members share the same material properties: permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and conductivity &amp;amp;sigma;. Also, all the penetrable surfaces belonging to the same block group have the same wall thickness. You can define many different block groups with certain properties and underneath each introduce many member objects with different geometrical shapes and dimensions. The table below summarizes the characteristics of each block type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Block Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Physical Effects&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Admissible Object Types&lt;br /&gt;
|-&lt;br /&gt;
| Impenetrable Surface&lt;br /&gt;
| Reflection, Diffraction&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Penetrable Surface&lt;br /&gt;
| Reflection, Diffraction, Transmission&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Terrain Surface&lt;br /&gt;
| Reflection&lt;br /&gt;
| Tessellated Objects Only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Impenetrable Surfaces For Outdoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
In outdoor propagation scenes such as &amp;amp;quot;Urban Canyons&amp;amp;quot;, you are primarily interested in the wireless coverage in the areas among buildings. You can assume that rays bounce off the exterior walls of these buildings but do not penetrate them. In other words, you ignore the transmitted rays and assume that they are either absorbed or diffused inside the buildings. This is not an unrealistic assumption. EM.Cube offers &amp;amp;quot;Impenetrable Blocks&amp;amp;quot; to model buildings in outdoor propagation scenes. A penetrable block has a color or texture property as well as material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and conductivity (s). By default, a brick building is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m. Impinging rays are reflected from the facets of impenetrable buildings or diffracted from their edges.&lt;br /&gt;
&lt;br /&gt;
To define a new impenetrable block group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on either the '''Impenetrable Surfaces''' item of the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the block properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the block group and select a color or texture.&lt;br /&gt;
# The electromagnetic model that determines ray-block interaction is selected under '''Specular Interface Type'''. Two options are available: '''Standard Material''' or '''User Defined Model'''. The former is the default choice and requires material properties, '''Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity''' (&amp;amp;sigma;), which are set to &amp;amp;quot;Brick&amp;amp;quot; by default. No magnetic properties are allowed for blocks.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(2).png]]   &lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Impenetrable Surface dialog.&lt;br /&gt;
&lt;br /&gt;
Under an impenetrable block group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of an impenetrable surface. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. In this dialog, you can change the name of the material and its permittivity and electric conductivity. The box labeled &amp;amp;quot;Specify Loss Tangent&amp;amp;quot; is unchecked by default. If you check it, you can specify the '''Loss Tangent''' of the material, which, in turn, updates the value of electric conductivity at the center frequency of the project. You can also use EM.Cube's Material List, which will  be explained later.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to impenetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
=== Penetrable Surfaces For Indoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
A typical indoor propagation scene usually involves an arrangement of walls that represent the interior of a building. The transmitters and receivers are then placed in the spaces among such walls. From the point of view of EM.Cube's SBR simulator, walls act like thin penetrable surfaces. EM.Cube uses the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot; to model penetrable surfaces. It assumes that rays simply penetrate a wall and exit at the same specular point on the opposite side of the wall. In other words, rays are not displaced by the walls, nor do they get trapped inside the walls (no internal reflection). This is equivalent to assuming a zero thickness for penetrable surfaces for the purpose of geometrical ray tracing, while the finite thickness of the &amp;amp;quot;thin&amp;amp;quot; surface is used for electromagnetic calculation of transmission coefficient. EM.Cube offers &amp;amp;quot;Penetrable Surface Blocks&amp;amp;quot; for the construction of rooms in indoor propagation scenes as well as modeling of hollow buildings and other structures. You can define many penetrable surface groups with arbitrary thicknesses and material properties (color, texture, permittivity and electric conductivity).&lt;br /&gt;
&lt;br /&gt;
To define a new penetrable surface group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on one of the '''Penetrable Surfaces''' item in the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the wall properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the surface group and select a color or texture.&lt;br /&gt;
# The properties of a penetrable surface are identical to those of an impenetrable surface, plus an additional thickness property.&lt;br /&gt;
# By default, a brick wall with a thickness of 0.5 units is assumed. You can change the '''Thickness''' of the penetrable surface as well as its '''Permittivity'''  &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and '''Electric Conductivity''' &amp;amp;sigma;.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Penetrable Surface dialog.&lt;br /&gt;
&lt;br /&gt;
Under a penetrable surface group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of a penetrable surface group including its default thickness. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. Similar to the case of impenetrable surfaces, from this dialog, you can change the material properties (permittivity and electric conductivity) as well as '''Thickness''', which is expressed in the project units. You can also use EM.Cube's Material List, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to penetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
You can construct several thin walls and arrange them as rooms. A regular room can be built by placing four vertical wall objects together with an optional horizontal wall at the top for the ceiling. Alternatively, you may use EM.Cube's hollow box objects or boxes with one or two capped end(s).  '''Keep in mind that all the penetrable surfaces belonging to a group have the same wall thickness, which is initially set to 0.5 project units by default. Also, note that solid CAD objects belonging to a penetrable surface group are treated as air-filled hollow structures.''' The thickness of penetrable surfaces is implied and not visualized when displaying objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Computational Domain &amp;amp;amp; Global Ground ===&lt;br /&gt;
&lt;br /&gt;
The SBR simulation engine requires a finite computational domain. All the stray rays that hit the boundaries of this finite domain are terminated during the simulation process. Such rays exit the computational domain and travel to the infinity, with no chance of ever reaching any receiver in the scene. When you define a propagation scene with various elements like buildings, walls, terrain, etc., a dynamic domain is automatically established and displayed as a wireframe box with green lines that surrounds the entire scene. Every time you create a new object, the domain is automatically adjusted and extended to enclose all the objects in the scene. You can change the size and color of the domain box through the Ray Domain Settings Dialog, which can be accessed in one of the following three ways:&lt;br /&gt;
&lt;br /&gt;
# Click the '''Domain''' [[File:image025.jpg]] button of the Simulation Toolbar.&lt;br /&gt;
# Select the '''Simulate''' &amp;amp;gt; '''Computational Domain''' &amp;amp;gt; '''Settings...''' item of the Simulate Menu.&lt;br /&gt;
# Right click on the '''Ray Domain''' item of the Navigation Tree and select '''Domain Settings...'''&lt;br /&gt;
# Use the keyboard shortcut '''Ctrl + A'''.&lt;br /&gt;
&lt;br /&gt;
The size of the Ray domain is specified in terms of six '''Offset''' parameters along the ±X, ±Y and ±Z directions. The default value of all these six offset parameters is 10 project units. You can change them arbitrarily. After changing these values, use the '''Apply''' button to make the changes effective while the dialog is still open.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Most outdoor and indoor propagation scenes include a flat ground at their bottom, which bounces incident rays back into the scene. EM.Cube's [[Propagation Module]] provides a global flat ground at z = 0. The global ground indeed acts as an impenetrable surface that blocks the entire computational domain from the z = 0 plane downward. It is displayed as a translucent green plane at z = 0 extending downward. The color of the ground plane is always the same as the color of the ray domain. The global ground is assumed to be made of a homogeneous dielectric material with a specified permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma;. By default, a rocky ground is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m. You can remove the global ground, in which case, you will have a free space scene. To disable the global ground, open up the Global Ground Settings Dialog, which can be accessed by right clicking on the '''Global Ground''' item in the Navigation Tree and selecting '''Global Ground Settings... '''Remove the check mark from the box labeled '''&amp;amp;quot;Include Half-Space Ground (z&amp;amp;lt;0)&amp;amp;quot;''' to disable the global ground. This will also remove the green translucent plane from the bottom of your scene. You can also change the material properties of the global ground and set new values for the permittivity and electric conductivity of the impenetrable, half-space, dielectric medium. '''Do not forget to disable the global ground if you want to model a free space propagation scene.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PROP4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s Global Ground Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Surfaces vs. Global Ground ===&lt;br /&gt;
&lt;br /&gt;
A terrain surface acts as a custom, unlevel or irregular ground for your propagation scene. EM.Cube's default global ground blocks the z &amp;amp;lt; 0 half-space everywhere in the computational domain. You can simply turn off the global ground and create one or more terrain objects and place them arbitrarily in the scene. You can also import an external terrain model or file. A terrain represents an impenetrable surface with a more complex surface profile. You can have one or more terrain objects of finite extents and place them on or above the global ground.&lt;br /&gt;
&lt;br /&gt;
Terrain objects have some important differences with objects of the &amp;amp;quot;Impenetrable Surface&amp;amp;quot; type:&lt;br /&gt;
&lt;br /&gt;
# While impenetrable blocks can be created using any of EM.Cube's solid or surface CAD object creation tools, terrain objects are created either using EM.Cube's '''Terrain Generator''' or by importing an external terrain file. &lt;br /&gt;
# Terrain objects belong to a special type of CAD objects called &amp;amp;quot;Tessellated Objects&amp;amp;quot;, which differ from other regular CAD [[Surface Objects|surface objects]] or EM.Cube's polymesh surfaces.&lt;br /&gt;
# Terrain surfaces do not diffract impinging rays at their many small edges.&lt;br /&gt;
# Terrain objects affect the elevation of other objects or transmitters or receivers that are located above them.&lt;br /&gt;
&lt;br /&gt;
Just as other blocks are grouped by their color, texture and material composition, terrain objects are also grouped in a similar fashion. Before you can generate or import a new terrain object, first you have to define a terrain group and specify its color/texture and material properties. To define a new terrain group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Terrain''' item in the Navigation Tree and select '''Insert New Terrain...''' A dialog for setting up the terrain properties opens up offering a of preloaded material type (Rock) with predefined green color and no texture.&lt;br /&gt;
* Specify a name for the terrain group and select a color or texture.&lt;br /&gt;
* Similar to other blocks, you have to specify the material properties, Permittivity (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and Electric Conductivity (&amp;amp;sigma;), of the terrain group. Rock with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m is the default material choice for a new terrain.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Terrain dialog.&lt;br /&gt;
&lt;br /&gt;
You can change the properties of a terrain surface group from its property dialog. Click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog, which is identical to the case of impenetrable surfaces. You can also use EM.Cube's Material List, which will be explained later. When a new terrain type is created, its node on the Navigation Tree becomes active. Under this node you can create and add new terrain objects. When a terrain node is active for drawing, all CAD object creation tools are disabled. You have three options for creating a new terrain object, which will be described in detail in the next sections of this manual:&lt;br /&gt;
&lt;br /&gt;
# Use EM.Cube's '''Terrain Generator'''.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.TRN'''&amp;amp;quot; type.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.DEM'''&amp;amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
=== Using Terrain Generator ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18.png|thumb|250px|[[Propagation Module]]'s Terrain Generator dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides a convenient and powerful Terrain Generator for creating a variety of terrain [[Surface Objects|surface objects]]. EM.Cube's Terrain Generator looks very similar to [[CubeCAD]]'s Surface Generator. However, whereas the Surface Generator creates a generic or polymesh surface object, Terrain Generator always creates another special type of object known as a '''Tessellated Object'''. A terrain object is much simpler than EM.Cube's polymesh objects and is usually made up of triangular or quadrilateral facets. As such, terrain objects have limited editing capabilities. For example, you can cut, copy, paste, translate or rotate  terrain objects. But operations like scaling, mirroring, grouping (composite), arraying, exploding, linking or Boolean operations do not work on terrain objects.&lt;br /&gt;
&lt;br /&gt;
To create a new terrain object using Terrain Generator, first you need to define a terrain group in the Navigation Tree. Right click on the name of the terrain node and select '''Terrain Generator...''' from the contextual menu. This opens up the Terrain Generator Dialog. Using Terrain Generator, you can build a single terrain surface or an array of surfaces patched together. Some of the available terrain models include:&lt;br /&gt;
&lt;br /&gt;
# Flat Plane&lt;br /&gt;
# Hill (Elliptic Quadratic)&lt;br /&gt;
# Mountain (Elliptic Cone)&lt;br /&gt;
# 1-D and 2-D Cliff&lt;br /&gt;
# Gaussian Hump&lt;br /&gt;
# Undulated Sinusoid&lt;br /&gt;
# Undulated Sinc&lt;br /&gt;
# Super-quadratic Plateau&lt;br /&gt;
# Custom Function&lt;br /&gt;
# XY Grid Data&lt;br /&gt;
&lt;br /&gt;
In all of the above models, you can set the height of the surface object to an any desired value. You set the lateral extents of the surface and its resolution along the X and Y directions in the boxes labeled '''Range Start''', '''Range Stop''' and '''Range Step'''. The step values along the X and Y directions are a measure of surface smoothness: the smaller the step values, the higher the resolution and the smoother the resulting terrain object.&lt;br /&gt;
&lt;br /&gt;
Some surface types have an additional shape factor called '''Alpha''' that is identical to the alpha parameter in the surface generator. For example, a Gaussian Hump is defined as exp(-r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/(2a&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)), where r is the polar radius. For a Super-quadratic Hump, the input parameter a defines the degree of the super-quadratic surface. a = 2 corresponds to an ellipsoid. Larger values of a get close to a rectangular base with rounded corners. An undulated sinusoidal surface is defined by cos(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*cos(pay/D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;), and an undulated sinc is defined by D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;*D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;*sin(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*sin(pay/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/(2pxy), where D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; are the X and Y dimensions, respectively. Terrain Generator creates a unit cell based on the specified surface type. From the same dialog, you can also produce an array arrangement of such unit cells. Simply enter any number of elements along the X and Y directions in the boxes labeled '''Array'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP19.png|800px]]  &lt;br /&gt;
&lt;br /&gt;
Figure: A 4 × 4 array of hill terrain objects.&lt;br /&gt;
&lt;br /&gt;
You can define any arbitrary surface by entering an equation of the two [[variables]] x and y as z = f(x,y). In this case, you have to select the '''Custom Function''' option in the dropdown list labeled '''Model'''. You should enter your equation as any mathematical expression in the box labeled '''Function f(x,y)'''. You can use any of EM.Cube's mathematical functions listed in the '''Function Dialog''' or combine several of them. Note that after selecting the custom function option, the height of the surface is determined by your equation, and the '''Height''' box is disabled. You can also introduce random noise and create a rough terrain. You can do this by setting a nonzero value for '''Noise''', which represent the RMS peak-to-valley amplitude of the surface roughness. The figures below show two custom terrain surfaces modeled by the equation z = (x.y)/20 defined over the range [0, 10] in both X and Y directions. Random noise has been added to both surfaces, with the noise amplitude being 0.2 and 0.5 for the left and right figures, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP21.png|400px]] [[File:PROP20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Two noisy custom terrain surfaces both defined as z = (x.y)/20: (Left) RMS noise amplitude = 0.2, (right) RMS noise amplitude = 0.5.&lt;br /&gt;
&lt;br /&gt;
=== Generating Grid-Based Terrain ===&lt;br /&gt;
&lt;br /&gt;
Every time you create a new terrain object using Terrain Generator, an ASCII data file named &amp;amp;quot;GeneratedTerrain&amp;amp;quot; with a &amp;amp;quot;'''.TRN'''&amp;amp;quot; file extension is created and placed in your project folder. This is EM.Cube's simple native terrain file format that basically lists all the (x, y, z) coordinates of the generated surface points on a horizontal, rectangular XY grid. Terrain Generator simply takes your custom function definition or one of the selected catalog surface types and generates the digital elevation data on the specified grid.  &lt;br /&gt;
&lt;br /&gt;
Another type of terrain model that the terrain generator provides is '''XY Grid Data'''. In this case, you define a rectangular XY grid with a uniform grid cell size along the X and Y directions and manually define the Z-elevation for each grid point. This is similar to the surface generator's &amp;amp;quot;2D Uniform Grid&amp;amp;quot; model type in [[CubeCAD]]. Based on your input to '''Range Start''', '''Range Stop''' and '''Range Step''' along X and Y, a 2D grid is set up and displayed in a table at the bottom of the terrain generator dialog. By default, all the Z-elevations are set to zero initially. You can click on each table cell and overwrite it with a new value. At the end, click the '''Create''' button of the dialog to add the new grid-based terrain object to the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:terrain10_tn.png]]&lt;br /&gt;
&lt;br /&gt;
A grid-based terrain object.&lt;br /&gt;
&lt;br /&gt;
=== Importing &amp;amp;amp; Exporting Terrain Models ===&lt;br /&gt;
&lt;br /&gt;
You can import two types of terrain in EM.Cube's [[Propagation Module]]. The first type is &amp;amp;quot;'''.TRN&amp;amp;quot;''' terrain file, which is EM.Cube's native terrain format. It is a basic digital elevation map with a very simple ASCII data file format. The resolution of the terrain map in the X and Y directions is specified in meters as STEPS. The (x, y, z) coordinates of the terrain points are then listed one point per line. The other type of terrain format supported by EM.Cube is the standard '''7.5min DEM''' file format with a '''.DEM''' file extension. &lt;br /&gt;
&lt;br /&gt;
To import an external terrain model, first you have to create a terrain group node in the Navigation Tree. Right click on the name of the terrain group in the Navigation Tree and select either '''Import Terrain...''' or '''Import DEM File...''' A standard Windows '''Open Dialog''' opens up, with the file type set to .TRN or .DEM extensions, respectively. You can browse your folders and find the right terrain model file to import.&lt;br /&gt;
&lt;br /&gt;
You can also export all the terrain objects in the project workspace as a terrain file with a '''.TRN''' file extension. You can even import a DEM terrain model from an external file and then save and export it as a native terrain (.TRN) file. To export the terrain, select '''File''' &amp;amp;gt; '''Export...''' from [[Propagation Module]]'s '''File Menu'''. The standard Windows Save Dialog opens up with the default file type set to '''.TRN'''. Type in a name for your new terrain file and click the '''Save''' button to export the terrain data.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-12_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figur: An imported external terrain model.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Surface Models ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP26.png|thumb|250px|Propagation Module's Penetrable Surface Dialog showing a three-layer wall composition]]&lt;br /&gt;
&lt;br /&gt;
Most of the time, your outdoor propagation scene consists of simple buildings made of single-layer walls with standard material properties (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;). In the case of a single-layer impenetrable surface, the specular interface is an infinite dielectric half-space, which reflects the impinging rays. Single-layer penetrable surfaces, on the other hand, involve finite-thickness dielectric walls, which both reflect and transmit the incident rays. Similarly, most of your indoor propagation scenes involve simple single-layer penetrable walls with the specified material properties &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. A thin wall acts like a finite-thickness dielectric slab that both reflects and transmits incident rays. In the case of the global ground or terrain objects, only ray reflection off the ground surface is considered.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[Propagation Module]], you can define multilayer surfaces with both reflection and transmission properties. You can define multilayer impenetrable buildings, multilayer penetrable walls, and multilayer terrain, with an arbitrary number of layers having different material compositions. You define a multilayer surface in the property dialog of a block, whether impenetrable, penetrable or terrain. In the section entitled '''Surface Type''', two options are available: '''Standard Material''' or '''User Defined Model'''. For simple multilayer walls, select the '''Standard Material''' option. You can add new layers with arbitrary thickness and material parameters to the existing layers. To insert a new layer, deselect any items in the layer list, and click the '''Add/Edit''' button to open the &amp;amp;quot;Add Layer&amp;amp;quot; Dialog. Here you can enter a name for the new layer and values for its '''Thickness''', &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. You may also delete any layer by selecting and highlighting it and clicking the '''Delete''' button. You can move layers up or down using the '''Move Up''' and '''Move Down''' buttons and change the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
You can also search EM.Cube's material database by clicking the '''Material''' button of &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. This opens the '''Materials''' Dialog. Inside the material list select and highlight any row and click the '''OK''' button. The selected material will fill out all the fields in the &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. Inside the Materials Dialog, you can type the few first letters of any material, and it will take you to the corresponding row of the list.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Transferring Objects From Or To Other Modules ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube's [[Propagation Module]] and draw a solid object like a box in the project workspace without having defined any surface groups, it is assumed to be of the impenetrable surface type. A default impenetrable surface group called Block_1 is automatically added to the Navigation Tree, which holds your newly drawn object. The default group has the material properties of &amp;amp;quot;Brick&amp;amp;quot; (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m.) with a dark brown color. You can continue drawing new objects in the project workspace and adding them under this block node. Or you can define a new surface type with different properties. By default, the last surface group that was defined is '''Active'''. The current active surface group is always listed in bold letters in the Navigation Tree. When you draw a new object, it is always inserted under the current active surface group. Any surface group can be activated by right clicking its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move any object from its current surface group into any other available surface group. First select the object, then right click on its surface and select '''MoveTo &amp;amp;gt; Propagation &amp;amp;gt;'''. A submenu appears which lists all the available surface groups where you can transfer the selected object. You can also move objects among surface groups by selecting their names in the Navigation Tree and using the contextual menu. In a similar way, you can transfer objects from [[Propagation Module]] to EM.Cube's other modules or vice versa. '''Keep in mind that all the external model files such as STEP, IGES, STL, etc. are first imported to EM.Cube's [[CubeCAD]], from which you can transfer them to other modules.''' First select the object, then right click and select '''MoveTo &amp;amp;gt;'''. In the submenu you will see a list of all the EM.Cube modules that have at least one available group where you can transfer your selected object. You can select multiple objects for transfer. When using the keyboard's '''Shift Key''' or '''Ctrl Key''' for multiple selection, make sure that those keys are held down, when you right click to access the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Defining Sources &amp;amp;amp; Observables ==&lt;br /&gt;
&lt;br /&gt;
Like every other electromagnetic solver, EM.Cube's SBR ray tracer requires a source for excitation and one or more observables for generation of simulation data. EM.Cube's new [[Propagation Module]] offers several types of sources and observables for a SBR simulation. You can mix and match different source types and observable types depending on the requirements of your modeling problem. There are two types of sources:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Transmitter Sets|Transmitter]]&lt;br /&gt;
* [[#Hertzian Dipole Sources|Hertzian Dipole]]&lt;br /&gt;
&lt;br /&gt;
There are four types of observables:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Receiver Sets|Receivers]]&lt;br /&gt;
* [[#Defining Field Sensors|Field Sensor]]&lt;br /&gt;
* Far Fields&lt;br /&gt;
* Huygens Surface&lt;br /&gt;
&lt;br /&gt;
The simplest SBR simulation can be performed using a short dipole source with a specified field sensor plane. In this way, EM.Cube computes the electric and magnetic fields radiated by your dipole source in the presence of your multipath propagation environment. A &amp;amp;quot;classic&amp;amp;quot; urban propagation scene can be set up using a &amp;amp;quot;Transmitter&amp;amp;quot; source and an array of &amp;amp;quot;Receiver&amp;amp;quot; observables. A transmitter is a point radiator with a user defined radiation pattern. A receiver is a polarization-matched isotropic point radiator that collects the received rays at its aperture. Using receivers, you can calculate the received power coverage map of your propagation scene. You can also calculate your channel's path loss between the transmitter and all the receivers. &amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18(1).png|thumb|[[Propagation Module]]'s Transmitter dialog with a short dipole radiator selected]]&lt;br /&gt;
Earlier versions of EM.Cube's [[Propagation Module]] used to offer an isotropic radiator with vertical or horizontal polarization as the simplest transmitter type. This release of EM.Cube has abandoned isotropic radiator transmitters because they do not exist physically in a real world. Instead, the default transmitter radiator type is now a Hertzian dipole. Note that before defining a transmitter, first you have to define a base set to establish the location of the transmitter. Most simulation scenes involve only a single transmitter. Your base set can be made up of a single point for this purpose. &lt;br /&gt;
&lt;br /&gt;
To define a new Transmitter Set, go to the '''Sources''' section of the Navigation Tree, right click on the '''Transmitters''' item and select '''Insert Transmitter...''' A dialog opens up that contains a default name for the new Transmitter Set as well as a dropdown list labeled '''Select Base Set'''. In this list you will see all the available base sets already defined in the project workspace. Select the desired base set to associate with the transmitter set. Note that if the base set contains more than one point, then more than one transmitter will be created and contained in your transmitter set. After defining a transmitter set, the base points change their color to the transmitter color, which is red by default.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Radiator&amp;amp;quot; section of the dialog, you have two options to choose from: &amp;amp;quot;Short Dipole&amp;amp;quot; and &amp;amp;quot;User Defined&amp;amp;quot;. The default option is short dipole. A short dipole radiator has a '''Length'''''dl'' expressed in project units, a current '''Amplitude''' in Amperes and a current '''Phase''' in degrees. The '''Direction''' of the dipole is determined by its unit vector that has three X, Y and Z components. By default, a Z-directed short dipole radiator is assumed. You can change all parameters of the dipole as you wish. Keep in mind that all the transmitters belonging to the same set have parallel radiators with identical properties.&lt;br /&gt;
&lt;br /&gt;
=== Defining Base Point Sets ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP1.png|thumb|[[Propagation Module]]'s Base Set dialog]]&lt;br /&gt;
In order to tie up transmitters and receivers with CAD objects in the project workspace, EM.Cube uses point objects to define transmitters and receivers. These point objects represent the base of the location of transmitters and receivers in the computational domain. Hence, they are grouped together as &amp;amp;quot;Base Sets&amp;amp;quot;. You can easily interchange the role of transmitters and receivers in a scene by switching their associated bases. The usefulness of concept of base sets will become apparent later when you place transmitters or receivers on an irregular terrain and adjust their elevation.   &lt;br /&gt;
&lt;br /&gt;
To create a new base set, right click on the '''Base Sets''' item of Navigation Tree and select '''Insert Base Set...''' A dialog for setting up the Base Set properties opens up.&lt;br /&gt;
&lt;br /&gt;
# Enter a name for the base set and change the default blue color if you wish. It is useful to differentiate the base sets associated with transmitters and receivers by their color.&lt;br /&gt;
# Click the '''OK''' button to close the Base Set Dialog.&lt;br /&gt;
&lt;br /&gt;
Once a base set node has been added to the Navigation Tree, it becomes the active node for new object drawing. Under base sets, you can only draw point objects. All other object creation tools are disabled. A point is initially drawn on the XY plane. Make sure to change the Z-coordinate of your radiator, otherwise, it will fall on the global ground at z = 0. You can also create arrays of base points under the same base set. This is particularly useful for setting up receiver grids to compute coverage maps. Simply select a point object and click the '''Array Tool''' of '''Tools Toolbar''' or use the keyboard shortcut &amp;amp;quot;A&amp;amp;quot;. Enter values for the X, Y or Z spacing as well as the number of elements along these three directions in the Array Dialog. In most propagation scenes you are interested in 2D horizontal arrays along a fixed Z coordinate (parallel to the XY plane).&lt;br /&gt;
&lt;br /&gt;
=== Defining Transmitter Sets ===&lt;br /&gt;
&lt;br /&gt;
A short dipole is the closest thing to an omni-directional radiator. The direction or orientation of the short dipole determines its polarization. In many applications, you may rather want to use a directional antenna for your transmitter. You can model a radiating structure using EM.Cube's FDTD, Planar, MoM3D or PO modules and generate a 3D radiation pattern data file for it. These data are stored in a specially formatted file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension, which contains columns of spherical &amp;amp;phi; and &amp;amp;theta; angles as well as the real and imaginary parts of the complex-valued far field components '''E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;''' and '''E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;'''. The &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field determine the polarization of the transmitting radiator. &lt;br /&gt;
&lt;br /&gt;
To define a directional transmitter radiator, you need to select the &amp;amp;quot;User Defined&amp;amp;quot; option in the &amp;amp;quot;Radiator&amp;amp;quot; section of the Transmitter Dialog. You can do this either at the time of creating a transmitter set, or afterwards by opening the property dialog of the transmitter set. In the &amp;amp;quot;Custom Pattern Parameters&amp;amp;quot;, click the '''Import Pattern''' button to set the path for the radiation data file. This opens up the standard Windows Open dialog, with the default file type or extension set to &amp;amp;quot;.RAD&amp;amp;quot;. Browse your folders to find the right data file. A radiation pattern file usually contains the value of &amp;amp;quot;Total Radiated Power&amp;amp;quot; in its file header. This is used by default for power calculations in the SBR simulation. However, you can check the box labeled &amp;amp;quot;'''Custom Power'''&amp;amp;quot; and enter a value for the transmitter power in Watts. EM.Cube can also rotate the imported radiation pattern arbitrarily. In this case, you need to specify the '''Rotation''' angles in degrees about the X-, Y- and Z-axes. Note that these rotations are performed sequentially and in order: first a rotation about the X-axis, then a rotation about the Y-axis, and finally a rotation about the Z-axis. &lt;br /&gt;
&lt;br /&gt;
[[File:PROP19(1).png]] [[File:PROP20(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Transmitter dialog with a user defined radiator selected.&lt;br /&gt;
&lt;br /&gt;
=== Multiple Transmitters vs. Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulations are fully coherent and 3D-polarimetric. This means that the phase and polarization of all the rays are maintained and processed during their bounces in the scene. Your propagation scene can have more than one transmitter. During an SBR simulation, all the rays emanating from all the transmitters are traced in the propagation scene. All the received rays at a given receiver location are summed coherently and vectorially. This is based on the principle of linear superposition. All the transmitters belonging to the same transmitter set have the same radiation properties. They are either parallel short dipole radiators with the same current amplitudes and phases, or parallel user defined radiators with identical radiation patterns. As these transmitters are placed at different spatial locations, they effectively form an antenna array with identical elements. The array factor is simply determined by the coordinates of the base points. If you want to have different amplitude or phases, then you need to define different transmitter sets.&lt;br /&gt;
&lt;br /&gt;
If that radiators are indeed the elements of an actual antenna array with a half wavelength spacing or so, we recommend that you import the radiation pattern of the array structure instead and replace the whole multi-radiator system with a single point transmitting radiator in your propagation scene. This case is usually encountered in MIMO systems, and using an equivalent point transmitter is an acceptable approximation because the total size of the array aperture is usually much smaller than the dimensions of your propagation scene and its representative length scales. In that case, you need to position the equivalent point radiator at the radiation center of the antenna array. This depends on the physical structure of the antenna array. However, keep in mind that any reasonable guess may still provide a good approximation without any significant error in the received ray data.    &lt;br /&gt;
&lt;br /&gt;
=== Defining Receiver Sets ===&lt;br /&gt;
&lt;br /&gt;
Receivers act as observables in a propagation scene. The objective of a SBR simulation is to calculate the far-zone electric fields and the total received power at the location of a receiver. In that sense, receivers indeed act as field observation points. You need to define at least one receiver in the scene before you can run a SBR simulation. You define the receivers of your scene by associating them with the base sets you have already defined in the project workspace. Unlike transmitters that usually one or few, a typical propagation scene may involve a large number of receivers. To generate a wireless coverage map, you need to define an array of points as your base set.    &lt;br /&gt;
&lt;br /&gt;
To define a new Receiver Set, go to the Observables section of the Navigation Tree, right click on the '''Receivers''' item and select '''Insert Receiver...''' A dialog opens up that contains a default name for the new Receiver Set as well as a dropdown list labeled '''Select Radiator Set'''. In this list you will see all the available base sets that you have already define in the project workspace. Select and designate the desired base set as the receiver set. Note that if the base set contains more than one point, all of them are designated as receivers. After defining a receiver set, the points change their color to the receiver color, which is yellow by default. The first element of the set is represented by a larger ball of the same color indicating that it is the selected receiver in the scene. The Receiver Set Dialog is also used to access individual receivers of the set for data visualization at the end of a simulation. At the end of an SBR simulation, the button labeled &amp;amp;quot;Show Ray Data&amp;amp;quot; becomes enabled. Clicking this button opens the Ray Data Dialog, where you can see a list of all the received rays at the selected receiver and their computed characteristics.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP21(1).png]] [[File:PROP22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Receiver dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Field Sensors ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|[[Propagation Module]]'s Field Sensor dialog]]&lt;br /&gt;
As an asymptotic electromagnetic field solver, the SBR simulation engine can compute the electric and magnetic field distributions in a specified plane. In order to view these field distributions, you must first define field sensor observables before running the SBR simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear. &lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.   &lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a SBR simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|E_{tot}|} = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|H_{tot}|} = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Computing Radiation Patterns In SBR ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
== Scene Discretization &amp;amp;amp; Adjustment ==&lt;br /&gt;
&lt;br /&gt;
=== The Need For Discretization Of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
In a typical SBR simulation, a ray is traced from the location of the source until it hits a scatterer. The SBR method assumes that the ray hits either a flat facet of the scatterer or one of its edges. In the case of hitting a flat facet, the specular point is used to launch new reflected and transmitted rays. The surface of the facet is treated as an infinite dielectric medium interface, at which the reflection and transmission coefficients are calculated. In the case of hitting an edge, new diffracted rays are generated in the scene. However, only those who reach a nearby receiver in their line of sight are ever taken into account. In other words, diffractions are treated locally.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to draw any type of surface or solid CAD objects under impenetrable and penetrable surface groups. Some of these objects have flat faces such as boxes, pyramids, rectangle or triangle strips, etc. Some others contain curved surfaces or curved boundaries such as cylinders, cones, etc. All the non-flat surfaces have to be discretized in the form of a collection of smaller flat facets. EM.Cube uses a triangular surface mesh generator to discretize the penetrable and impenetrable [[Surface Objects|surface objects]] of your propagation scene. This mesh generator is very similar to the ones used in EM.Cube's two other modules: MoM3D and Physical Optics (PO). &lt;br /&gt;
&lt;br /&gt;
You can build a variety of surface and [[Solid Objects|solid objects]] using EM.Cube's native &amp;amp;quot;Curve&amp;amp;quot; CAD objects like lines, polylines, circles, etc. You can use tools like Extrude, Loft, Strip-Sweep, Pipe-Sweep, etc. to transform curves into surface or [[Solid Objects|solid objects]]. '''However, keep in mind that all the &amp;amp;quot;Curve&amp;amp;quot; CAD objects are ignored by the SBR mesh generator and are therefore not sent to the simulation engine.'''&lt;br /&gt;
&lt;br /&gt;
=== Viewing SBR Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can view and examine the discretized version of your scene objects as they are sent to the SBR simulation engine. To view the mesh, click the '''Mesh''' [[File:mesh_tool.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''', or use the keyboard shortcut '''Ctrl+M'''. A triangular surface mesh of your physical structure appears in the project workspace. In this case, EM.Cube enters it mesh view mode. You can perform view operations like rotate view, pan, zoom, etc. But you cannot select objects, or move them or edit their properties. To get out of the Mesh View and return to EM.Cube's Normal View, press the '''Esc Key''' of the keyboard, or click the Mesh button of the Simulate Toolbar once again, or go to the Simulate Menu and deselect the '''Discretization &amp;amp;gt;''' '''Show Mesh''' item.&lt;br /&gt;
&lt;br /&gt;
You can adjust the mesh resolution and increase the geometric fidelity of discretization by creating more and finer triangular facets. On the other hand, you may want to reduce the mesh complexity and send to the SBR engine only a few coarse facets to model your buildings. To adjust the mesh resolution, open the Mesh Settings Dialog by clicking the '''Mesh Settings''' [[File:mesh_settings.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt;''' '''Mesh Settings...'''. This dialog provides a single parameters: '''Edge Length'''., which has a default value of 100 project units. If you are already in the Mesh View Mode and open the Mesh Settings Dialog, you can see the effect of changing the edge length using the '''Apply''' button. Click OK to close the dialog.&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules that express the default mesh density based on the wavelength, the resolution of the SBR mesh generator is expressed in project length units. The default edge length value of 100 units might be too large for non-flat objects. You may have to use a lower value to capture the curvature of your curved structures adequately. &lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-29.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Special Discretized Object Types ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, terrain objects are represented by and saved as special &amp;amp;quot;Tessellated&amp;amp;quot; objects with quadrilateral cells. This is true of terrain objects that you create yourself using EM.Cube's Terrain Generator as well as all the terrain objects that you import from external files to your project. The center of each cell represents the terrain elevation at that point. Tessellated objects are considered as discretized objects by EM.Cube and they are not meshed one more time by the SBR mesh generator. Each quadrilateral cell is divided into two triangular cells before being passed to the SBR simulation engine. Therefore, when using EM.Cube's Terrain Generator to create a new terrain object, you have to pay special attention to the resolution of the terrain object as it determines the total number of terrain facets sent to the simulation engine. A high resolution terrain, although looking better and more realistic, may easily lead to an enormous computational problem.&lt;br /&gt;
&lt;br /&gt;
You can use EM.Cube's &amp;amp;quot;Polymesh&amp;amp;quot; tool to discretize solid and surface CAD objects. You can manually control the mesh characteristics of polymesh objects including inserting new nodes on faces and edges or deleting existing nodes. In addition, EM.Cube's Solid Generator and Surface Generator tools create ploymesh solids and surfaces, respectively. Like tessellated object, polymesh objects are also considered as discretized objects by EM.Cube and they are not meshed again by the SBR mesh generator.   &lt;br /&gt;
&lt;br /&gt;
=== SBR Mesh Rules &amp;amp;amp; Considerations ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
=== Adjusting Block Elevation On Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, buildings and all other CAD objects are initially created on the XY plane by default. In other words, the Z-coordinate of the local coordinate system (LCS) of all blocks is set to zero until you change them. As long as you use the global ground, all is fine as your buildings are seated on the ground. When your propagation scene has an irregular terrain, you want to place your buildings on the terrain and not buried under it. Buildings in EM.Cube are not adjusted to the terrain elevation automatically. You need to instruct EM.Cube to do so.&lt;br /&gt;
&lt;br /&gt;
To update the building positions and adjust their elevation to the underlying terrain, right click on the '''Terrain''' item of the Navigation Tree and select '''Adjust Scene Elevation''' from the context menu. All the blocks in the scene are automatically elevated in the Z direction such that their bases sit on the terrain. In effect, all the blocks are translated along the global Z axis by proper amounts such that their local Z coordinate equals the Z-elevation of the underlying terrain object. This feature is particularly useful if you change the location of the terrain or import a new terrain after the blocks have been created.&lt;br /&gt;
&lt;br /&gt;
Note: You have to make sure that the resolution of your terrain, its fluctuation scale and building dimensions are all comparable. Otherwise, on a high-resolution, rapidly varying terrain, you will have buildings whose bottoms are in contact with the terrain only at a few points and parts of them hang in the air.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_adjust1_tn.png|400px]] [[File:prop_adjust2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Scene with Buildings and Terrain Before and After Adjusting Elevation&lt;br /&gt;
&lt;br /&gt;
=== Transmitters &amp;amp;amp; Receivers Above An Irregular Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, all the transmitters and receivers are tied up with point objects in the project workspace. These point objects are grouped and organized in base sets. When you move the point objects or change their coordinates, all of their associated transmitters or receivers immediately follow them to the new location. For example, you usually define a grid of receivers using a base set that is made up of a uniformly spaced array of points and spread them in your scene. All of these receivers have the same height because their associated base points all have the same Z-coordinate. When your receivers are located above a flat terrain like the global ground, their Z-coordinates are equal to their height above the ground, as the terrain elevation is fixed and equal to zero everywhere. The same is true for transmitters, too.   &lt;br /&gt;
&lt;br /&gt;
In many propagation modeling problems, your transmitters and receivers may be located above an irregular terrain with varying elevation across the scene. In that case, you may want to place your transmitters or receivers at a certain height above the underlying ground. The Z-coordinate of a transmitter or receiver is now the sum of the terrain elevation at the base point and the specified height. EM.Cube gives you the option to adjust the transmitter and receiver sets to the terrain elevation. This is done for individual transmitter sets and individual receiver sets. At the top of the Transmitter Dialog there is a check box labeled &amp;amp;quot;'''Adjust Tx Sets to Terrain Elevation'''&amp;amp;quot;. Similarly, at the top of the Receiver Dialog there is a check box labeled &amp;amp;quot;'''Adjust Rx Sets to Terrain Elevation'''&amp;amp;quot;. These boxes are unchecked by default. As a result, your transmitter sets or receiver sets coincide with their associated base points in the project workspace. If you check these boxes and place a transmitter set or a receiver set above an irregular terrain, the transmitters or receivers are elevated from the location of their associated base points by the amount of terrain elevation as can be seen in the figure below.   &lt;br /&gt;
&lt;br /&gt;
To better understand why there are two separate sets of points in the scene, note that a point array (CAD object) is used to create a uniformly spaced base set. The array object always preserves its grid topology as you move it around the scene. However, the transmitters or receivers associated with this point array object are elevated above the irregular terrain and no longer follow a strictly uniform grid. If you move the base set from its original position to a new location, the base points' topology will stay intact, while the associated transmitters or receivers will be redistributed above the terrain based on their new elevations.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_txrx1_tn.png|400px]] [[File:prop_txrx2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Transmitters and receivers adjusted above an uneven terrain and their associated base sets.&lt;br /&gt;
&lt;br /&gt;
== Running A SBR Simulation ==&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] offers three types of ray tracing simulations:&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
An SBR analysis is the simplest ray tracing simulation and involves the following steps:&lt;br /&gt;
&lt;br /&gt;
# Set the unit of project scene and the frequency of operation. Note that EM.Cube's default project unit is millimeter. When working with the [[Propagation Module]], pay attention to the project unit. Radio propagation problems usually require meter, mile or kilometer as the project unit.&lt;br /&gt;
# Create the blocks and draw the buildings at the desired locations.&lt;br /&gt;
# Keep the default ray domain and accept the default global ground or change its material properties.&lt;br /&gt;
# Define the base sets (at least one for the transmitter and one for the receiver).&lt;br /&gt;
# Define the transmitter and receiver(s) using the available base sets.&lt;br /&gt;
# Run the SBR simulation engine.&lt;br /&gt;
# Visualize the coverage map and plot other data.&lt;br /&gt;
&lt;br /&gt;
You can access the [[Propagation Module]]'s run dialog by clicking the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or by selecting '''Simulate &amp;amp;gt; Run...''' or using the keyboard shortcut '''Ctrl+R'''. When you click the '''Run''' button, a new window opens up that reports the different stages of the SBR simulation and indicates the progress of each stage. After the SBR simulation is successfully completed, a message pops up and prompts the completion of the process.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== SBR Simulation Parameters ===&lt;br /&gt;
&lt;br /&gt;
There are a number of SBR simulation settings that can be accessed and changed from the SBR Settings Dialog. To open this dialog, click the button labeled '''Settings''' on the right side of the '''Select Engine''' dropdown list in the Run Dialog. EM.Cube's SBR simulation engine allows you to separate the physical effects that are calculated during a ray tracing process. You can selectively enable or disable '''Ray Reflection''', '''Ray Transmission''' and '''Ray Diffraction'''. By default, all three effects are checked and included in the computations. Separating these effects sometimes help you better analyze your propagation scene and understand the impact of various blocks in the scene.&lt;br /&gt;
&lt;br /&gt;
EM.Cube requires a finite number of ray bounces for each original ray emanating from a transmitter. This is very important in situations that may involve resonance effects where rays get trapped among certain group of surfaces and may bounce back and forth indefinitely. This is set using the box labeled &amp;amp;quot;'''Max No. Ray Bounces'''&amp;amp;quot;, which has a default value of 10. Note that the maximum number of ray bounces directly affects the computation time as well as the size of output simulation data files. This can become critical for indoor propagation scenes, where most of the rays undergo a large number of reflections.   &lt;br /&gt;
&lt;br /&gt;
As rays travel in the scene and bounce from surfaces, they lose their power and their amplitudes diminish. From a practical point of view, only rays that have power above the receiver sensitivity threshold can be effectively received. Therefore, all the rays whose power fall below a specified power threshold are discarded. The '''Ray Power Threshold''' is specified in dBm and has a default value of -100dBm. Keep in mind that the value of this threshold directly affects the accuracy of the simulation results as well as the size of the output data file.&lt;br /&gt;
&lt;br /&gt;
You can also set the '''Angular Resolution''' of the transmitter rays in degrees. By default, every transmitter emanates equi-angular ray tubes at a resolution of 1 degree. Lower angular resolutions larger than 1° speed up the SBR simulation significantly, but they may compromise the accuracy. Higher angular resolutions less than 1° increase the accuracy of the simulating results, but they also increase the computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP13.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s SBR Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== The Coverage Map ===&lt;br /&gt;
&lt;br /&gt;
If the associated radiator set is isotropic, so will be the transmitter set. By default, an isotropic transmitter has vertical polarization. You can use the '''Polarization''' radio button to select one of the two options: '''Vertical''' or '''Horizontal'''. If the associated radiator set consists of '''Short Dipole''' or '''User Defined''' radiators, it is indicated in the transmitter property dialog. In the case of a short dipole radiator, you can set a value for the dipole current in Amperes. The radiation resistance of a short dipole of length ''dl'' is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; R_r = 80\pi^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:eqngr6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The radiated power of a short dipole carrying a current I&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; P_{rad} = \frac{1}{2} R_r |I_0|^2 = 40\pi^2 |I_0|^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:shortdipole.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For isotropic and user defined radiators you can set the '''Input Power''' and '''Phase''' of a transmitter set in Watts and degrees, respectively. This can be accessed from the '''Transmitter Chain''' dialog, which will be described in detail in the next section. The radiation pattern of the associated radiator set is normalized and used in conjunction with the input power value to create a weighted distribution of transmitted rays. In certain cases like hybrid simulations, you may want to use the actual values of the far field to define the transmitter power rather than a normalized radiation pattern. Note that the pattern (.RAD) file contains the value of total radiated power in its header. In this case, check the box labeled '''&amp;amp;quot;Calculate Power From Radiation Pattern&amp;amp;quot;'''. This is calculated directly from the complex &amp;amp;theta; and &amp;amp;phi; components of the far field data by integrating them over the entire space (4&amp;amp;pi; solid angle). Note that this option is available only when the radiator is of the User Defined type. When this box is checked, the transmitter chain button is grayed out. By default, an isotropic transmitter emanates rays uniformly in all directions at the angular resolution specified by the user. A transmitter with a user defined associated radiator may represent a highly directional radiation pattern with the main beam pointing in a certain direction. You can additionally force and limit the '''Angular Extents''' of rays to a certain solid angle around the transmitter. This is especially useful and computationally efficient when the transmitter is on one side of the scene, and all the scatterers and receivers are on the other side. In this case, there is no need to generate rays in all directions. To limit the angular extents of rays, define the Start and End values for both Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles. The value of the angular resolution of the rays can be changed from the Run Dialog as will be discussed later.&lt;br /&gt;
&lt;br /&gt;
In a regular SBR simulation, you have a transmitter and one or more arrays of receivers in your scene. At the end of the simulation, you can visualize the coverage map of the transmitter over the receiver sets. A coverage map shows the total '''Received Power''' by each of the receivers and is visualized as a color-coded intensity plot. You can visualize the coverage maps of individual receiver sets. At the end of a SBR simulation, each Received Power Coverage Map is listed under the receiver set's name in the Navigation Tree. To display a coverage map, simply click on its entry in the Navigation Tree. The coverage map plot appears in the Main Window overlaid on the scene. A legend box on the right shows the color scale and units (dB). The 3-D coverage maps are displayed as horizontal confetti above the receivers. If the receivers are packed close to each other, you will see a continuous confetti map. If the receivers are far apart, you will see individual colored squares. You can also visualize coverage maps as colored 3-D cubes. This may be useful when you set up your receivers in a vertical arrangement or the scene has a highly uneven terrain. To change the type of coverage map visualization, open the receiver set's property dialog and select the desired option for '''Coverage Map: Confetti''' or '''Cube''' in the '''&amp;amp;quot;Visualization Options&amp;amp;quot;''' section of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run11_tn.png|400px]] [[File:prop_run12_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Received power coverage map: (Left) confetti style, and (Right) cube style.&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the coverage map by right clicking on its entry in the Navigation Tree and selecting '''Properties...''' or by double-clicking on the legend box. In the Output Plot Settings dialog, you can choose from one of three Color Map options: '''Default''', '''Rainbow''' and '''Grayscale'''. The visualization plot uses default values for the color scale. In the section titled &amp;amp;quot;Limits&amp;amp;quot;, you can choose the radio button labeled '''User Defined'''. Then, you have to enter new values for the '''Lower''' and '''Upper''' Limits of the plot. You can also show or hide the Legend Box or change its '''Background''' and '''Foreground''' colors by clicking the buttons provided for this purpose.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run4.png]]&lt;br /&gt;
&lt;br /&gt;
Output Plot Settings&lt;br /&gt;
&lt;br /&gt;
=== The Ray Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a SBR simulation, each receiver receives a number of rays. Some receivers may not receive any rays at all. You can visualize all the rays received by a certain receiver from the active transmitter of the scene. To do this, right click the '''Receivers''' item of the Navigation Tree. From the context menu select '''Show Received Rays'''. All the rays received by the currently selected receiver of the scene are displayed in the scene. The rays are identified by labels, are ordered by their power and have different colors for better visualization. You can display the rays for only one receiver at a time. The receiver set property dialog has a list of all the individual receivers belonging to that set. To display the rays received by another receiver, you have to change the '''Selected Receiver''' in the receiver set's property dialog. If you keep the mouse focus on this dropdown list and roll your mouse scroll wheel, you can scan the selected receivers and move the rays from one receiver to the next in the list. To remove the visualized rays from the scene, right click the Receivers item of the Navigation Tree again and from the context menu select '''Hide Received Rays'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run5_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Visualization of received rays at the location of the selected receiver.&lt;br /&gt;
&lt;br /&gt;
You can also view the ray parameters by opening the property dialog of a receiver set. By default, the first receiver of the set is always selected. You can select any other receiver from the drop-down list labeled '''Selected Receiver'''. If you click the button labeled '''Show Ray Data''', a new dialog opens up with a table that contains all the received rays at the selected receiver and their parameters:&lt;br /&gt;
&lt;br /&gt;
* Delay is the total time delay that a ray experiences travelling from the transmitter to the receiver after all the reflections, transmissions and diffractions and is expressed in nanoseconds.&lt;br /&gt;
* Ray Field is the received electric field at the receiver location due to a specific ray and is given in dBV/m.&lt;br /&gt;
* Ray Power is the received power at the receiver due to a specific ray and is given in dBm.&lt;br /&gt;
* Angles of Arrival are the &amp;amp;theta; and &amp;amp;phi; angles of the incoming ray at the local spherical coordinate system of the receiver.&lt;br /&gt;
&lt;br /&gt;
The Ray Data Dialog also shows the '''Total Received Power''' in dBm and '''Total Received Field''' in dBV/m due to all the rays received by the receiver. You can sort the rays based on their delay, field, power, etc. To do so, simply click on the grey column label in the table to sort the rays in ascending order based on the selected parameter. You can also select any ray by clicking on its '''ID''' and highlighting its row in the table. In that case, the selected rays is highlighted in the Project Workspace and all the other rays become thin (faded).&lt;br /&gt;
&lt;br /&gt;
Note: The rays are summed up coherently at the receiver.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run6_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Analyzing a selected ray from the ray data dialog.&lt;br /&gt;
&lt;br /&gt;
=== Plotting Other Simulation Results ===&lt;br /&gt;
&lt;br /&gt;
Besides visualizing the coverage map and received rays in the EM.CUBE's [[Propagation Module]], you can also plot the '''Path Loss''' of all the receivers belonging to a receiver set as well as the '''Power Delay Profile''' of individual receivers. To plot these data, go the '''Observables''' section of the Navigation Tree and right click on the '''Receivers''' item. From the context menu, select '''Plot Path Loss''' or '''Plot Power Delay Profile''', respectively. The path loss data between the active transmitter and all the receivers belonging to a receiver set are plotted on a Cartesian graph. The horizontal axis of this graph represents the index of the receiver. Power Delay Profile is a bar chart that plots the power of individual rays received by the currently selected receiver versus their time delay. If there is a line of sight (LOS) between a transmitter and receiver, the LOS ray will have the smallest delay and therefore will appear first in the bar chart. Sometimes you may have several rays arriving at a receiver at the same time, i.e. all with the same delay, but with different power level. These will appear as stacked bars in the chart.&lt;br /&gt;
&lt;br /&gt;
You can also plot the path loss and power delay profile graphs and many others from EM.CUBE's data manager. You can open data manager by clicking the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or by selecting '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or by right clicking on the '''Data Manager''' item of the Navigation Tree and selecting Open Data Manager... from the contextual menu or by using the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the theta and phi angles of arrival and departure of the selected receiver. You can select any data file by clicking and highlighting its '''ID''' in the table and then clicking the '''Plot''' button.&lt;br /&gt;
&lt;br /&gt;
=== Output Data Files ===&lt;br /&gt;
&lt;br /&gt;
At the end of an SBR simulation, the results are written into a main output data file with the reserved name of SBR_Results.RTOUT. This file has the following format:&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Receiver Number&lt;br /&gt;
* Receiver Base X, Y , Z Coordinates&lt;br /&gt;
* Receiver Height&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
Number of Rays&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Ray Number&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Arrival in deg&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Departure in deg&lt;br /&gt;
* Delay in nsec&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''') &amp;amp;amp; Imag('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''')&lt;br /&gt;
* Power&lt;br /&gt;
&lt;br /&gt;
The angles of arrival are the &amp;amp;theta; and &amp;amp;phi; angles of a received ray measured in degrees and are referenced in the spherical coordinate systems centered at the location of the receiver. The angles of departure for a received ray are the &amp;amp;theta; and &amp;amp;phi; angles of the originating transmitter ray, measured in degrees and referenced in the spherical coordinate systems centered at the location of the active transmitter, which eventually arrives at the receiver. The total time delay is measured in nanoseconds between t = 0 nsec at the time of launch from the transmitter location till being received at the receiver location. The last four columns show the real and imaginary parts of the received electric fields with vertical and horizontal polarizations, respectively. The complex field values are normalized in a way that when their magnitude is squared, it equals the received ray power. If the active transmitter is an isotropic radiator with either a vertical or horizontal polarization, then the field components corresponding to the other polarization will have zero entries in the output data file.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run8_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A typical SBR output data file.&lt;br /&gt;
&lt;br /&gt;
=== Running A Frequency Sweep With SBR ===&lt;br /&gt;
&lt;br /&gt;
By default, you run a single-frequency simulation in EM.CUBE's [[Propagation Module]]. You set the operational frequency of a SBR simulation in the project's '''Frequency Dialog''', which can be accessed in a number of ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''Frequency''' [[File:freq_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]]'''Frequency Settings...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+F'''.&lt;br /&gt;
# By double clicking the frequency section (box) of the '''Status Bar'''.&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
[[File:prop_freq.png]]    [[File:prop_run10.png]]&lt;br /&gt;
&lt;br /&gt;
(Left) Project's frequency dialog and (Right) the frequency settings dialog.&lt;br /&gt;
&lt;br /&gt;
You can also select the '''Frequency Sweep''' option in the '''Simulation Mode''' drop-down list of the '''Run Dialog'''. Click the '''Settings...''' button on the right side of this dropdown list to open up the Frequency Settings Dialog. Based on the original values of the project center frequency and bandwidth, the '''Start Frequency''' and '''End Frequency''' have default values. You can also change the '''Number of Samples'''. Once you click the '''Run''' button, EM.CUBE performs a frequency sweep by assigning each of the frequency samples as the current operational frequency and running the SBR simulation engine at that frequency. All the simulation data at all frequency samples are saved into the output data files including &amp;amp;quot;SBR_results.RTOUT&amp;amp;quot;. After the completion of a frequency sweep simulation, as many coverage maps as the number of frequency samples are generated and added to the Navigation Tree under the Receiver Set's entry. You can click on each of the coverage maps corresponding to each of the frequency samples and visualize it in the project workspace. You can also animate the coverage maps. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. The coverage maps start to animate by their order on the Navigation Tree. Once the entire list is displayed sequentially, it starts all over again from the beginning of the list. During the animation, the '''Animation Controls''' dialog appears at the lower right corner of the screen. This dialog has a number of buttons for pause/resume, step forward/backward, and step to the end/start. The title of each coverage map is shown in the box labeled '''Sample''' as it is displayed in the main window. You can also change the speed of animation. The default frame duration has a value of 300 (3x100) milliseconds. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run13.png]]    [[File:prop_run14.png]]&lt;br /&gt;
&lt;br /&gt;
Multiple coverage maps on the Navigation Tree at the end of a frequency sweep and starting an animation from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run15_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Animation controls dialog in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep with SBR ===&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run24.png|thumb|300px|EM.CUBE's variable dialog]]&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run23.png|thumb|250px|Dialog for defining new variables]]&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE, all the CAD object properties as well as certain source, material and mesh parameters can be assigned as [[variables]]. [[Variables]] are defined to control and vary the values of such parameters either for editing purposes or to run parametric sweep or [[optimization]]. Variable are defined using the '''[[Variables]] Dialog''', which can be accessed in the three ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''[[Variables]]''' [[File:variable_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]] '''[[Variables]]...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+B'''.&lt;br /&gt;
&lt;br /&gt;
The [[variables]] dialog is initially empty. To add a new variable, click the '''Add''' button to open up the '''Add Variable/Syntax Dialog'''. In this dialog you have to type in a name for the new variable and choose a type. The default type is '''Uniformly Spaced Samples'''. You also need to specify the '''Start''', '''Stop''' and '''Step''' values for the variable. In the figure below, a variable called &amp;amp;quot;Tx_Height&amp;amp;quot; is defined that varies between 2 and 10 with equal steps of 2. This means the sample set {2,4,6,8,10}. When you return to the [[variables]] dialog, the syntax of the new variable is shown as 2:10:2. The last number in this syntax is always the variable step. In this example, this variable is going to be used to control the height of the transmitter in a propagation scene.&lt;br /&gt;
&lt;br /&gt;
Next, you have to attach the variable to the CAD object. In this case, the CAD object is the point object that represents the transmitter's radiator. To attach a variable to a CAD object, open the object's property dialog and type in the name of the variable as the value of a property or parameter. In this case, the variable Tx_Height is going to control the Z-Coordinate of the point object. Once the value of the object parameter is replaced by the name of an already defined variable, it is updated with the current value of that variable. In the case of a variable of &amp;amp;quot;Uniformly Spaced Samples&amp;amp;quot; type, the current value is the start value. This value will be incrementally varied during a parametric sweep simulation process. Note that a variable can take a fixed value or a discrete set of values, too. You can always open the [[variables]] dialog and change the value or syntax of any variable. To make a new or modified value effective, click the '''Apply''' button of the [[variables]] dialog. You can test the values by performing a '''Dry Run''' of the selected variable. This runs an animation of the project workspace as the value of the variable changes and all the related CAD objects are updated accordingly. Note that you can attach the same variable to more than one CAD object property or to the properties of different objects. You can also define multiple values or syntaxes to the same variable. To do so, open the '''Add Variable/Syntax Dialog''', and instead of typing in a new variable name, choose an existing variable name from the '''Name''' dropdown list. This will add a new value or syntax to the existing syntax(es) of the selected variable. When you return to the [[variables]] dialog, [[variables]] with more than one value or syntax will have a dropdown list in the '''Syntax''' column. You can choose any of these values or syntaxed at any time and make the change effective by clicking the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run25.png]]&lt;br /&gt;
&lt;br /&gt;
Replacing the value of a CAD object parameter with a variable name.&lt;br /&gt;
&lt;br /&gt;
To run a parametric sweep, open the '''Run Dialog''' and select the '''Parametric Sweep''' option in the '''Simulation Mode''' drop-down list. If you have not defined any [[variables]] in the project, the box in the '''[[Variables]]''' row before the '''View''' will be red. You have to turn it into green before you can run a simulation. By clicking the '''View''' button, you can open up the [[variables]] dialog from here. Once you click the '''Run''' button, EM.CUBE performs a parametric sweep by incrementally varying the values of all the defined [[variables]] from their start to stop values at the specified steps and updating all the related CAD objects. After the completion of a parametric sweep simulation, as many coverage maps as the total number of variable samples are generated and added to the Navigation Tree under the receiver set's entry. You can click on each of the coverage maps and visualize it in the project workspace. You can also animate the coverage maps sequentially. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run26.png]]&lt;br /&gt;
&lt;br /&gt;
Choosing parametric sweep as the simulation mode in the run dialog. Note that one variable has been defined and EM.CUBE is ready to run the simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run27_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The coverage map of the scene at the end of a parametric sweep where the sweep variable is the transmitter height.&lt;br /&gt;
&lt;br /&gt;
=== Statistical Analysis of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's coverage maps display the received power at the location of all the receivers. The receivers together from a set/ensemble, which might be uniformly spaced or distributed across the propagation scene or may consist of randomly scattered radiators. Every coverage map shows the '''Mean''' and '''Standard Deviation''' of the received power for all the receivers involved. These information are displayed at the bottom of the coverage map's legend box and are expressed in dB.&lt;br /&gt;
&lt;br /&gt;
In the [[Propagation Module]], when you ran a sweep simulation (frequency, transmitter or parametric), you also have the option to generate two additional coverage maps: one for the mean of all the individual sample coverage maps and another for their standard deviation. To do so, in the '''Run Dialog''', check the box labeled '''&amp;amp;quot;Create Mean and Standard Deviation Coverage Maps&amp;amp;quot;'''. Note that the mean and standard deviation values displayed on the individual coverage maps correspond to the spatial statistics of the receivers in the scene, while the mean and standard deviation coverage maps correspond to frequency, transmitter or variable sets defined for the sweep simulation. Also, note that both of the mean and standard deviation coverage maps have their own spatial mean and standard deviation values expressed in dB at the bottom of their legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run21_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The mean coverage map at the end of a transmitter sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run22_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The standard deviation coverage map at the end of a transmitter sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Terrano</id>
		<title>EM.Terrano</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Terrano"/>
				<updated>2013-06-14T14:25:00Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Ray Reflection &amp;amp; Transmission */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Taking out this picture for now for consistency&lt;br /&gt;
[[File:urban.png]]--&amp;gt;&lt;br /&gt;
EM.Terrano is a physics-based, site-specific, wave propagation modeling tool that enables engineers to quickly determine how radio waves propagate in urban, natural or mixed environments. The rapid growth of wireless communications along with the high costs associated with the design and deployment of effective wireless infrastructures underline a persistent need for computer aided communication network planning tools. Wireless engineers have long used simplistic statistical prediction models based on measurements that often exhibit considerable errors especially in areas having mixed building sizes.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Terrano has helped wireless engineers around the globe model the physical channel and the mechanisms by which radio signals propagate from transmitters to receivers. EM.Terrano’s advanced ray tracing simulator finds the dominant propagation paths specific to the site in question. It calculates the true signal characteristics at the actual locations using physical databases of the buildings and terrain at a given site, not those of a statistically average or representative environment. EM.Terrano’s ray tracer is based on the shoot-and-bounce-rays (SBR) method, which utilizes geometrical optics (GO) in combination with uniform theory of diffraction (UTD) models of building edges.&lt;br /&gt;
&lt;br /&gt;
The new EM.Terrano 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has created the opportunity to inject a host of new powerful features such as a highly customizable terrain generator, DEM terrain import, complex building constructions, and versatile interior wall arrangements for indoor propagation modeling. As a result of this seamless interface with EM.Cube's other modules, you can now model complex antenna systems in [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]], and generate antenna radiation patterns than can be used to model directional transmitters and receivers at the two ends of your propagation channel. Conversely, you can analyze a propagation scene in EM.Terrano and import the rays received at a certain receiver location as coherent plane wave sources to [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]]. You can also model periodic wall or ground structures using the periodic simulation capability of [[EM.Picasso]] or [[EM.Tempo]] and generate macromodels for their reflection and transmission coefficients as functions of the ray incidence angles. You can then define buildings or terrains in your propagation scene that are governed by such macromodels.&lt;br /&gt;
&lt;br /&gt;
== A Wireless Propagation Primer ==&lt;br /&gt;
Every wireless communication system involves a transmitter that transmits some sort of signal (voice, video, data, etc.), a receiver that receives and detects the transmitted signal, and a channel in which the signal is transmitted into the air and travels from the location of the transmitter to the location of the receiver. The channel is the physical medium in which the electromagnetic waves propagate. The successful design of a communication system depends on an accurate link budget analysis that determines whether the receiver receives adequate signal power to detect it against the background noise. The simplest channel is the free space. Real communication channels, however, are more complicated and involve a large number of wave scatterers. For example, in an urban environment, the obstructing buildings, vehicles and vegetation reflect, diffract or attenuate the propagating radio waves. As a result, the receiver receives a distorted signal that contains several components with different power levels and different time delays arriving from different angles.&lt;br /&gt;
&lt;br /&gt;
The different rays arriving at a receiver location create constructive and destructive interference patterns. This is known as the multipath effect. This together with the shadowing effects caused by building obstructions lead to channel fading. In many wireless applications, the total received power by the receiver is all that matters. In some others, the angle of arrival of the rays as well as their polarization are of immense interest. A fully polarimetric, coherent ray tracer like EM.Cube's Shooting-and-Bouncing-Rays (SBR) solver lets you compute and resolve all the rays received by a receiver including their power levels, time delays and angles of arrival.&lt;br /&gt;
&lt;br /&gt;
=== Free Space Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
In a free-space line-of-sight (LOS) communication system, the signal propagates directly from the transmitter to the receiver without encountering any obstacles (scatterers). Electromagnetic waves propagate in the form of spherical waves with a functional dependence of e&amp;lt;sup&amp;gt;j(&amp;amp;omega;&amp;lt;/sup&amp;gt;&amp;lt;sup&amp;gt;t-k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;R)&amp;lt;/sup&amp;gt;/R, where R is the distance between the transmitter and receiver, &amp;lt;math&amp;gt;\omega = 2\pi f&amp;lt;/math&amp;gt;, f is the signal frequency, &amp;lt;math&amp;gt;k_0 = \tfrac{\omega}{c} = \tfrac{2\pi}{\lambda}&amp;lt;/math&amp;gt;, c is the speed of light, and &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength at the operational frequency. By the time the signal arrives at the location of the receiver, it undergoes two changes. It is attenuated and its power drops by a factor of 1/R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, and additionally, it experiences a phase shift of &amp;lt;math&amp;gt;\tfrac{2\pi R}{\lambda_0}&amp;lt;/math&amp;gt;, which is equivalent to a time delay of R/c. The signal attenuation from the transmitter to the receiver is usually quantified by '''Path Loss''' defined as the ratio of the received signal power (P&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;) to the transmitted signal power (P&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;). Assuming isotropic transmitting and receiving radiators (i.e. radiating uniformly in all directions), the Path Loss in a free-space line-of-sight communication system is given by Friis’ formula:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = \left( \frac{\lambda_0}{4\pi R} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above formula assumes that the receiving antenna is polarization-matched. Normally, there is a polarization mismatch between the transmitting and receiving antennas. In the case of directional transmitting and receiving antennas, Friis’ formula takes the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = G_T G_R \left( \frac{\lambda_0}{4\pi R} \right)^2 ( \mathbf{ \hat{u}_T \cdot \hat{u}_R } )&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''u&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;''' and '''u&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''' are the unit polarization vectors of the transmitting and receiving antennas, and G&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt; and G&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; are their gains, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:los.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Line-of-Sight (LOS) Propagation Scenario.&lt;br /&gt;
&lt;br /&gt;
=== Multipath Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
Free-space line-of-sight communications is an ideal scenario that is typically used to model aerial or space applications. In ground-based systems, the presence of the ground as a very large reflecting surface affects the signal propagation to a large extent. Along the path from a transmitter to a receiver, the signal may also encounter many obstacles and scatterers such as buildings, vegetation, etc. In an urban canyon environment with many buildings of different heights and other scatterers, a line of sight between the transmitter and receiver can hardly be established. In such cases, the propagating signals bounce back and forth among the building surfaces. It is these reflected or diffracted signals that are often received and detected by the receiver. Such environments are referred to as “multipath”. The group of rays arriving at a specific receiver location experience different attenuations and different time delays. This gives rise to constructive and destructive interference patterns that cause fast fading. As a receiver moves locally, the receiver power level fluctuates sizably due to these fading effects.&lt;br /&gt;
&lt;br /&gt;
The use of statistical models for prediction of fading effects is widely popular among communication system designers. These models are either based on measurement data or derived from simplistic analytical frameworks. The statistical models often exhibit considerable errors especially in areas having mixed building sizes. In such cases, one needs to perform a physics-based, site-specific analysis of the propagation environment to accurately identify and establish all the possible signal paths from the transmitter to the receiver. This involves an electromagnetic analysis of the scene with all of its geometrical and physical details.  &lt;br /&gt;
&lt;br /&gt;
Link budget analysis for a multipath channel is a challenging task due to the large size of the computational domains involved. Typical propagation scenes usually involve length scales on the order of thousands of wavelengths. To calculate the path loss between the transmitter and receiver, one must solve Maxwell's equations in an extremely large space. Full-wave numerical techniques like the Finite Difference Time Domain (FDTD) method, which require a fine discretization of the computational domain, are therefore impractical for solving large-scale propagation problems. The practical solution is to use asymptotic techniques such as SBR, which utilize analytical techniques over large distances rather than a brute force discretization of the entire computational domain. Such asymptotic techniques, of course, have to compromise modeling accuracy for practical computation feasibility.&lt;br /&gt;
&lt;br /&gt;
[[File:multi1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A multipath propagation scene showing all the rays arriving at a particular receiver.&lt;br /&gt;
&lt;br /&gt;
=== The SBR Method ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] provides an asymptotic ray tracing simulation engine that is based on a technique known as Shooting-and-Bouncing-Rays (SBR). In this technique, propagating spherical waves are modeled as ray tubes or beams that emanate from a source, travel in space, bounce from obstacles and are collected by the receiver. As rays propagate away from their source (transmitter), they begin to spread (or diverge) over distance. In other words, the cross section or footprint of a ray tube expands as a function of the distance from the source. EM.Cube uses an accurate equi-angular ray generation scheme to that produces almost identical ray tubes in all directions to satisfy energy and power conservation requirements.&lt;br /&gt;
&lt;br /&gt;
When a ray hits an obstructing surface, one or more of the following phenomena may happen:&lt;br /&gt;
&lt;br /&gt;
# Reflection from the locally flat surface&lt;br /&gt;
# Transmission through the locally flat surface&lt;br /&gt;
# Diffraction from an edge between two conjoined locally flat surfaces&lt;br /&gt;
&lt;br /&gt;
EM.Cube discretizes all the objects of the scene into flat triangular facets. Obviously, rectangular and cubic objects preserve their geometric shapes through this discretization. Objects with curved surfaces such as cylinders, cones or spheres, are approximated by &amp;amp;quot;polymesh&amp;amp;quot; representations. The geometric fidelity of the resulting mesh depends on the specified mesh edge length. When a ray hits a triangular facet, the propagating spherical wave is approximated as a plane wave at the specular point. The reflection and transmission coefficients of the surface are calculated at the operational frequency and at the particular ray incident angle. &lt;br /&gt;
&lt;br /&gt;
A new reflected ray is generated at the specular point, which starts traveling and bouncing around in the scene. If the obstructing surface is penetrable, a second transmitted ray is generated and added to the scene. If the ray hits the edge of an obstacle, it is diffracted from that edge. This leads to the creation of a cone of new rays, which greatly complicate the computational problem. The Uniform Theory of Diffraction (UTD) is used to calculate the wedge diffraction coefficients at the edges of scattering blocks. Note that reflection, transmission and diffraction coefficients are all dependent on the polarization of the incident plane wave.&lt;br /&gt;
&lt;br /&gt;
A receiver may receive a large number of rays: direct line-of-sight rays from the transmitter, rays reflected or diffracted off the ground or terrain, rays reflected or diffracted from buildings or rays transmitted through buildings. Each received ray is characterized by its power, delay and angles of arrival, which are the spherical coordinate angles &amp;amp;theta; and &amp;amp;phi; of the incoming ray. The actual signal received and detected by the receiver is the superposition of all these rays with different power levels and different time delays. Most of the time, you will be interested in the coverage map of an area, which shows how much power is received by a grid of receivers spread over the area from a given fixed transmitter.&lt;br /&gt;
&lt;br /&gt;
=== Ray Reflection &amp;amp; Transmission ===&lt;br /&gt;
&lt;br /&gt;
[[File:reflect.png|thumb|350px|The Incident, Reflected and Transmitted Rays at the Interface Between Two Dielectric Media]]&lt;br /&gt;
&lt;br /&gt;
The incident, reflected and transmitted rays are each characterized by a triplet of unit vectors:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}, \hat{u}_{\perp}, \hat{k} } )&amp;lt;/math&amp;gt; representing the incident parallel polarization vector, incident perpendicular polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}', \hat{u}_{\perp}', \hat{k}' } )&amp;lt;/math&amp;gt; representing the reflected parallel polarization vector, reflected perpendicular polarization vector and reflected propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}'', \hat{u}_{\perp}'', \hat{k}'' } )&amp;lt;/math&amp;gt; representing the transmitted parallel polarization vector, transmitted perpendicular polarization vector and transmitted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The reflected ray is assumed to originate from a virtual image source point. The three triplets constitute three orthonormal basis systems. Below, it is assumed that the two dielectric media have permittivities &amp;amp;epsilon;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;epsilon;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, and permeabilities &amp;amp;mu;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;mu;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, respectively. A lossy medium with a conductivity &amp;amp;sigma; can be modeled by a complex permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = &amp;amp;epsilon;'&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; –j&amp;amp;sigma;/&amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. Assuming '''n''' to be the unit normal to the interface plane between the two media, and Z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;Omega; , the incident polarization vectors as well as all the reflected and transmitted vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp} = \frac{\hat{k} \times \hat{n}}{|\hat{k} \times \hat{n}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|} = \hat{u}_{\perp} \times \hat{k} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflected unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}' = \hat{k} - 2(\hat{k} \cdot \hat{n}) \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}' = \hat{u}_{\perp}' \times \hat{k}' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The transmitted unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}'' = \hat{n} \times a - \sqrt{1-a \cdot a} \; \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}'' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}'' = \hat{u}_{\perp}'' \times \hat{k}'' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{a} = (k_1/k_2) \mathbf{\hat{k} \times \hat{n}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_1 = k_0 \sqrt{\varepsilon_1 \mu_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_2 = k_0 \sqrt{\varepsilon_2 \mu_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_1 = Z_0 \sqrt{\mu_1 / \varepsilon_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_2 = Z_0 \sqrt{\mu_2 / \varepsilon_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sin\theta'' = \frac{k_1}{k_2}\sin\theta \text{ if } \sin\theta \le k_2/k_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml4.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml5.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflection coefficients at the interface are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penetration Through Thin Walls Or Surfaces ===&lt;br /&gt;
&lt;br /&gt;
In &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;, we assume that an incident ray gives rise to two rays, one is reflected at the specular point, and the other is transmitted almost in the same direction as the incident ray. The reflected ray is assumed to originate from a virtual image source point. Similar to the case of reflection and transmission at the interface between two dielectric media, here too we have three triplets of unit vectors, which all form orthonormal basis systems.&lt;br /&gt;
&lt;br /&gt;
[[File:thinwalltrans.png]]&lt;br /&gt;
&lt;br /&gt;
The Incident and Transmitted Rays through a Thin Wall&lt;br /&gt;
&lt;br /&gt;
The transmission coefficients are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\|} = \frac{(1-{\Gamma_{\|}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\|}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\perp} = \frac{(1-{\Gamma_{\perp}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\perp}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml21.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wedge Diffraction From Edges ===&lt;br /&gt;
&lt;br /&gt;
For the purpose of calculation of diffraction from building edges, we define a &amp;amp;quot;Wedge&amp;amp;quot; as having two faces, the 0-face and the ''n''-face. The wedge angle is a = (2-''n'')p, where the parameter ''n'' is required for the calculation of diffraction coefficients. All the diffracted rays lie on a cone with its vertex at the diffraction point and a wedge angle equal to the angle of incidence in the opposite direction. A diffracted ray is assumed to originate from a virtual image source point. Three triplets of unit vectors are defined as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_0, \hat{u}_l, \hat{t})}&amp;lt;/math&amp;gt; representing the unit vector normal to the edge and lying in the plane of the 0-face, the unit vector normal to the 0-face, and the unit vector along the edge, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f, \hat{u}_b, \hat{t})}&amp;lt;/math&amp;gt; representing the incident forward polarization vector, incident backward polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f', \hat{u}_b', \hat{t}')}&amp;lt;/math&amp;gt; representing the diffracted forward polarization vector, diffracted backward polarization vector and diffracted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The three triplets constitute three orthonormal basis systems. The propagation vector '''k'''' of the diffracted ray has to be constructed based on the diffraction cone as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{\hat{k}'} = \cos\phi_w \mathbf{\hat{u}_0} + \sin\phi_w \mathbf{\hat{u}_l} + &lt;br /&gt;
\mathbf{(\hat{k} \cdot \hat{t}) \hat{t}}, \quad 0 \le \phi_w \le \alpha&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the resolution of the angle &amp;amp;theta;&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt; is chosen to be the same as the resolution of the incident ray.&lt;br /&gt;
&lt;br /&gt;
[[File:diffract.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Incident Ray and Diffract Ray Cone at the Edge of a Building&lt;br /&gt;
&lt;br /&gt;
The other unit vectors for the incident and diffracted rays are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f = \frac{\hat{k} \times \hat{t}}{|\hat{k} \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b = \hat{k} \times \hat{u}_f } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f' = \frac{\hat{k}' \times \hat{t}}{|\hat{k}' \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b' = \hat{k}' \times \hat{u}_f' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml9.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The diffraction coefficients are calculated in the following way:&lt;br /&gt;
&lt;br /&gt;
[[File:frml11.png]]&lt;br /&gt;
&lt;br /&gt;
where ''F(x)'' is the Fresnel Transition function:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = 2j \sqrt{x} e^{jx} \int_{\sqrt{x}}^{\infty} e^{-j\tau^2} \, d\tau &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, we have&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
s = |\rho_D - \rho_S| \\&lt;br /&gt;
s' = |\rho_D - \rho_r|&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L = \frac{s s' \sin^2 \beta'}{s + s'} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\pm}(\nu) = 2\cos^2 \left( \frac{2n\pi N^{\pm} - \nu}{2} \right), \quad \nu = \phi \pm \phi' &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml10.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml13.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;N^{\pm}&amp;lt;/math&amp;gt; are the integers which most closely satisfy the equations &amp;lt;math&amp;gt; 2n\pi N^{\pm} - \nu = \pm \pi &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SBR As An Asymptotic EM Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulation engine can be used as a versatile and powerful asymptotic electromagnetic (EM) solver. If you compare EM.Cube's [[Propagation Module]] with its other computational modules, you will notice a lot of similarities. While other modules group objects primarily by their material properties, [[Propagation Module]] categorizes the types of obstructing surfaces. Besides sharing the same ray-surface interaction mechanisms, all the objects belonging to a surface group also share the same material properties. [[Propagation Module]] offers similar source types and similar observable types as the other computational modules. For instance, the Hertzian dipole sources used in a SBR simulation are identical to those offered in PO, MoM3D and Planar modules. The plane wave sources are identical across all computational modules. [[Propagation Module]]'s sensor field planes, far field observables (either radiation patterns or RCS) and Huygens surfaces are all fully compatible with EM.Cube's other computational modules.&lt;br /&gt;
&lt;br /&gt;
As an asymptotic EM solver, the SBR engine can be used to model large-scale electromagnetic radiation and scattering problems. An example of this kind is radiation of simple or complex antennas in the presence of large scattering platforms. You have to keep in mind that by using an asymptotic technique in place of a full-wave method, you trade computational speed and lower memory requirements for modeling accuracy. In particular, the SBR method cannot take into account the electromagnetic coupling effects among nearby radiators or scatterers. However, when your scene spans thousands of wavelengths, an SBR simulation might often prove to be your sole practical solution.  &lt;br /&gt;
&lt;br /&gt;
=== Novelties Of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine utilizes an intelligent ray tracing algorithm based on the concept of  k-dimensional trees. A k-d tree is a space-partitioning data structure for organizing points in a k-dimensional space. k-d trees are particularly useful for searches that involve multidimensional search keys such as range searches and nearest neighbor searches. In a typical large radio propagation scene, there might be a large number of rays emanating from the transmitter that may never hit any obstacles. For example, upward-looking rays in an urban propagation scene quickly exit the computational domain. Rays that hit obstacles on their path, on the other hand, generate new reflected and transmitted rays. The k-d tree algorithm traces all these rays systematically in a very fast and efficient manner. Another major advantage of k-d trees is the fast processing of multi-transmitters scenes. Unlike the previous versions of the SBR solver which could handle one transmitter at a time and would superpose all the resulting rays at the end of the simulation, the new SBR shoots rays from all the transmitters at the same time.   &lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine performs fully polarimetric and coherent SBR simulations with arbitrary transmitter antenna patterns. The new engine solves directly for the vectorial field components at the receiver locations or field observation points. This is far more rigorous than the previous versions of the SBR solver which primarily utilized ray power calculations based on the two vertical and horizontal polarizations. In other words, EM.Cube's new SBR engine is a truly asymptotic &amp;amp;quot;field&amp;amp;quot; solver. As a result, you can visualize the magnitude and phase of all six electric and magnetic field components at any point in the computational domain. For power calculations at the receiver location, an isotropic, polarization-matched, receiving antenna is assumed.       &lt;br /&gt;
&lt;br /&gt;
In most scenes, the buildings and the ground or terrain can be assumed to be made of homogeneous materials. These are represented by their electrical properties such as permittivity e and electric conductivity s. More complex scenes may involve a multilayer ground or multilayer building walls. In such cases, one can no longer use the simple reflection or transmission coefficient formulas for homogeneous medium interfaces. EM.Cube calculates the reflection and transmission coefficients of multilayer structures as functions of incident angle, frequency and polarization and uses them at the respective specular points.  &lt;br /&gt;
&lt;br /&gt;
=== Limitations of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
It is very important to keep in mind that SBR is an asymptotic electromagnetic analysis technique that is based on Geometrical Optics (GO) and the Uniform Theory of Diffraction (UTD). It is not a &amp;amp;quot;full-wave&amp;amp;quot; technique, and it does not solve Maxwell's equations directly or numerically. SBR makes a number of assumptions, chief among them, a very high operational frequency such that the length scales involved are much larger than the operating wavelength. Under this assumed regime, electromagnetic waves start to behave like optical rays. Virtually all the calculations in SBR are based on far field approximations. &lt;br /&gt;
&lt;br /&gt;
In order to maintain a high computational speed for urban propagation problems, EM.Cube's SBR solver ignores double diffractions. Recall that diffractions from edges give rise to a large number of new secondary rays. The power of diffracted rays drops much faster than reflected rays. EM.Cube ignores diffracted rays that are not detected by any receiver. In other words, an edge-diffracted ray does not diffract again from another edge. However, reflected and penetrated rays do get diffracted from edges just as rays emanated directly from the sources do.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Propagation Scene ==&lt;br /&gt;
&lt;br /&gt;
An EM.Cube propagation scene typically consists of several elements. At a minimum, you need a transmitter (Tx) at some location to launch rays into the scene and a receiver (Rx) at another location to receive and collect the incoming rays. A transmitter and a receiver together make the simplest propagation scene, representing a free-space line-of-sight (LOS) channel. A transmitter is one of EM.Cube's several source types, while a receiver is one of EM.Cube's several observable types. A simpler source type is a Hertzian dipole. A simpler observable is a field sensor that is used to compute the electric and magnetic fields on a specified plane.&lt;br /&gt;
&lt;br /&gt;
An outdoor propagation scene may involve several buildings (modeled as impenetrable surfaces) and an underlying flat ground or irregular terrain surface. An indoor propagation scene may involve several walls (modeled as thin penetrable surfaces), a ceiling and a floor arranged according to a certain floor plan. You can also build mixed scenes involving both impenetrable and penetrable blocks, possibly along with irregular terrain surfaces. Your sources and observables can be placed anywhere in the scene. Your transmitters and receivers can be placed outdoors or indoors. A complete list of the various elements of a propagation scene is given in the '''Physical Structure''' section of [[Propagation Module]]'s Navigation Tree as follows:&lt;br /&gt;
&lt;br /&gt;
* Impenetrable Surfaces&lt;br /&gt;
* Penetrable Surfaces&lt;br /&gt;
* Terrain Surfaces&lt;br /&gt;
* Base Points&lt;br /&gt;
&lt;br /&gt;
Impenetrable, penetrable and terrain surfaces all obstruct the propagation of electromagnetic waves (rays) in the free space. What differentiates them is the types of physical phenomena that are used to model their interaction with the impinging rays. Base points are simply used to define transmitter and receiver locations in the scene. The following sections of this manual will describe each of these elements in detail.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Navigation Tree of EM.Cube's [[Propagation Module]].&lt;br /&gt;
&lt;br /&gt;
=== The Various Types Of Surfaces &amp;amp;amp; Blocks ===&lt;br /&gt;
&lt;br /&gt;
In a SBR simulation, the propagating rays hit the surface of building structures, walls, terrain (or global ground) and bounce back into the scene (reflection). Some rays penetrate thin walls or other penetrable surfaces and continue their path on the other side of the surface (transmission). The field intensity, phase and power of the reflected and transmitted rays depend on the material properties of the obstructing surface. The specular surface can be modeled as a simple homogeneous dielectric half-space or as a multilayer structure. In that respect, the buildings, walls, terrain or even the global ground all behave in a similar way:&lt;br /&gt;
&lt;br /&gt;
* They terminate an impinging ray and replace it with one or more new rays.&lt;br /&gt;
* They represent a specular interface between two media of different material compositions for calculating the reflection, transmission and possibly diffraction coefficients.&lt;br /&gt;
&lt;br /&gt;
EM.Cube has generalized the concept of '''Block''' as any object that obstructs and affects radio wave propagation. Rays hit the facets of a block and bounce off the surface of those facets or penetrate them and continue their propagation. Rays also get diffracted off the edges of these blocks. In EM.Cube's [[Propagation Module]], blocks are grouped together by the type of their interaction with rays. EM.Cube currently offers three types of blocks for use in a propagation scene:&lt;br /&gt;
&lt;br /&gt;
# '''Impenetrable Surfaces:''' Rays hit the facets of this type of blocks and bounce back, but they do not penetrate the object. It is assumed that the interior of such blocks or buildings are highly absorptive.&lt;br /&gt;
# '''Penetrable Surfaces:''' These blocks represent thin surfaces that are used to model the exterior and interior walls of buildings based on the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;. Rays reflect off the surface of penetrable surfaces and diffract off their edges. They also penetrate such thin surfaces and continue their paths on the other side of the wall.&lt;br /&gt;
# '''Terrain Surfaces:''' These blocks are used to provide one or more impenetrable, ground surfaces for the propagation scene. Rays simply bounce off terrain objects. The global ground acts as a flat super-terrain that covers the bottom of the entire computational domain. &lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to define block groups of each of the above three types. Each block group has the same color or texture and its members share the same material properties: permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and conductivity &amp;amp;sigma;. Also, all the penetrable surfaces belonging to the same block group have the same wall thickness. You can define many different block groups with certain properties and underneath each introduce many member objects with different geometrical shapes and dimensions. The table below summarizes the characteristics of each block type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Block Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Physical Effects&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Admissible Object Types&lt;br /&gt;
|-&lt;br /&gt;
| Impenetrable Surface&lt;br /&gt;
| Reflection, Diffraction&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Penetrable Surface&lt;br /&gt;
| Reflection, Diffraction, Transmission&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Terrain Surface&lt;br /&gt;
| Reflection&lt;br /&gt;
| Tessellated Objects Only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Impenetrable Surfaces For Outdoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
In outdoor propagation scenes such as &amp;amp;quot;Urban Canyons&amp;amp;quot;, you are primarily interested in the wireless coverage in the areas among buildings. You can assume that rays bounce off the exterior walls of these buildings but do not penetrate them. In other words, you ignore the transmitted rays and assume that they are either absorbed or diffused inside the buildings. This is not an unrealistic assumption. EM.Cube offers &amp;amp;quot;Impenetrable Blocks&amp;amp;quot; to model buildings in outdoor propagation scenes. A penetrable block has a color or texture property as well as material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and conductivity (s). By default, a brick building is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m. Impinging rays are reflected from the facets of impenetrable buildings or diffracted from their edges.&lt;br /&gt;
&lt;br /&gt;
To define a new impenetrable block group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on either the '''Impenetrable Surfaces''' item of the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the block properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the block group and select a color or texture.&lt;br /&gt;
# The electromagnetic model that determines ray-block interaction is selected under '''Specular Interface Type'''. Two options are available: '''Standard Material''' or '''User Defined Model'''. The former is the default choice and requires material properties, '''Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity''' (&amp;amp;sigma;), which are set to &amp;amp;quot;Brick&amp;amp;quot; by default. No magnetic properties are allowed for blocks.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(2).png]]   &lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Impenetrable Surface dialog.&lt;br /&gt;
&lt;br /&gt;
Under an impenetrable block group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of an impenetrable surface. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. In this dialog, you can change the name of the material and its permittivity and electric conductivity. The box labeled &amp;amp;quot;Specify Loss Tangent&amp;amp;quot; is unchecked by default. If you check it, you can specify the '''Loss Tangent''' of the material, which, in turn, updates the value of electric conductivity at the center frequency of the project. You can also use EM.Cube's Material List, which will  be explained later.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to impenetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
=== Penetrable Surfaces For Indoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
A typical indoor propagation scene usually involves an arrangement of walls that represent the interior of a building. The transmitters and receivers are then placed in the spaces among such walls. From the point of view of EM.Cube's SBR simulator, walls act like thin penetrable surfaces. EM.Cube uses the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot; to model penetrable surfaces. It assumes that rays simply penetrate a wall and exit at the same specular point on the opposite side of the wall. In other words, rays are not displaced by the walls, nor do they get trapped inside the walls (no internal reflection). This is equivalent to assuming a zero thickness for penetrable surfaces for the purpose of geometrical ray tracing, while the finite thickness of the &amp;amp;quot;thin&amp;amp;quot; surface is used for electromagnetic calculation of transmission coefficient. EM.Cube offers &amp;amp;quot;Penetrable Surface Blocks&amp;amp;quot; for the construction of rooms in indoor propagation scenes as well as modeling of hollow buildings and other structures. You can define many penetrable surface groups with arbitrary thicknesses and material properties (color, texture, permittivity and electric conductivity).&lt;br /&gt;
&lt;br /&gt;
To define a new penetrable surface group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on one of the '''Penetrable Surfaces''' item in the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the wall properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the surface group and select a color or texture.&lt;br /&gt;
# The properties of a penetrable surface are identical to those of an impenetrable surface, plus an additional thickness property.&lt;br /&gt;
# By default, a brick wall with a thickness of 0.5 units is assumed. You can change the '''Thickness''' of the penetrable surface as well as its '''Permittivity'''  &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and '''Electric Conductivity''' &amp;amp;sigma;.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Penetrable Surface dialog.&lt;br /&gt;
&lt;br /&gt;
Under a penetrable surface group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of a penetrable surface group including its default thickness. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. Similar to the case of impenetrable surfaces, from this dialog, you can change the material properties (permittivity and electric conductivity) as well as '''Thickness''', which is expressed in the project units. You can also use EM.Cube's Material List, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to penetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
You can construct several thin walls and arrange them as rooms. A regular room can be built by placing four vertical wall objects together with an optional horizontal wall at the top for the ceiling. Alternatively, you may use EM.Cube's hollow box objects or boxes with one or two capped end(s).  '''Keep in mind that all the penetrable surfaces belonging to a group have the same wall thickness, which is initially set to 0.5 project units by default. Also, note that solid CAD objects belonging to a penetrable surface group are treated as air-filled hollow structures.''' The thickness of penetrable surfaces is implied and not visualized when displaying objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Computational Domain &amp;amp;amp; Global Ground ===&lt;br /&gt;
&lt;br /&gt;
The SBR simulation engine requires a finite computational domain. All the stray rays that hit the boundaries of this finite domain are terminated during the simulation process. Such rays exit the computational domain and travel to the infinity, with no chance of ever reaching any receiver in the scene. When you define a propagation scene with various elements like buildings, walls, terrain, etc., a dynamic domain is automatically established and displayed as a wireframe box with green lines that surrounds the entire scene. Every time you create a new object, the domain is automatically adjusted and extended to enclose all the objects in the scene. You can change the size and color of the domain box through the Ray Domain Settings Dialog, which can be accessed in one of the following three ways:&lt;br /&gt;
&lt;br /&gt;
# Click the '''Domain''' [[File:image025.jpg]] button of the Simulation Toolbar.&lt;br /&gt;
# Select the '''Simulate''' &amp;amp;gt; '''Computational Domain''' &amp;amp;gt; '''Settings...''' item of the Simulate Menu.&lt;br /&gt;
# Right click on the '''Ray Domain''' item of the Navigation Tree and select '''Domain Settings...'''&lt;br /&gt;
# Use the keyboard shortcut '''Ctrl + A'''.&lt;br /&gt;
&lt;br /&gt;
The size of the Ray domain is specified in terms of six '''Offset''' parameters along the ±X, ±Y and ±Z directions. The default value of all these six offset parameters is 10 project units. You can change them arbitrarily. After changing these values, use the '''Apply''' button to make the changes effective while the dialog is still open.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Most outdoor and indoor propagation scenes include a flat ground at their bottom, which bounces incident rays back into the scene. EM.Cube's [[Propagation Module]] provides a global flat ground at z = 0. The global ground indeed acts as an impenetrable surface that blocks the entire computational domain from the z = 0 plane downward. It is displayed as a translucent green plane at z = 0 extending downward. The color of the ground plane is always the same as the color of the ray domain. The global ground is assumed to be made of a homogeneous dielectric material with a specified permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma;. By default, a rocky ground is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m. You can remove the global ground, in which case, you will have a free space scene. To disable the global ground, open up the Global Ground Settings Dialog, which can be accessed by right clicking on the '''Global Ground''' item in the Navigation Tree and selecting '''Global Ground Settings... '''Remove the check mark from the box labeled '''&amp;amp;quot;Include Half-Space Ground (z&amp;amp;lt;0)&amp;amp;quot;''' to disable the global ground. This will also remove the green translucent plane from the bottom of your scene. You can also change the material properties of the global ground and set new values for the permittivity and electric conductivity of the impenetrable, half-space, dielectric medium. '''Do not forget to disable the global ground if you want to model a free space propagation scene.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PROP4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s Global Ground Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Surfaces vs. Global Ground ===&lt;br /&gt;
&lt;br /&gt;
A terrain surface acts as a custom, unlevel or irregular ground for your propagation scene. EM.Cube's default global ground blocks the z &amp;amp;lt; 0 half-space everywhere in the computational domain. You can simply turn off the global ground and create one or more terrain objects and place them arbitrarily in the scene. You can also import an external terrain model or file. A terrain represents an impenetrable surface with a more complex surface profile. You can have one or more terrain objects of finite extents and place them on or above the global ground.&lt;br /&gt;
&lt;br /&gt;
Terrain objects have some important differences with objects of the &amp;amp;quot;Impenetrable Surface&amp;amp;quot; type:&lt;br /&gt;
&lt;br /&gt;
# While impenetrable blocks can be created using any of EM.Cube's solid or surface CAD object creation tools, terrain objects are created either using EM.Cube's '''Terrain Generator''' or by importing an external terrain file. &lt;br /&gt;
# Terrain objects belong to a special type of CAD objects called &amp;amp;quot;Tessellated Objects&amp;amp;quot;, which differ from other regular CAD [[Surface Objects|surface objects]] or EM.Cube's polymesh surfaces.&lt;br /&gt;
# Terrain surfaces do not diffract impinging rays at their many small edges.&lt;br /&gt;
# Terrain objects affect the elevation of other objects or transmitters or receivers that are located above them.&lt;br /&gt;
&lt;br /&gt;
Just as other blocks are grouped by their color, texture and material composition, terrain objects are also grouped in a similar fashion. Before you can generate or import a new terrain object, first you have to define a terrain group and specify its color/texture and material properties. To define a new terrain group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Terrain''' item in the Navigation Tree and select '''Insert New Terrain...''' A dialog for setting up the terrain properties opens up offering a of preloaded material type (Rock) with predefined green color and no texture.&lt;br /&gt;
* Specify a name for the terrain group and select a color or texture.&lt;br /&gt;
* Similar to other blocks, you have to specify the material properties, Permittivity (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and Electric Conductivity (&amp;amp;sigma;), of the terrain group. Rock with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m is the default material choice for a new terrain.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Terrain dialog.&lt;br /&gt;
&lt;br /&gt;
You can change the properties of a terrain surface group from its property dialog. Click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog, which is identical to the case of impenetrable surfaces. You can also use EM.Cube's Material List, which will be explained later. When a new terrain type is created, its node on the Navigation Tree becomes active. Under this node you can create and add new terrain objects. When a terrain node is active for drawing, all CAD object creation tools are disabled. You have three options for creating a new terrain object, which will be described in detail in the next sections of this manual:&lt;br /&gt;
&lt;br /&gt;
# Use EM.Cube's '''Terrain Generator'''.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.TRN'''&amp;amp;quot; type.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.DEM'''&amp;amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
=== Using Terrain Generator ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18.png|thumb|250px|[[Propagation Module]]'s Terrain Generator dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides a convenient and powerful Terrain Generator for creating a variety of terrain [[Surface Objects|surface objects]]. EM.Cube's Terrain Generator looks very similar to [[CubeCAD]]'s Surface Generator. However, whereas the Surface Generator creates a generic or polymesh surface object, Terrain Generator always creates another special type of object known as a '''Tessellated Object'''. A terrain object is much simpler than EM.Cube's polymesh objects and is usually made up of triangular or quadrilateral facets. As such, terrain objects have limited editing capabilities. For example, you can cut, copy, paste, translate or rotate  terrain objects. But operations like scaling, mirroring, grouping (composite), arraying, exploding, linking or Boolean operations do not work on terrain objects.&lt;br /&gt;
&lt;br /&gt;
To create a new terrain object using Terrain Generator, first you need to define a terrain group in the Navigation Tree. Right click on the name of the terrain node and select '''Terrain Generator...''' from the contextual menu. This opens up the Terrain Generator Dialog. Using Terrain Generator, you can build a single terrain surface or an array of surfaces patched together. Some of the available terrain models include:&lt;br /&gt;
&lt;br /&gt;
# Flat Plane&lt;br /&gt;
# Hill (Elliptic Quadratic)&lt;br /&gt;
# Mountain (Elliptic Cone)&lt;br /&gt;
# 1-D and 2-D Cliff&lt;br /&gt;
# Gaussian Hump&lt;br /&gt;
# Undulated Sinusoid&lt;br /&gt;
# Undulated Sinc&lt;br /&gt;
# Super-quadratic Plateau&lt;br /&gt;
# Custom Function&lt;br /&gt;
# XY Grid Data&lt;br /&gt;
&lt;br /&gt;
In all of the above models, you can set the height of the surface object to an any desired value. You set the lateral extents of the surface and its resolution along the X and Y directions in the boxes labeled '''Range Start''', '''Range Stop''' and '''Range Step'''. The step values along the X and Y directions are a measure of surface smoothness: the smaller the step values, the higher the resolution and the smoother the resulting terrain object.&lt;br /&gt;
&lt;br /&gt;
Some surface types have an additional shape factor called '''Alpha''' that is identical to the alpha parameter in the surface generator. For example, a Gaussian Hump is defined as exp(-r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/(2a&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)), where r is the polar radius. For a Super-quadratic Hump, the input parameter a defines the degree of the super-quadratic surface. a = 2 corresponds to an ellipsoid. Larger values of a get close to a rectangular base with rounded corners. An undulated sinusoidal surface is defined by cos(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*cos(pay/D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;), and an undulated sinc is defined by D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;*D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;*sin(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*sin(pay/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/(2pxy), where D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; are the X and Y dimensions, respectively. Terrain Generator creates a unit cell based on the specified surface type. From the same dialog, you can also produce an array arrangement of such unit cells. Simply enter any number of elements along the X and Y directions in the boxes labeled '''Array'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP19.png|800px]]  &lt;br /&gt;
&lt;br /&gt;
Figure: A 4 × 4 array of hill terrain objects.&lt;br /&gt;
&lt;br /&gt;
You can define any arbitrary surface by entering an equation of the two [[variables]] x and y as z = f(x,y). In this case, you have to select the '''Custom Function''' option in the dropdown list labeled '''Model'''. You should enter your equation as any mathematical expression in the box labeled '''Function f(x,y)'''. You can use any of EM.Cube's mathematical functions listed in the '''Function Dialog''' or combine several of them. Note that after selecting the custom function option, the height of the surface is determined by your equation, and the '''Height''' box is disabled. You can also introduce random noise and create a rough terrain. You can do this by setting a nonzero value for '''Noise''', which represent the RMS peak-to-valley amplitude of the surface roughness. The figures below show two custom terrain surfaces modeled by the equation z = (x.y)/20 defined over the range [0, 10] in both X and Y directions. Random noise has been added to both surfaces, with the noise amplitude being 0.2 and 0.5 for the left and right figures, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP21.png|400px]] [[File:PROP20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Two noisy custom terrain surfaces both defined as z = (x.y)/20: (Left) RMS noise amplitude = 0.2, (right) RMS noise amplitude = 0.5.&lt;br /&gt;
&lt;br /&gt;
=== Generating Grid-Based Terrain ===&lt;br /&gt;
&lt;br /&gt;
Every time you create a new terrain object using Terrain Generator, an ASCII data file named &amp;amp;quot;GeneratedTerrain&amp;amp;quot; with a &amp;amp;quot;'''.TRN'''&amp;amp;quot; file extension is created and placed in your project folder. This is EM.Cube's simple native terrain file format that basically lists all the (x, y, z) coordinates of the generated surface points on a horizontal, rectangular XY grid. Terrain Generator simply takes your custom function definition or one of the selected catalog surface types and generates the digital elevation data on the specified grid.  &lt;br /&gt;
&lt;br /&gt;
Another type of terrain model that the terrain generator provides is '''XY Grid Data'''. In this case, you define a rectangular XY grid with a uniform grid cell size along the X and Y directions and manually define the Z-elevation for each grid point. This is similar to the surface generator's &amp;amp;quot;2D Uniform Grid&amp;amp;quot; model type in [[CubeCAD]]. Based on your input to '''Range Start''', '''Range Stop''' and '''Range Step''' along X and Y, a 2D grid is set up and displayed in a table at the bottom of the terrain generator dialog. By default, all the Z-elevations are set to zero initially. You can click on each table cell and overwrite it with a new value. At the end, click the '''Create''' button of the dialog to add the new grid-based terrain object to the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:terrain10_tn.png]]&lt;br /&gt;
&lt;br /&gt;
A grid-based terrain object.&lt;br /&gt;
&lt;br /&gt;
=== Importing &amp;amp;amp; Exporting Terrain Models ===&lt;br /&gt;
&lt;br /&gt;
You can import two types of terrain in EM.Cube's [[Propagation Module]]. The first type is &amp;amp;quot;'''.TRN&amp;amp;quot;''' terrain file, which is EM.Cube's native terrain format. It is a basic digital elevation map with a very simple ASCII data file format. The resolution of the terrain map in the X and Y directions is specified in meters as STEPS. The (x, y, z) coordinates of the terrain points are then listed one point per line. The other type of terrain format supported by EM.Cube is the standard '''7.5min DEM''' file format with a '''.DEM''' file extension. &lt;br /&gt;
&lt;br /&gt;
To import an external terrain model, first you have to create a terrain group node in the Navigation Tree. Right click on the name of the terrain group in the Navigation Tree and select either '''Import Terrain...''' or '''Import DEM File...''' A standard Windows '''Open Dialog''' opens up, with the file type set to .TRN or .DEM extensions, respectively. You can browse your folders and find the right terrain model file to import.&lt;br /&gt;
&lt;br /&gt;
You can also export all the terrain objects in the project workspace as a terrain file with a '''.TRN''' file extension. You can even import a DEM terrain model from an external file and then save and export it as a native terrain (.TRN) file. To export the terrain, select '''File''' &amp;amp;gt; '''Export...''' from [[Propagation Module]]'s '''File Menu'''. The standard Windows Save Dialog opens up with the default file type set to '''.TRN'''. Type in a name for your new terrain file and click the '''Save''' button to export the terrain data.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-12_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figur: An imported external terrain model.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Surface Models ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP26.png|thumb|250px|Propagation Module's Penetrable Surface Dialog showing a three-layer wall composition]]&lt;br /&gt;
&lt;br /&gt;
Most of the time, your outdoor propagation scene consists of simple buildings made of single-layer walls with standard material properties (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;). In the case of a single-layer impenetrable surface, the specular interface is an infinite dielectric half-space, which reflects the impinging rays. Single-layer penetrable surfaces, on the other hand, involve finite-thickness dielectric walls, which both reflect and transmit the incident rays. Similarly, most of your indoor propagation scenes involve simple single-layer penetrable walls with the specified material properties &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. A thin wall acts like a finite-thickness dielectric slab that both reflects and transmits incident rays. In the case of the global ground or terrain objects, only ray reflection off the ground surface is considered.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[Propagation Module]], you can define multilayer surfaces with both reflection and transmission properties. You can define multilayer impenetrable buildings, multilayer penetrable walls, and multilayer terrain, with an arbitrary number of layers having different material compositions. You define a multilayer surface in the property dialog of a block, whether impenetrable, penetrable or terrain. In the section entitled '''Surface Type''', two options are available: '''Standard Material''' or '''User Defined Model'''. For simple multilayer walls, select the '''Standard Material''' option. You can add new layers with arbitrary thickness and material parameters to the existing layers. To insert a new layer, deselect any items in the layer list, and click the '''Add/Edit''' button to open the &amp;amp;quot;Add Layer&amp;amp;quot; Dialog. Here you can enter a name for the new layer and values for its '''Thickness''', &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. You may also delete any layer by selecting and highlighting it and clicking the '''Delete''' button. You can move layers up or down using the '''Move Up''' and '''Move Down''' buttons and change the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
You can also search EM.Cube's material database by clicking the '''Material''' button of &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. This opens the '''Materials''' Dialog. Inside the material list select and highlight any row and click the '''OK''' button. The selected material will fill out all the fields in the &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. Inside the Materials Dialog, you can type the few first letters of any material, and it will take you to the corresponding row of the list.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Transferring Objects From Or To Other Modules ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube's [[Propagation Module]] and draw a solid object like a box in the project workspace without having defined any surface groups, it is assumed to be of the impenetrable surface type. A default impenetrable surface group called Block_1 is automatically added to the Navigation Tree, which holds your newly drawn object. The default group has the material properties of &amp;amp;quot;Brick&amp;amp;quot; (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m.) with a dark brown color. You can continue drawing new objects in the project workspace and adding them under this block node. Or you can define a new surface type with different properties. By default, the last surface group that was defined is '''Active'''. The current active surface group is always listed in bold letters in the Navigation Tree. When you draw a new object, it is always inserted under the current active surface group. Any surface group can be activated by right clicking its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move any object from its current surface group into any other available surface group. First select the object, then right click on its surface and select '''MoveTo &amp;amp;gt; Propagation &amp;amp;gt;'''. A submenu appears which lists all the available surface groups where you can transfer the selected object. You can also move objects among surface groups by selecting their names in the Navigation Tree and using the contextual menu. In a similar way, you can transfer objects from [[Propagation Module]] to EM.Cube's other modules or vice versa. '''Keep in mind that all the external model files such as STEP, IGES, STL, etc. are first imported to EM.Cube's [[CubeCAD]], from which you can transfer them to other modules.''' First select the object, then right click and select '''MoveTo &amp;amp;gt;'''. In the submenu you will see a list of all the EM.Cube modules that have at least one available group where you can transfer your selected object. You can select multiple objects for transfer. When using the keyboard's '''Shift Key''' or '''Ctrl Key''' for multiple selection, make sure that those keys are held down, when you right click to access the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Defining Sources &amp;amp;amp; Observables ==&lt;br /&gt;
&lt;br /&gt;
Like every other electromagnetic solver, EM.Cube's SBR ray tracer requires a source for excitation and one or more observables for generation of simulation data. EM.Cube's new [[Propagation Module]] offers several types of sources and observables for a SBR simulation. You can mix and match different source types and observable types depending on the requirements of your modeling problem. There are two types of sources:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Transmitter Sets|Transmitter]]&lt;br /&gt;
* [[#Hertzian Dipole Sources|Hertzian Dipole]]&lt;br /&gt;
&lt;br /&gt;
There are four types of observables:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Receiver Sets|Receivers]]&lt;br /&gt;
* [[#Defining Field Sensors|Field Sensor]]&lt;br /&gt;
* Far Fields&lt;br /&gt;
* Huygens Surface&lt;br /&gt;
&lt;br /&gt;
The simplest SBR simulation can be performed using a short dipole source with a specified field sensor plane. In this way, EM.Cube computes the electric and magnetic fields radiated by your dipole source in the presence of your multipath propagation environment. A &amp;amp;quot;classic&amp;amp;quot; urban propagation scene can be set up using a &amp;amp;quot;Transmitter&amp;amp;quot; source and an array of &amp;amp;quot;Receiver&amp;amp;quot; observables. A transmitter is a point radiator with a user defined radiation pattern. A receiver is a polarization-matched isotropic point radiator that collects the received rays at its aperture. Using receivers, you can calculate the received power coverage map of your propagation scene. You can also calculate your channel's path loss between the transmitter and all the receivers. &amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18(1).png|thumb|[[Propagation Module]]'s Transmitter dialog with a short dipole radiator selected]]&lt;br /&gt;
Earlier versions of EM.Cube's [[Propagation Module]] used to offer an isotropic radiator with vertical or horizontal polarization as the simplest transmitter type. This release of EM.Cube has abandoned isotropic radiator transmitters because they do not exist physically in a real world. Instead, the default transmitter radiator type is now a Hertzian dipole. Note that before defining a transmitter, first you have to define a base set to establish the location of the transmitter. Most simulation scenes involve only a single transmitter. Your base set can be made up of a single point for this purpose. &lt;br /&gt;
&lt;br /&gt;
To define a new Transmitter Set, go to the '''Sources''' section of the Navigation Tree, right click on the '''Transmitters''' item and select '''Insert Transmitter...''' A dialog opens up that contains a default name for the new Transmitter Set as well as a dropdown list labeled '''Select Base Set'''. In this list you will see all the available base sets already defined in the project workspace. Select the desired base set to associate with the transmitter set. Note that if the base set contains more than one point, then more than one transmitter will be created and contained in your transmitter set. After defining a transmitter set, the base points change their color to the transmitter color, which is red by default.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Radiator&amp;amp;quot; section of the dialog, you have two options to choose from: &amp;amp;quot;Short Dipole&amp;amp;quot; and &amp;amp;quot;User Defined&amp;amp;quot;. The default option is short dipole. A short dipole radiator has a '''Length'''''dl'' expressed in project units, a current '''Amplitude''' in Amperes and a current '''Phase''' in degrees. The '''Direction''' of the dipole is determined by its unit vector that has three X, Y and Z components. By default, a Z-directed short dipole radiator is assumed. You can change all parameters of the dipole as you wish. Keep in mind that all the transmitters belonging to the same set have parallel radiators with identical properties.&lt;br /&gt;
&lt;br /&gt;
=== Defining Base Point Sets ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP1.png|thumb|[[Propagation Module]]'s Base Set dialog]]&lt;br /&gt;
In order to tie up transmitters and receivers with CAD objects in the project workspace, EM.Cube uses point objects to define transmitters and receivers. These point objects represent the base of the location of transmitters and receivers in the computational domain. Hence, they are grouped together as &amp;amp;quot;Base Sets&amp;amp;quot;. You can easily interchange the role of transmitters and receivers in a scene by switching their associated bases. The usefulness of concept of base sets will become apparent later when you place transmitters or receivers on an irregular terrain and adjust their elevation.   &lt;br /&gt;
&lt;br /&gt;
To create a new base set, right click on the '''Base Sets''' item of Navigation Tree and select '''Insert Base Set...''' A dialog for setting up the Base Set properties opens up.&lt;br /&gt;
&lt;br /&gt;
# Enter a name for the base set and change the default blue color if you wish. It is useful to differentiate the base sets associated with transmitters and receivers by their color.&lt;br /&gt;
# Click the '''OK''' button to close the Base Set Dialog.&lt;br /&gt;
&lt;br /&gt;
Once a base set node has been added to the Navigation Tree, it becomes the active node for new object drawing. Under base sets, you can only draw point objects. All other object creation tools are disabled. A point is initially drawn on the XY plane. Make sure to change the Z-coordinate of your radiator, otherwise, it will fall on the global ground at z = 0. You can also create arrays of base points under the same base set. This is particularly useful for setting up receiver grids to compute coverage maps. Simply select a point object and click the '''Array Tool''' of '''Tools Toolbar''' or use the keyboard shortcut &amp;amp;quot;A&amp;amp;quot;. Enter values for the X, Y or Z spacing as well as the number of elements along these three directions in the Array Dialog. In most propagation scenes you are interested in 2D horizontal arrays along a fixed Z coordinate (parallel to the XY plane).&lt;br /&gt;
&lt;br /&gt;
=== Defining Transmitter Sets ===&lt;br /&gt;
&lt;br /&gt;
A short dipole is the closest thing to an omni-directional radiator. The direction or orientation of the short dipole determines its polarization. In many applications, you may rather want to use a directional antenna for your transmitter. You can model a radiating structure using EM.Cube's FDTD, Planar, MoM3D or PO modules and generate a 3D radiation pattern data file for it. These data are stored in a specially formatted file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension, which contains columns of spherical &amp;amp;phi; and &amp;amp;theta; angles as well as the real and imaginary parts of the complex-valued far field components '''E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;''' and '''E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;'''. The &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field determine the polarization of the transmitting radiator. &lt;br /&gt;
&lt;br /&gt;
To define a directional transmitter radiator, you need to select the &amp;amp;quot;User Defined&amp;amp;quot; option in the &amp;amp;quot;Radiator&amp;amp;quot; section of the Transmitter Dialog. You can do this either at the time of creating a transmitter set, or afterwards by opening the property dialog of the transmitter set. In the &amp;amp;quot;Custom Pattern Parameters&amp;amp;quot;, click the '''Import Pattern''' button to set the path for the radiation data file. This opens up the standard Windows Open dialog, with the default file type or extension set to &amp;amp;quot;.RAD&amp;amp;quot;. Browse your folders to find the right data file. A radiation pattern file usually contains the value of &amp;amp;quot;Total Radiated Power&amp;amp;quot; in its file header. This is used by default for power calculations in the SBR simulation. However, you can check the box labeled &amp;amp;quot;'''Custom Power'''&amp;amp;quot; and enter a value for the transmitter power in Watts. EM.Cube can also rotate the imported radiation pattern arbitrarily. In this case, you need to specify the '''Rotation''' angles in degrees about the X-, Y- and Z-axes. Note that these rotations are performed sequentially and in order: first a rotation about the X-axis, then a rotation about the Y-axis, and finally a rotation about the Z-axis. &lt;br /&gt;
&lt;br /&gt;
[[File:PROP19(1).png]] [[File:PROP20(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Transmitter dialog with a user defined radiator selected.&lt;br /&gt;
&lt;br /&gt;
=== Multiple Transmitters vs. Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulations are fully coherent and 3D-polarimetric. This means that the phase and polarization of all the rays are maintained and processed during their bounces in the scene. Your propagation scene can have more than one transmitter. During an SBR simulation, all the rays emanating from all the transmitters are traced in the propagation scene. All the received rays at a given receiver location are summed coherently and vectorially. This is based on the principle of linear superposition. All the transmitters belonging to the same transmitter set have the same radiation properties. They are either parallel short dipole radiators with the same current amplitudes and phases, or parallel user defined radiators with identical radiation patterns. As these transmitters are placed at different spatial locations, they effectively form an antenna array with identical elements. The array factor is simply determined by the coordinates of the base points. If you want to have different amplitude or phases, then you need to define different transmitter sets.&lt;br /&gt;
&lt;br /&gt;
If that radiators are indeed the elements of an actual antenna array with a half wavelength spacing or so, we recommend that you import the radiation pattern of the array structure instead and replace the whole multi-radiator system with a single point transmitting radiator in your propagation scene. This case is usually encountered in MIMO systems, and using an equivalent point transmitter is an acceptable approximation because the total size of the array aperture is usually much smaller than the dimensions of your propagation scene and its representative length scales. In that case, you need to position the equivalent point radiator at the radiation center of the antenna array. This depends on the physical structure of the antenna array. However, keep in mind that any reasonable guess may still provide a good approximation without any significant error in the received ray data.    &lt;br /&gt;
&lt;br /&gt;
=== Defining Receiver Sets ===&lt;br /&gt;
&lt;br /&gt;
Receivers act as observables in a propagation scene. The objective of a SBR simulation is to calculate the far-zone electric fields and the total received power at the location of a receiver. In that sense, receivers indeed act as field observation points. You need to define at least one receiver in the scene before you can run a SBR simulation. You define the receivers of your scene by associating them with the base sets you have already defined in the project workspace. Unlike transmitters that usually one or few, a typical propagation scene may involve a large number of receivers. To generate a wireless coverage map, you need to define an array of points as your base set.    &lt;br /&gt;
&lt;br /&gt;
To define a new Receiver Set, go to the Observables section of the Navigation Tree, right click on the '''Receivers''' item and select '''Insert Receiver...''' A dialog opens up that contains a default name for the new Receiver Set as well as a dropdown list labeled '''Select Radiator Set'''. In this list you will see all the available base sets that you have already define in the project workspace. Select and designate the desired base set as the receiver set. Note that if the base set contains more than one point, all of them are designated as receivers. After defining a receiver set, the points change their color to the receiver color, which is yellow by default. The first element of the set is represented by a larger ball of the same color indicating that it is the selected receiver in the scene. The Receiver Set Dialog is also used to access individual receivers of the set for data visualization at the end of a simulation. At the end of an SBR simulation, the button labeled &amp;amp;quot;Show Ray Data&amp;amp;quot; becomes enabled. Clicking this button opens the Ray Data Dialog, where you can see a list of all the received rays at the selected receiver and their computed characteristics.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP21(1).png]] [[File:PROP22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Receiver dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Field Sensors ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|[[Propagation Module]]'s Field Sensor dialog]]&lt;br /&gt;
As an asymptotic electromagnetic field solver, the SBR simulation engine can compute the electric and magnetic field distributions in a specified plane. In order to view these field distributions, you must first define field sensor observables before running the SBR simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear. &lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.   &lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a SBR simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|E_{tot}|} = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|H_{tot}|} = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Computing Radiation Patterns In SBR ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
== Scene Discretization &amp;amp;amp; Adjustment ==&lt;br /&gt;
&lt;br /&gt;
=== The Need For Discretization Of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
In a typical SBR simulation, a ray is traced from the location of the source until it hits a scatterer. The SBR method assumes that the ray hits either a flat facet of the scatterer or one of its edges. In the case of hitting a flat facet, the specular point is used to launch new reflected and transmitted rays. The surface of the facet is treated as an infinite dielectric medium interface, at which the reflection and transmission coefficients are calculated. In the case of hitting an edge, new diffracted rays are generated in the scene. However, only those who reach a nearby receiver in their line of sight are ever taken into account. In other words, diffractions are treated locally.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to draw any type of surface or solid CAD objects under impenetrable and penetrable surface groups. Some of these objects have flat faces such as boxes, pyramids, rectangle or triangle strips, etc. Some others contain curved surfaces or curved boundaries such as cylinders, cones, etc. All the non-flat surfaces have to be discretized in the form of a collection of smaller flat facets. EM.Cube uses a triangular surface mesh generator to discretize the penetrable and impenetrable [[Surface Objects|surface objects]] of your propagation scene. This mesh generator is very similar to the ones used in EM.Cube's two other modules: MoM3D and Physical Optics (PO). &lt;br /&gt;
&lt;br /&gt;
You can build a variety of surface and [[Solid Objects|solid objects]] using EM.Cube's native &amp;amp;quot;Curve&amp;amp;quot; CAD objects like lines, polylines, circles, etc. You can use tools like Extrude, Loft, Strip-Sweep, Pipe-Sweep, etc. to transform curves into surface or [[Solid Objects|solid objects]]. '''However, keep in mind that all the &amp;amp;quot;Curve&amp;amp;quot; CAD objects are ignored by the SBR mesh generator and are therefore not sent to the simulation engine.'''&lt;br /&gt;
&lt;br /&gt;
=== Viewing SBR Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can view and examine the discretized version of your scene objects as they are sent to the SBR simulation engine. To view the mesh, click the '''Mesh''' [[File:mesh_tool.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''', or use the keyboard shortcut '''Ctrl+M'''. A triangular surface mesh of your physical structure appears in the project workspace. In this case, EM.Cube enters it mesh view mode. You can perform view operations like rotate view, pan, zoom, etc. But you cannot select objects, or move them or edit their properties. To get out of the Mesh View and return to EM.Cube's Normal View, press the '''Esc Key''' of the keyboard, or click the Mesh button of the Simulate Toolbar once again, or go to the Simulate Menu and deselect the '''Discretization &amp;amp;gt;''' '''Show Mesh''' item.&lt;br /&gt;
&lt;br /&gt;
You can adjust the mesh resolution and increase the geometric fidelity of discretization by creating more and finer triangular facets. On the other hand, you may want to reduce the mesh complexity and send to the SBR engine only a few coarse facets to model your buildings. To adjust the mesh resolution, open the Mesh Settings Dialog by clicking the '''Mesh Settings''' [[File:mesh_settings.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt;''' '''Mesh Settings...'''. This dialog provides a single parameters: '''Edge Length'''., which has a default value of 100 project units. If you are already in the Mesh View Mode and open the Mesh Settings Dialog, you can see the effect of changing the edge length using the '''Apply''' button. Click OK to close the dialog.&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules that express the default mesh density based on the wavelength, the resolution of the SBR mesh generator is expressed in project length units. The default edge length value of 100 units might be too large for non-flat objects. You may have to use a lower value to capture the curvature of your curved structures adequately. &lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-29.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Special Discretized Object Types ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, terrain objects are represented by and saved as special &amp;amp;quot;Tessellated&amp;amp;quot; objects with quadrilateral cells. This is true of terrain objects that you create yourself using EM.Cube's Terrain Generator as well as all the terrain objects that you import from external files to your project. The center of each cell represents the terrain elevation at that point. Tessellated objects are considered as discretized objects by EM.Cube and they are not meshed one more time by the SBR mesh generator. Each quadrilateral cell is divided into two triangular cells before being passed to the SBR simulation engine. Therefore, when using EM.Cube's Terrain Generator to create a new terrain object, you have to pay special attention to the resolution of the terrain object as it determines the total number of terrain facets sent to the simulation engine. A high resolution terrain, although looking better and more realistic, may easily lead to an enormous computational problem.&lt;br /&gt;
&lt;br /&gt;
You can use EM.Cube's &amp;amp;quot;Polymesh&amp;amp;quot; tool to discretize solid and surface CAD objects. You can manually control the mesh characteristics of polymesh objects including inserting new nodes on faces and edges or deleting existing nodes. In addition, EM.Cube's Solid Generator and Surface Generator tools create ploymesh solids and surfaces, respectively. Like tessellated object, polymesh objects are also considered as discretized objects by EM.Cube and they are not meshed again by the SBR mesh generator.   &lt;br /&gt;
&lt;br /&gt;
=== SBR Mesh Rules &amp;amp;amp; Considerations ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
=== Adjusting Block Elevation On Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, buildings and all other CAD objects are initially created on the XY plane by default. In other words, the Z-coordinate of the local coordinate system (LCS) of all blocks is set to zero until you change them. As long as you use the global ground, all is fine as your buildings are seated on the ground. When your propagation scene has an irregular terrain, you want to place your buildings on the terrain and not buried under it. Buildings in EM.Cube are not adjusted to the terrain elevation automatically. You need to instruct EM.Cube to do so.&lt;br /&gt;
&lt;br /&gt;
To update the building positions and adjust their elevation to the underlying terrain, right click on the '''Terrain''' item of the Navigation Tree and select '''Adjust Scene Elevation''' from the context menu. All the blocks in the scene are automatically elevated in the Z direction such that their bases sit on the terrain. In effect, all the blocks are translated along the global Z axis by proper amounts such that their local Z coordinate equals the Z-elevation of the underlying terrain object. This feature is particularly useful if you change the location of the terrain or import a new terrain after the blocks have been created.&lt;br /&gt;
&lt;br /&gt;
Note: You have to make sure that the resolution of your terrain, its fluctuation scale and building dimensions are all comparable. Otherwise, on a high-resolution, rapidly varying terrain, you will have buildings whose bottoms are in contact with the terrain only at a few points and parts of them hang in the air.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_adjust1_tn.png|400px]] [[File:prop_adjust2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Scene with Buildings and Terrain Before and After Adjusting Elevation&lt;br /&gt;
&lt;br /&gt;
=== Transmitters &amp;amp;amp; Receivers Above An Irregular Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, all the transmitters and receivers are tied up with point objects in the project workspace. These point objects are grouped and organized in base sets. When you move the point objects or change their coordinates, all of their associated transmitters or receivers immediately follow them to the new location. For example, you usually define a grid of receivers using a base set that is made up of a uniformly spaced array of points and spread them in your scene. All of these receivers have the same height because their associated base points all have the same Z-coordinate. When your receivers are located above a flat terrain like the global ground, their Z-coordinates are equal to their height above the ground, as the terrain elevation is fixed and equal to zero everywhere. The same is true for transmitters, too.   &lt;br /&gt;
&lt;br /&gt;
In many propagation modeling problems, your transmitters and receivers may be located above an irregular terrain with varying elevation across the scene. In that case, you may want to place your transmitters or receivers at a certain height above the underlying ground. The Z-coordinate of a transmitter or receiver is now the sum of the terrain elevation at the base point and the specified height. EM.Cube gives you the option to adjust the transmitter and receiver sets to the terrain elevation. This is done for individual transmitter sets and individual receiver sets. At the top of the Transmitter Dialog there is a check box labeled &amp;amp;quot;'''Adjust Tx Sets to Terrain Elevation'''&amp;amp;quot;. Similarly, at the top of the Receiver Dialog there is a check box labeled &amp;amp;quot;'''Adjust Rx Sets to Terrain Elevation'''&amp;amp;quot;. These boxes are unchecked by default. As a result, your transmitter sets or receiver sets coincide with their associated base points in the project workspace. If you check these boxes and place a transmitter set or a receiver set above an irregular terrain, the transmitters or receivers are elevated from the location of their associated base points by the amount of terrain elevation as can be seen in the figure below.   &lt;br /&gt;
&lt;br /&gt;
To better understand why there are two separate sets of points in the scene, note that a point array (CAD object) is used to create a uniformly spaced base set. The array object always preserves its grid topology as you move it around the scene. However, the transmitters or receivers associated with this point array object are elevated above the irregular terrain and no longer follow a strictly uniform grid. If you move the base set from its original position to a new location, the base points' topology will stay intact, while the associated transmitters or receivers will be redistributed above the terrain based on their new elevations.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_txrx1_tn.png|400px]] [[File:prop_txrx2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Transmitters and receivers adjusted above an uneven terrain and their associated base sets.&lt;br /&gt;
&lt;br /&gt;
== Running A SBR Simulation ==&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] offers three types of ray tracing simulations:&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
An SBR analysis is the simplest ray tracing simulation and involves the following steps:&lt;br /&gt;
&lt;br /&gt;
# Set the unit of project scene and the frequency of operation. Note that EM.Cube's default project unit is millimeter. When working with the [[Propagation Module]], pay attention to the project unit. Radio propagation problems usually require meter, mile or kilometer as the project unit.&lt;br /&gt;
# Create the blocks and draw the buildings at the desired locations.&lt;br /&gt;
# Keep the default ray domain and accept the default global ground or change its material properties.&lt;br /&gt;
# Define the base sets (at least one for the transmitter and one for the receiver).&lt;br /&gt;
# Define the transmitter and receiver(s) using the available base sets.&lt;br /&gt;
# Run the SBR simulation engine.&lt;br /&gt;
# Visualize the coverage map and plot other data.&lt;br /&gt;
&lt;br /&gt;
You can access the [[Propagation Module]]'s run dialog by clicking the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or by selecting '''Simulate &amp;amp;gt; Run...''' or using the keyboard shortcut '''Ctrl+R'''. When you click the '''Run''' button, a new window opens up that reports the different stages of the SBR simulation and indicates the progress of each stage. After the SBR simulation is successfully completed, a message pops up and prompts the completion of the process.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== SBR Simulation Parameters ===&lt;br /&gt;
&lt;br /&gt;
There are a number of SBR simulation settings that can be accessed and changed from the SBR Settings Dialog. To open this dialog, click the button labeled '''Settings''' on the right side of the '''Select Engine''' dropdown list in the Run Dialog. EM.Cube's SBR simulation engine allows you to separate the physical effects that are calculated during a ray tracing process. You can selectively enable or disable '''Ray Reflection''', '''Ray Transmission''' and '''Ray Diffraction'''. By default, all three effects are checked and included in the computations. Separating these effects sometimes help you better analyze your propagation scene and understand the impact of various blocks in the scene.&lt;br /&gt;
&lt;br /&gt;
EM.Cube requires a finite number of ray bounces for each original ray emanating from a transmitter. This is very important in situations that may involve resonance effects where rays get trapped among certain group of surfaces and may bounce back and forth indefinitely. This is set using the box labeled &amp;amp;quot;'''Max No. Ray Bounces'''&amp;amp;quot;, which has a default value of 10. Note that the maximum number of ray bounces directly affects the computation time as well as the size of output simulation data files. This can become critical for indoor propagation scenes, where most of the rays undergo a large number of reflections.   &lt;br /&gt;
&lt;br /&gt;
As rays travel in the scene and bounce from surfaces, they lose their power and their amplitudes diminish. From a practical point of view, only rays that have power above the receiver sensitivity threshold can be effectively received. Therefore, all the rays whose power fall below a specified power threshold are discarded. The '''Ray Power Threshold''' is specified in dBm and has a default value of -100dBm. Keep in mind that the value of this threshold directly affects the accuracy of the simulation results as well as the size of the output data file.&lt;br /&gt;
&lt;br /&gt;
You can also set the '''Angular Resolution''' of the transmitter rays in degrees. By default, every transmitter emanates equi-angular ray tubes at a resolution of 1 degree. Lower angular resolutions larger than 1° speed up the SBR simulation significantly, but they may compromise the accuracy. Higher angular resolutions less than 1° increase the accuracy of the simulating results, but they also increase the computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP13.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s SBR Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== The Coverage Map ===&lt;br /&gt;
&lt;br /&gt;
If the associated radiator set is isotropic, so will be the transmitter set. By default, an isotropic transmitter has vertical polarization. You can use the '''Polarization''' radio button to select one of the two options: '''Vertical''' or '''Horizontal'''. If the associated radiator set consists of '''Short Dipole''' or '''User Defined''' radiators, it is indicated in the transmitter property dialog. In the case of a short dipole radiator, you can set a value for the dipole current in Amperes. The radiation resistance of a short dipole of length ''dl'' is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; R_r = 80\pi^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:eqngr6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The radiated power of a short dipole carrying a current I&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; P_{rad} = \frac{1}{2} R_r |I_0|^2 = 40\pi^2 |I_0|^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:shortdipole.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For isotropic and user defined radiators you can set the '''Input Power''' and '''Phase''' of a transmitter set in Watts and degrees, respectively. This can be accessed from the '''Transmitter Chain''' dialog, which will be described in detail in the next section. The radiation pattern of the associated radiator set is normalized and used in conjunction with the input power value to create a weighted distribution of transmitted rays. In certain cases like hybrid simulations, you may want to use the actual values of the far field to define the transmitter power rather than a normalized radiation pattern. Note that the pattern (.RAD) file contains the value of total radiated power in its header. In this case, check the box labeled '''&amp;amp;quot;Calculate Power From Radiation Pattern&amp;amp;quot;'''. This is calculated directly from the complex &amp;amp;theta; and &amp;amp;phi; components of the far field data by integrating them over the entire space (4&amp;amp;pi; solid angle). Note that this option is available only when the radiator is of the User Defined type. When this box is checked, the transmitter chain button is grayed out. By default, an isotropic transmitter emanates rays uniformly in all directions at the angular resolution specified by the user. A transmitter with a user defined associated radiator may represent a highly directional radiation pattern with the main beam pointing in a certain direction. You can additionally force and limit the '''Angular Extents''' of rays to a certain solid angle around the transmitter. This is especially useful and computationally efficient when the transmitter is on one side of the scene, and all the scatterers and receivers are on the other side. In this case, there is no need to generate rays in all directions. To limit the angular extents of rays, define the Start and End values for both Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles. The value of the angular resolution of the rays can be changed from the Run Dialog as will be discussed later.&lt;br /&gt;
&lt;br /&gt;
In a regular SBR simulation, you have a transmitter and one or more arrays of receivers in your scene. At the end of the simulation, you can visualize the coverage map of the transmitter over the receiver sets. A coverage map shows the total '''Received Power''' by each of the receivers and is visualized as a color-coded intensity plot. You can visualize the coverage maps of individual receiver sets. At the end of a SBR simulation, each Received Power Coverage Map is listed under the receiver set's name in the Navigation Tree. To display a coverage map, simply click on its entry in the Navigation Tree. The coverage map plot appears in the Main Window overlaid on the scene. A legend box on the right shows the color scale and units (dB). The 3-D coverage maps are displayed as horizontal confetti above the receivers. If the receivers are packed close to each other, you will see a continuous confetti map. If the receivers are far apart, you will see individual colored squares. You can also visualize coverage maps as colored 3-D cubes. This may be useful when you set up your receivers in a vertical arrangement or the scene has a highly uneven terrain. To change the type of coverage map visualization, open the receiver set's property dialog and select the desired option for '''Coverage Map: Confetti''' or '''Cube''' in the '''&amp;amp;quot;Visualization Options&amp;amp;quot;''' section of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run11_tn.png|400px]] [[File:prop_run12_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Received power coverage map: (Left) confetti style, and (Right) cube style.&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the coverage map by right clicking on its entry in the Navigation Tree and selecting '''Properties...''' or by double-clicking on the legend box. In the Output Plot Settings dialog, you can choose from one of three Color Map options: '''Default''', '''Rainbow''' and '''Grayscale'''. The visualization plot uses default values for the color scale. In the section titled &amp;amp;quot;Limits&amp;amp;quot;, you can choose the radio button labeled '''User Defined'''. Then, you have to enter new values for the '''Lower''' and '''Upper''' Limits of the plot. You can also show or hide the Legend Box or change its '''Background''' and '''Foreground''' colors by clicking the buttons provided for this purpose.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run4.png]]&lt;br /&gt;
&lt;br /&gt;
Output Plot Settings&lt;br /&gt;
&lt;br /&gt;
=== The Ray Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a SBR simulation, each receiver receives a number of rays. Some receivers may not receive any rays at all. You can visualize all the rays received by a certain receiver from the active transmitter of the scene. To do this, right click the '''Receivers''' item of the Navigation Tree. From the context menu select '''Show Received Rays'''. All the rays received by the currently selected receiver of the scene are displayed in the scene. The rays are identified by labels, are ordered by their power and have different colors for better visualization. You can display the rays for only one receiver at a time. The receiver set property dialog has a list of all the individual receivers belonging to that set. To display the rays received by another receiver, you have to change the '''Selected Receiver''' in the receiver set's property dialog. If you keep the mouse focus on this dropdown list and roll your mouse scroll wheel, you can scan the selected receivers and move the rays from one receiver to the next in the list. To remove the visualized rays from the scene, right click the Receivers item of the Navigation Tree again and from the context menu select '''Hide Received Rays'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run5_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Visualization of received rays at the location of the selected receiver.&lt;br /&gt;
&lt;br /&gt;
You can also view the ray parameters by opening the property dialog of a receiver set. By default, the first receiver of the set is always selected. You can select any other receiver from the drop-down list labeled '''Selected Receiver'''. If you click the button labeled '''Show Ray Data''', a new dialog opens up with a table that contains all the received rays at the selected receiver and their parameters:&lt;br /&gt;
&lt;br /&gt;
* Delay is the total time delay that a ray experiences travelling from the transmitter to the receiver after all the reflections, transmissions and diffractions and is expressed in nanoseconds.&lt;br /&gt;
* Ray Field is the received electric field at the receiver location due to a specific ray and is given in dBV/m.&lt;br /&gt;
* Ray Power is the received power at the receiver due to a specific ray and is given in dBm.&lt;br /&gt;
* Angles of Arrival are the &amp;amp;theta; and &amp;amp;phi; angles of the incoming ray at the local spherical coordinate system of the receiver.&lt;br /&gt;
&lt;br /&gt;
The Ray Data Dialog also shows the '''Total Received Power''' in dBm and '''Total Received Field''' in dBV/m due to all the rays received by the receiver. You can sort the rays based on their delay, field, power, etc. To do so, simply click on the grey column label in the table to sort the rays in ascending order based on the selected parameter. You can also select any ray by clicking on its '''ID''' and highlighting its row in the table. In that case, the selected rays is highlighted in the Project Workspace and all the other rays become thin (faded).&lt;br /&gt;
&lt;br /&gt;
Note: The rays are summed up coherently at the receiver.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run6_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Analyzing a selected ray from the ray data dialog.&lt;br /&gt;
&lt;br /&gt;
=== Plotting Other Simulation Results ===&lt;br /&gt;
&lt;br /&gt;
Besides visualizing the coverage map and received rays in the EM.CUBE's [[Propagation Module]], you can also plot the '''Path Loss''' of all the receivers belonging to a receiver set as well as the '''Power Delay Profile''' of individual receivers. To plot these data, go the '''Observables''' section of the Navigation Tree and right click on the '''Receivers''' item. From the context menu, select '''Plot Path Loss''' or '''Plot Power Delay Profile''', respectively. The path loss data between the active transmitter and all the receivers belonging to a receiver set are plotted on a Cartesian graph. The horizontal axis of this graph represents the index of the receiver. Power Delay Profile is a bar chart that plots the power of individual rays received by the currently selected receiver versus their time delay. If there is a line of sight (LOS) between a transmitter and receiver, the LOS ray will have the smallest delay and therefore will appear first in the bar chart. Sometimes you may have several rays arriving at a receiver at the same time, i.e. all with the same delay, but with different power level. These will appear as stacked bars in the chart.&lt;br /&gt;
&lt;br /&gt;
You can also plot the path loss and power delay profile graphs and many others from EM.CUBE's data manager. You can open data manager by clicking the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or by selecting '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or by right clicking on the '''Data Manager''' item of the Navigation Tree and selecting Open Data Manager... from the contextual menu or by using the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the theta and phi angles of arrival and departure of the selected receiver. You can select any data file by clicking and highlighting its '''ID''' in the table and then clicking the '''Plot''' button.&lt;br /&gt;
&lt;br /&gt;
=== Output Data Files ===&lt;br /&gt;
&lt;br /&gt;
At the end of an SBR simulation, the results are written into a main output data file with the reserved name of SBR_Results.RTOUT. This file has the following format:&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Receiver Number&lt;br /&gt;
* Receiver Base X, Y , Z Coordinates&lt;br /&gt;
* Receiver Height&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
Number of Rays&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Ray Number&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Arrival in deg&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Departure in deg&lt;br /&gt;
* Delay in nsec&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''') &amp;amp;amp; Imag('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''')&lt;br /&gt;
* Power&lt;br /&gt;
&lt;br /&gt;
The angles of arrival are the &amp;amp;theta; and &amp;amp;phi; angles of a received ray measured in degrees and are referenced in the spherical coordinate systems centered at the location of the receiver. The angles of departure for a received ray are the &amp;amp;theta; and &amp;amp;phi; angles of the originating transmitter ray, measured in degrees and referenced in the spherical coordinate systems centered at the location of the active transmitter, which eventually arrives at the receiver. The total time delay is measured in nanoseconds between t = 0 nsec at the time of launch from the transmitter location till being received at the receiver location. The last four columns show the real and imaginary parts of the received electric fields with vertical and horizontal polarizations, respectively. The complex field values are normalized in a way that when their magnitude is squared, it equals the received ray power. If the active transmitter is an isotropic radiator with either a vertical or horizontal polarization, then the field components corresponding to the other polarization will have zero entries in the output data file.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run8_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A typical SBR output data file.&lt;br /&gt;
&lt;br /&gt;
=== Running A Frequency Sweep With SBR ===&lt;br /&gt;
&lt;br /&gt;
By default, you run a single-frequency simulation in EM.CUBE's [[Propagation Module]]. You set the operational frequency of a SBR simulation in the project's '''Frequency Dialog''', which can be accessed in a number of ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''Frequency''' [[File:freq_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]]'''Frequency Settings...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+F'''.&lt;br /&gt;
# By double clicking the frequency section (box) of the '''Status Bar'''.&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
[[File:prop_freq.png]]    [[File:prop_run10.png]]&lt;br /&gt;
&lt;br /&gt;
(Left) Project's frequency dialog and (Right) the frequency settings dialog.&lt;br /&gt;
&lt;br /&gt;
You can also select the '''Frequency Sweep''' option in the '''Simulation Mode''' drop-down list of the '''Run Dialog'''. Click the '''Settings...''' button on the right side of this dropdown list to open up the Frequency Settings Dialog. Based on the original values of the project center frequency and bandwidth, the '''Start Frequency''' and '''End Frequency''' have default values. You can also change the '''Number of Samples'''. Once you click the '''Run''' button, EM.CUBE performs a frequency sweep by assigning each of the frequency samples as the current operational frequency and running the SBR simulation engine at that frequency. All the simulation data at all frequency samples are saved into the output data files including &amp;amp;quot;SBR_results.RTOUT&amp;amp;quot;. After the completion of a frequency sweep simulation, as many coverage maps as the number of frequency samples are generated and added to the Navigation Tree under the Receiver Set's entry. You can click on each of the coverage maps corresponding to each of the frequency samples and visualize it in the project workspace. You can also animate the coverage maps. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. The coverage maps start to animate by their order on the Navigation Tree. Once the entire list is displayed sequentially, it starts all over again from the beginning of the list. During the animation, the '''Animation Controls''' dialog appears at the lower right corner of the screen. This dialog has a number of buttons for pause/resume, step forward/backward, and step to the end/start. The title of each coverage map is shown in the box labeled '''Sample''' as it is displayed in the main window. You can also change the speed of animation. The default frame duration has a value of 300 (3x100) milliseconds. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run13.png]]    [[File:prop_run14.png]]&lt;br /&gt;
&lt;br /&gt;
Multiple coverage maps on the Navigation Tree at the end of a frequency sweep and starting an animation from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run15_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Animation controls dialog in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep with SBR ===&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run24.png|thumb|300px|EM.CUBE's variable dialog]]&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run23.png|thumb|250px|Dialog for defining new variables]]&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE, all the CAD object properties as well as certain source, material and mesh parameters can be assigned as [[variables]]. [[Variables]] are defined to control and vary the values of such parameters either for editing purposes or to run parametric sweep or [[optimization]]. Variable are defined using the '''[[Variables]] Dialog''', which can be accessed in the three ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''[[Variables]]''' [[File:variable_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]] '''[[Variables]]...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+B'''.&lt;br /&gt;
&lt;br /&gt;
The [[variables]] dialog is initially empty. To add a new variable, click the '''Add''' button to open up the '''Add Variable/Syntax Dialog'''. In this dialog you have to type in a name for the new variable and choose a type. The default type is '''Uniformly Spaced Samples'''. You also need to specify the '''Start''', '''Stop''' and '''Step''' values for the variable. In the figure below, a variable called &amp;amp;quot;Tx_Height&amp;amp;quot; is defined that varies between 2 and 10 with equal steps of 2. This means the sample set {2,4,6,8,10}. When you return to the [[variables]] dialog, the syntax of the new variable is shown as 2:10:2. The last number in this syntax is always the variable step. In this example, this variable is going to be used to control the height of the transmitter in a propagation scene.&lt;br /&gt;
&lt;br /&gt;
Next, you have to attach the variable to the CAD object. In this case, the CAD object is the point object that represents the transmitter's radiator. To attach a variable to a CAD object, open the object's property dialog and type in the name of the variable as the value of a property or parameter. In this case, the variable Tx_Height is going to control the Z-Coordinate of the point object. Once the value of the object parameter is replaced by the name of an already defined variable, it is updated with the current value of that variable. In the case of a variable of &amp;amp;quot;Uniformly Spaced Samples&amp;amp;quot; type, the current value is the start value. This value will be incrementally varied during a parametric sweep simulation process. Note that a variable can take a fixed value or a discrete set of values, too. You can always open the [[variables]] dialog and change the value or syntax of any variable. To make a new or modified value effective, click the '''Apply''' button of the [[variables]] dialog. You can test the values by performing a '''Dry Run''' of the selected variable. This runs an animation of the project workspace as the value of the variable changes and all the related CAD objects are updated accordingly. Note that you can attach the same variable to more than one CAD object property or to the properties of different objects. You can also define multiple values or syntaxes to the same variable. To do so, open the '''Add Variable/Syntax Dialog''', and instead of typing in a new variable name, choose an existing variable name from the '''Name''' dropdown list. This will add a new value or syntax to the existing syntax(es) of the selected variable. When you return to the [[variables]] dialog, [[variables]] with more than one value or syntax will have a dropdown list in the '''Syntax''' column. You can choose any of these values or syntaxed at any time and make the change effective by clicking the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run25.png]]&lt;br /&gt;
&lt;br /&gt;
Replacing the value of a CAD object parameter with a variable name.&lt;br /&gt;
&lt;br /&gt;
To run a parametric sweep, open the '''Run Dialog''' and select the '''Parametric Sweep''' option in the '''Simulation Mode''' drop-down list. If you have not defined any [[variables]] in the project, the box in the '''[[Variables]]''' row before the '''View''' will be red. You have to turn it into green before you can run a simulation. By clicking the '''View''' button, you can open up the [[variables]] dialog from here. Once you click the '''Run''' button, EM.CUBE performs a parametric sweep by incrementally varying the values of all the defined [[variables]] from their start to stop values at the specified steps and updating all the related CAD objects. After the completion of a parametric sweep simulation, as many coverage maps as the total number of variable samples are generated and added to the Navigation Tree under the receiver set's entry. You can click on each of the coverage maps and visualize it in the project workspace. You can also animate the coverage maps sequentially. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run26.png]]&lt;br /&gt;
&lt;br /&gt;
Choosing parametric sweep as the simulation mode in the run dialog. Note that one variable has been defined and EM.CUBE is ready to run the simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run27_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The coverage map of the scene at the end of a parametric sweep where the sweep variable is the transmitter height.&lt;br /&gt;
&lt;br /&gt;
=== Statistical Analysis of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's coverage maps display the received power at the location of all the receivers. The receivers together from a set/ensemble, which might be uniformly spaced or distributed across the propagation scene or may consist of randomly scattered radiators. Every coverage map shows the '''Mean''' and '''Standard Deviation''' of the received power for all the receivers involved. These information are displayed at the bottom of the coverage map's legend box and are expressed in dB.&lt;br /&gt;
&lt;br /&gt;
In the [[Propagation Module]], when you ran a sweep simulation (frequency, transmitter or parametric), you also have the option to generate two additional coverage maps: one for the mean of all the individual sample coverage maps and another for their standard deviation. To do so, in the '''Run Dialog''', check the box labeled '''&amp;amp;quot;Create Mean and Standard Deviation Coverage Maps&amp;amp;quot;'''. Note that the mean and standard deviation values displayed on the individual coverage maps correspond to the spatial statistics of the receivers in the scene, while the mean and standard deviation coverage maps correspond to frequency, transmitter or variable sets defined for the sweep simulation. Also, note that both of the mean and standard deviation coverage maps have their own spatial mean and standard deviation values expressed in dB at the bottom of their legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run21_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The mean coverage map at the end of a transmitter sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run22_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The standard deviation coverage map at the end of a transmitter sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Terrano</id>
		<title>EM.Terrano</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Terrano"/>
				<updated>2013-06-14T14:23:52Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Taking out this picture for now for consistency&lt;br /&gt;
[[File:urban.png]]--&amp;gt;&lt;br /&gt;
EM.Terrano is a physics-based, site-specific, wave propagation modeling tool that enables engineers to quickly determine how radio waves propagate in urban, natural or mixed environments. The rapid growth of wireless communications along with the high costs associated with the design and deployment of effective wireless infrastructures underline a persistent need for computer aided communication network planning tools. Wireless engineers have long used simplistic statistical prediction models based on measurements that often exhibit considerable errors especially in areas having mixed building sizes.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Terrano has helped wireless engineers around the globe model the physical channel and the mechanisms by which radio signals propagate from transmitters to receivers. EM.Terrano’s advanced ray tracing simulator finds the dominant propagation paths specific to the site in question. It calculates the true signal characteristics at the actual locations using physical databases of the buildings and terrain at a given site, not those of a statistically average or representative environment. EM.Terrano’s ray tracer is based on the shoot-and-bounce-rays (SBR) method, which utilizes geometrical optics (GO) in combination with uniform theory of diffraction (UTD) models of building edges.&lt;br /&gt;
&lt;br /&gt;
The new EM.Terrano 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has created the opportunity to inject a host of new powerful features such as a highly customizable terrain generator, DEM terrain import, complex building constructions, and versatile interior wall arrangements for indoor propagation modeling. As a result of this seamless interface with EM.Cube's other modules, you can now model complex antenna systems in [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]], and generate antenna radiation patterns than can be used to model directional transmitters and receivers at the two ends of your propagation channel. Conversely, you can analyze a propagation scene in EM.Terrano and import the rays received at a certain receiver location as coherent plane wave sources to [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]]. You can also model periodic wall or ground structures using the periodic simulation capability of [[EM.Picasso]] or [[EM.Tempo]] and generate macromodels for their reflection and transmission coefficients as functions of the ray incidence angles. You can then define buildings or terrains in your propagation scene that are governed by such macromodels.&lt;br /&gt;
&lt;br /&gt;
== A Wireless Propagation Primer ==&lt;br /&gt;
Every wireless communication system involves a transmitter that transmits some sort of signal (voice, video, data, etc.), a receiver that receives and detects the transmitted signal, and a channel in which the signal is transmitted into the air and travels from the location of the transmitter to the location of the receiver. The channel is the physical medium in which the electromagnetic waves propagate. The successful design of a communication system depends on an accurate link budget analysis that determines whether the receiver receives adequate signal power to detect it against the background noise. The simplest channel is the free space. Real communication channels, however, are more complicated and involve a large number of wave scatterers. For example, in an urban environment, the obstructing buildings, vehicles and vegetation reflect, diffract or attenuate the propagating radio waves. As a result, the receiver receives a distorted signal that contains several components with different power levels and different time delays arriving from different angles.&lt;br /&gt;
&lt;br /&gt;
The different rays arriving at a receiver location create constructive and destructive interference patterns. This is known as the multipath effect. This together with the shadowing effects caused by building obstructions lead to channel fading. In many wireless applications, the total received power by the receiver is all that matters. In some others, the angle of arrival of the rays as well as their polarization are of immense interest. A fully polarimetric, coherent ray tracer like EM.Cube's Shooting-and-Bouncing-Rays (SBR) solver lets you compute and resolve all the rays received by a receiver including their power levels, time delays and angles of arrival.&lt;br /&gt;
&lt;br /&gt;
=== Free Space Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
In a free-space line-of-sight (LOS) communication system, the signal propagates directly from the transmitter to the receiver without encountering any obstacles (scatterers). Electromagnetic waves propagate in the form of spherical waves with a functional dependence of e&amp;lt;sup&amp;gt;j(&amp;amp;omega;&amp;lt;/sup&amp;gt;&amp;lt;sup&amp;gt;t-k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;R)&amp;lt;/sup&amp;gt;/R, where R is the distance between the transmitter and receiver, &amp;lt;math&amp;gt;\omega = 2\pi f&amp;lt;/math&amp;gt;, f is the signal frequency, &amp;lt;math&amp;gt;k_0 = \tfrac{\omega}{c} = \tfrac{2\pi}{\lambda}&amp;lt;/math&amp;gt;, c is the speed of light, and &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength at the operational frequency. By the time the signal arrives at the location of the receiver, it undergoes two changes. It is attenuated and its power drops by a factor of 1/R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, and additionally, it experiences a phase shift of &amp;lt;math&amp;gt;\tfrac{2\pi R}{\lambda_0}&amp;lt;/math&amp;gt;, which is equivalent to a time delay of R/c. The signal attenuation from the transmitter to the receiver is usually quantified by '''Path Loss''' defined as the ratio of the received signal power (P&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;) to the transmitted signal power (P&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;). Assuming isotropic transmitting and receiving radiators (i.e. radiating uniformly in all directions), the Path Loss in a free-space line-of-sight communication system is given by Friis’ formula:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = \left( \frac{\lambda_0}{4\pi R} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above formula assumes that the receiving antenna is polarization-matched. Normally, there is a polarization mismatch between the transmitting and receiving antennas. In the case of directional transmitting and receiving antennas, Friis’ formula takes the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \frac{P_R}{P_T} = G_T G_R \left( \frac{\lambda_0}{4\pi R} \right)^2 ( \mathbf{ \hat{u}_T \cdot \hat{u}_R } )&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:friis2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''u&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt;''' and '''u&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''' are the unit polarization vectors of the transmitting and receiving antennas, and G&amp;lt;sub&amp;gt;T&amp;lt;/sub&amp;gt; and G&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; are their gains, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:los.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Line-of-Sight (LOS) Propagation Scenario.&lt;br /&gt;
&lt;br /&gt;
=== Multipath Propagation Channel ===&lt;br /&gt;
&lt;br /&gt;
Free-space line-of-sight communications is an ideal scenario that is typically used to model aerial or space applications. In ground-based systems, the presence of the ground as a very large reflecting surface affects the signal propagation to a large extent. Along the path from a transmitter to a receiver, the signal may also encounter many obstacles and scatterers such as buildings, vegetation, etc. In an urban canyon environment with many buildings of different heights and other scatterers, a line of sight between the transmitter and receiver can hardly be established. In such cases, the propagating signals bounce back and forth among the building surfaces. It is these reflected or diffracted signals that are often received and detected by the receiver. Such environments are referred to as “multipath”. The group of rays arriving at a specific receiver location experience different attenuations and different time delays. This gives rise to constructive and destructive interference patterns that cause fast fading. As a receiver moves locally, the receiver power level fluctuates sizably due to these fading effects.&lt;br /&gt;
&lt;br /&gt;
The use of statistical models for prediction of fading effects is widely popular among communication system designers. These models are either based on measurement data or derived from simplistic analytical frameworks. The statistical models often exhibit considerable errors especially in areas having mixed building sizes. In such cases, one needs to perform a physics-based, site-specific analysis of the propagation environment to accurately identify and establish all the possible signal paths from the transmitter to the receiver. This involves an electromagnetic analysis of the scene with all of its geometrical and physical details.  &lt;br /&gt;
&lt;br /&gt;
Link budget analysis for a multipath channel is a challenging task due to the large size of the computational domains involved. Typical propagation scenes usually involve length scales on the order of thousands of wavelengths. To calculate the path loss between the transmitter and receiver, one must solve Maxwell's equations in an extremely large space. Full-wave numerical techniques like the Finite Difference Time Domain (FDTD) method, which require a fine discretization of the computational domain, are therefore impractical for solving large-scale propagation problems. The practical solution is to use asymptotic techniques such as SBR, which utilize analytical techniques over large distances rather than a brute force discretization of the entire computational domain. Such asymptotic techniques, of course, have to compromise modeling accuracy for practical computation feasibility.&lt;br /&gt;
&lt;br /&gt;
[[File:multi1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A multipath propagation scene showing all the rays arriving at a particular receiver.&lt;br /&gt;
&lt;br /&gt;
=== The SBR Method ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] provides an asymptotic ray tracing simulation engine that is based on a technique known as Shooting-and-Bouncing-Rays (SBR). In this technique, propagating spherical waves are modeled as ray tubes or beams that emanate from a source, travel in space, bounce from obstacles and are collected by the receiver. As rays propagate away from their source (transmitter), they begin to spread (or diverge) over distance. In other words, the cross section or footprint of a ray tube expands as a function of the distance from the source. EM.Cube uses an accurate equi-angular ray generation scheme to that produces almost identical ray tubes in all directions to satisfy energy and power conservation requirements.&lt;br /&gt;
&lt;br /&gt;
When a ray hits an obstructing surface, one or more of the following phenomena may happen:&lt;br /&gt;
&lt;br /&gt;
# Reflection from the locally flat surface&lt;br /&gt;
# Transmission through the locally flat surface&lt;br /&gt;
# Diffraction from an edge between two conjoined locally flat surfaces&lt;br /&gt;
&lt;br /&gt;
EM.Cube discretizes all the objects of the scene into flat triangular facets. Obviously, rectangular and cubic objects preserve their geometric shapes through this discretization. Objects with curved surfaces such as cylinders, cones or spheres, are approximated by &amp;amp;quot;polymesh&amp;amp;quot; representations. The geometric fidelity of the resulting mesh depends on the specified mesh edge length. When a ray hits a triangular facet, the propagating spherical wave is approximated as a plane wave at the specular point. The reflection and transmission coefficients of the surface are calculated at the operational frequency and at the particular ray incident angle. &lt;br /&gt;
&lt;br /&gt;
A new reflected ray is generated at the specular point, which starts traveling and bouncing around in the scene. If the obstructing surface is penetrable, a second transmitted ray is generated and added to the scene. If the ray hits the edge of an obstacle, it is diffracted from that edge. This leads to the creation of a cone of new rays, which greatly complicate the computational problem. The Uniform Theory of Diffraction (UTD) is used to calculate the wedge diffraction coefficients at the edges of scattering blocks. Note that reflection, transmission and diffraction coefficients are all dependent on the polarization of the incident plane wave.&lt;br /&gt;
&lt;br /&gt;
A receiver may receive a large number of rays: direct line-of-sight rays from the transmitter, rays reflected or diffracted off the ground or terrain, rays reflected or diffracted from buildings or rays transmitted through buildings. Each received ray is characterized by its power, delay and angles of arrival, which are the spherical coordinate angles &amp;amp;theta; and &amp;amp;phi; of the incoming ray. The actual signal received and detected by the receiver is the superposition of all these rays with different power levels and different time delays. Most of the time, you will be interested in the coverage map of an area, which shows how much power is received by a grid of receivers spread over the area from a given fixed transmitter.&lt;br /&gt;
&lt;br /&gt;
=== Ray Reflection &amp;amp; Transmission ===&lt;br /&gt;
&lt;br /&gt;
The incident, reflected and transmitted rays are each characterized by a triplet of unit vectors:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}, \hat{u}_{\perp}, \hat{k} } )&amp;lt;/math&amp;gt; representing the incident parallel polarization vector, incident perpendicular polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}', \hat{u}_{\perp}', \hat{k}' } )&amp;lt;/math&amp;gt; representing the reflected parallel polarization vector, reflected perpendicular polarization vector and reflected propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;( \mathbf{ \hat{u}_{\|}'', \hat{u}_{\perp}'', \hat{k}'' } )&amp;lt;/math&amp;gt; representing the transmitted parallel polarization vector, transmitted perpendicular polarization vector and transmitted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:reflect.png]]&lt;br /&gt;
&lt;br /&gt;
The Incident, Reflected and Transmitted Rays at the Interface Between Two Dielectric Media&lt;br /&gt;
&lt;br /&gt;
The reflected ray is assumed to originate from a virtual image source point. The three triplets constitute three orthonormal basis systems. Below, it is assumed that the two dielectric media have permittivities &amp;amp;epsilon;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;epsilon;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, and permeabilities &amp;amp;mu;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; and &amp;amp;mu;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, respectively. A lossy medium with a conductivity &amp;amp;sigma; can be modeled by a complex permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = &amp;amp;epsilon;'&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; –j&amp;amp;sigma;/&amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. Assuming '''n''' to be the unit normal to the interface plane between the two media, and Z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;Omega; , the incident polarization vectors as well as all the reflected and transmitted vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp} = \frac{\hat{k} \times \hat{n}}{|\hat{k} \times \hat{n}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|} = \hat{u}_{\perp} \times \hat{k} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml1.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflected unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}' = \hat{k} - 2(\hat{k} \cdot \hat{n}) \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}' = \hat{u}_{\perp}' \times \hat{k}' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The transmitted unit vectors are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{k}'' = \hat{n} \times a - \sqrt{1-a \cdot a} \; \hat{n} } &amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\perp}'' = \hat{u}_{\perp} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_{\|}'' = \hat{u}_{\perp}'' \times \hat{k}'' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{a} = (k_1/k_2) \mathbf{\hat{k} \times \hat{n}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_1 = k_0 \sqrt{\varepsilon_1 \mu_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_2 = k_0 \sqrt{\varepsilon_2 \mu_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_1 = Z_0 \sqrt{\mu_1 / \varepsilon_1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \eta_2 = Z_0 \sqrt{\mu_2 / \varepsilon_2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sin\theta'' = \frac{k_1}{k_2}\sin\theta \text{ if } \sin\theta \le k_2/k_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml4.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml5.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reflection coefficients at the interface are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
R_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Penetration Through Thin Walls Or Surfaces ===&lt;br /&gt;
&lt;br /&gt;
In &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;, we assume that an incident ray gives rise to two rays, one is reflected at the specular point, and the other is transmitted almost in the same direction as the incident ray. The reflected ray is assumed to originate from a virtual image source point. Similar to the case of reflection and transmission at the interface between two dielectric media, here too we have three triplets of unit vectors, which all form orthonormal basis systems.&lt;br /&gt;
&lt;br /&gt;
[[File:thinwalltrans.png]]&lt;br /&gt;
&lt;br /&gt;
The Incident and Transmitted Rays through a Thin Wall&lt;br /&gt;
&lt;br /&gt;
The transmission coefficients are calculated for the two parallel and perpendicular polarizations as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\|} = \frac{(1-{\Gamma_{\|}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\|}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
T_{\perp} = \frac{(1-{\Gamma_{\perp}}^2) \exp(-jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n}}))}&lt;br /&gt;
{ 1-{\Gamma_{\perp}}^2 \exp( -2jk_2 d (\mathbf{ \hat{k}'' \cdot \hat{n} }) ) }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\|} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k}'' \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k} \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 \cos\theta'' - \eta_1 \cos\theta} {\eta_2 \cos\theta'' + \eta_1 \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\|} - Z_{1\|}} {Z_{2\|} + Z_{1\|}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\Gamma_{\perp} = \frac&lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) - \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) } &lt;br /&gt;
{ \eta_2(\mathbf{ \hat{k} \cdot \hat{n} }) + \eta_1(\mathbf{ \hat{k}'' \cdot \hat{n} }) }&lt;br /&gt;
&lt;br /&gt;
= \frac{\eta_2 / \cos\theta'' - \eta_1 / \cos\theta} {\eta_2 / \cos\theta'' + \eta_1 / \cos\theta}&lt;br /&gt;
&lt;br /&gt;
= \frac{Z_{2\perp} - Z_{1\perp}} {Z_{2\perp} + Z_{1\perp}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml21.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wedge Diffraction From Edges ===&lt;br /&gt;
&lt;br /&gt;
For the purpose of calculation of diffraction from building edges, we define a &amp;amp;quot;Wedge&amp;amp;quot; as having two faces, the 0-face and the ''n''-face. The wedge angle is a = (2-''n'')p, where the parameter ''n'' is required for the calculation of diffraction coefficients. All the diffracted rays lie on a cone with its vertex at the diffraction point and a wedge angle equal to the angle of incidence in the opposite direction. A diffracted ray is assumed to originate from a virtual image source point. Three triplets of unit vectors are defined as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_0, \hat{u}_l, \hat{t})}&amp;lt;/math&amp;gt; representing the unit vector normal to the edge and lying in the plane of the 0-face, the unit vector normal to the 0-face, and the unit vector along the edge, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f, \hat{u}_b, \hat{t})}&amp;lt;/math&amp;gt; representing the incident forward polarization vector, incident backward polarization vector and incident propagation vector, respectively.&lt;br /&gt;
* &amp;lt;math&amp;gt;\mathbf{(\hat{u}_f', \hat{u}_b', \hat{t}')}&amp;lt;/math&amp;gt; representing the diffracted forward polarization vector, diffracted backward polarization vector and diffracted propagation vector, respectively.&lt;br /&gt;
&lt;br /&gt;
The three triplets constitute three orthonormal basis systems. The propagation vector '''k'''' of the diffracted ray has to be constructed based on the diffraction cone as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{\hat{k}'} = \cos\phi_w \mathbf{\hat{u}_0} + \sin\phi_w \mathbf{\hat{u}_l} + &lt;br /&gt;
\mathbf{(\hat{k} \cdot \hat{t}) \hat{t}}, \quad 0 \le \phi_w \le \alpha&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the resolution of the angle &amp;amp;theta;&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt; is chosen to be the same as the resolution of the incident ray.&lt;br /&gt;
&lt;br /&gt;
[[File:diffract.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Incident Ray and Diffract Ray Cone at the Edge of a Building&lt;br /&gt;
&lt;br /&gt;
The other unit vectors for the incident and diffracted rays are found as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f = \frac{\hat{k} \times \hat{t}}{|\hat{k} \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b = \hat{k} \times \hat{u}_f } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_f' = \frac{\hat{k}' \times \hat{t}}{|\hat{k}' \times \hat{t}|} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ \hat{u}_b' = \hat{k}' \times \hat{u}_f' } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml9.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The diffraction coefficients are calculated in the following way:&lt;br /&gt;
&lt;br /&gt;
[[File:frml11.png]]&lt;br /&gt;
&lt;br /&gt;
where ''F(x)'' is the Fresnel Transition function:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; F(x) = 2j \sqrt{x} e^{jx} \int_{\sqrt{x}}^{\infty} e^{-j\tau^2} \, d\tau &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:frml12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, we have&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
s = |\rho_D - \rho_S| \\&lt;br /&gt;
s' = |\rho_D - \rho_r|&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L = \frac{s s' \sin^2 \beta'}{s + s'} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a^{\pm}(\nu) = 2\cos^2 \left( \frac{2n\pi N^{\pm} - \nu}{2} \right), \quad \nu = \phi \pm \phi' &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:frml10.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:frml13.png]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;N^{\pm}&amp;lt;/math&amp;gt; are the integers which most closely satisfy the equations &amp;lt;math&amp;gt; 2n\pi N^{\pm} - \nu = \pm \pi &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== SBR As An Asymptotic EM Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulation engine can be used as a versatile and powerful asymptotic electromagnetic (EM) solver. If you compare EM.Cube's [[Propagation Module]] with its other computational modules, you will notice a lot of similarities. While other modules group objects primarily by their material properties, [[Propagation Module]] categorizes the types of obstructing surfaces. Besides sharing the same ray-surface interaction mechanisms, all the objects belonging to a surface group also share the same material properties. [[Propagation Module]] offers similar source types and similar observable types as the other computational modules. For instance, the Hertzian dipole sources used in a SBR simulation are identical to those offered in PO, MoM3D and Planar modules. The plane wave sources are identical across all computational modules. [[Propagation Module]]'s sensor field planes, far field observables (either radiation patterns or RCS) and Huygens surfaces are all fully compatible with EM.Cube's other computational modules.&lt;br /&gt;
&lt;br /&gt;
As an asymptotic EM solver, the SBR engine can be used to model large-scale electromagnetic radiation and scattering problems. An example of this kind is radiation of simple or complex antennas in the presence of large scattering platforms. You have to keep in mind that by using an asymptotic technique in place of a full-wave method, you trade computational speed and lower memory requirements for modeling accuracy. In particular, the SBR method cannot take into account the electromagnetic coupling effects among nearby radiators or scatterers. However, when your scene spans thousands of wavelengths, an SBR simulation might often prove to be your sole practical solution.  &lt;br /&gt;
&lt;br /&gt;
=== Novelties Of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine utilizes an intelligent ray tracing algorithm based on the concept of  k-dimensional trees. A k-d tree is a space-partitioning data structure for organizing points in a k-dimensional space. k-d trees are particularly useful for searches that involve multidimensional search keys such as range searches and nearest neighbor searches. In a typical large radio propagation scene, there might be a large number of rays emanating from the transmitter that may never hit any obstacles. For example, upward-looking rays in an urban propagation scene quickly exit the computational domain. Rays that hit obstacles on their path, on the other hand, generate new reflected and transmitted rays. The k-d tree algorithm traces all these rays systematically in a very fast and efficient manner. Another major advantage of k-d trees is the fast processing of multi-transmitters scenes. Unlike the previous versions of the SBR solver which could handle one transmitter at a time and would superpose all the resulting rays at the end of the simulation, the new SBR shoots rays from all the transmitters at the same time.   &lt;br /&gt;
&lt;br /&gt;
EM.Cube's new SBR simulation engine performs fully polarimetric and coherent SBR simulations with arbitrary transmitter antenna patterns. The new engine solves directly for the vectorial field components at the receiver locations or field observation points. This is far more rigorous than the previous versions of the SBR solver which primarily utilized ray power calculations based on the two vertical and horizontal polarizations. In other words, EM.Cube's new SBR engine is a truly asymptotic &amp;amp;quot;field&amp;amp;quot; solver. As a result, you can visualize the magnitude and phase of all six electric and magnetic field components at any point in the computational domain. For power calculations at the receiver location, an isotropic, polarization-matched, receiving antenna is assumed.       &lt;br /&gt;
&lt;br /&gt;
In most scenes, the buildings and the ground or terrain can be assumed to be made of homogeneous materials. These are represented by their electrical properties such as permittivity e and electric conductivity s. More complex scenes may involve a multilayer ground or multilayer building walls. In such cases, one can no longer use the simple reflection or transmission coefficient formulas for homogeneous medium interfaces. EM.Cube calculates the reflection and transmission coefficients of multilayer structures as functions of incident angle, frequency and polarization and uses them at the respective specular points.  &lt;br /&gt;
&lt;br /&gt;
=== Limitations of EM.Cube's SBR Solver ===&lt;br /&gt;
&lt;br /&gt;
It is very important to keep in mind that SBR is an asymptotic electromagnetic analysis technique that is based on Geometrical Optics (GO) and the Uniform Theory of Diffraction (UTD). It is not a &amp;amp;quot;full-wave&amp;amp;quot; technique, and it does not solve Maxwell's equations directly or numerically. SBR makes a number of assumptions, chief among them, a very high operational frequency such that the length scales involved are much larger than the operating wavelength. Under this assumed regime, electromagnetic waves start to behave like optical rays. Virtually all the calculations in SBR are based on far field approximations. &lt;br /&gt;
&lt;br /&gt;
In order to maintain a high computational speed for urban propagation problems, EM.Cube's SBR solver ignores double diffractions. Recall that diffractions from edges give rise to a large number of new secondary rays. The power of diffracted rays drops much faster than reflected rays. EM.Cube ignores diffracted rays that are not detected by any receiver. In other words, an edge-diffracted ray does not diffract again from another edge. However, reflected and penetrated rays do get diffracted from edges just as rays emanated directly from the sources do.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Propagation Scene ==&lt;br /&gt;
&lt;br /&gt;
An EM.Cube propagation scene typically consists of several elements. At a minimum, you need a transmitter (Tx) at some location to launch rays into the scene and a receiver (Rx) at another location to receive and collect the incoming rays. A transmitter and a receiver together make the simplest propagation scene, representing a free-space line-of-sight (LOS) channel. A transmitter is one of EM.Cube's several source types, while a receiver is one of EM.Cube's several observable types. A simpler source type is a Hertzian dipole. A simpler observable is a field sensor that is used to compute the electric and magnetic fields on a specified plane.&lt;br /&gt;
&lt;br /&gt;
An outdoor propagation scene may involve several buildings (modeled as impenetrable surfaces) and an underlying flat ground or irregular terrain surface. An indoor propagation scene may involve several walls (modeled as thin penetrable surfaces), a ceiling and a floor arranged according to a certain floor plan. You can also build mixed scenes involving both impenetrable and penetrable blocks, possibly along with irregular terrain surfaces. Your sources and observables can be placed anywhere in the scene. Your transmitters and receivers can be placed outdoors or indoors. A complete list of the various elements of a propagation scene is given in the '''Physical Structure''' section of [[Propagation Module]]'s Navigation Tree as follows:&lt;br /&gt;
&lt;br /&gt;
* Impenetrable Surfaces&lt;br /&gt;
* Penetrable Surfaces&lt;br /&gt;
* Terrain Surfaces&lt;br /&gt;
* Base Points&lt;br /&gt;
&lt;br /&gt;
Impenetrable, penetrable and terrain surfaces all obstruct the propagation of electromagnetic waves (rays) in the free space. What differentiates them is the types of physical phenomena that are used to model their interaction with the impinging rays. Base points are simply used to define transmitter and receiver locations in the scene. The following sections of this manual will describe each of these elements in detail.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Navigation Tree of EM.Cube's [[Propagation Module]].&lt;br /&gt;
&lt;br /&gt;
=== The Various Types Of Surfaces &amp;amp;amp; Blocks ===&lt;br /&gt;
&lt;br /&gt;
In a SBR simulation, the propagating rays hit the surface of building structures, walls, terrain (or global ground) and bounce back into the scene (reflection). Some rays penetrate thin walls or other penetrable surfaces and continue their path on the other side of the surface (transmission). The field intensity, phase and power of the reflected and transmitted rays depend on the material properties of the obstructing surface. The specular surface can be modeled as a simple homogeneous dielectric half-space or as a multilayer structure. In that respect, the buildings, walls, terrain or even the global ground all behave in a similar way:&lt;br /&gt;
&lt;br /&gt;
* They terminate an impinging ray and replace it with one or more new rays.&lt;br /&gt;
* They represent a specular interface between two media of different material compositions for calculating the reflection, transmission and possibly diffraction coefficients.&lt;br /&gt;
&lt;br /&gt;
EM.Cube has generalized the concept of '''Block''' as any object that obstructs and affects radio wave propagation. Rays hit the facets of a block and bounce off the surface of those facets or penetrate them and continue their propagation. Rays also get diffracted off the edges of these blocks. In EM.Cube's [[Propagation Module]], blocks are grouped together by the type of their interaction with rays. EM.Cube currently offers three types of blocks for use in a propagation scene:&lt;br /&gt;
&lt;br /&gt;
# '''Impenetrable Surfaces:''' Rays hit the facets of this type of blocks and bounce back, but they do not penetrate the object. It is assumed that the interior of such blocks or buildings are highly absorptive.&lt;br /&gt;
# '''Penetrable Surfaces:''' These blocks represent thin surfaces that are used to model the exterior and interior walls of buildings based on the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot;. Rays reflect off the surface of penetrable surfaces and diffract off their edges. They also penetrate such thin surfaces and continue their paths on the other side of the wall.&lt;br /&gt;
# '''Terrain Surfaces:''' These blocks are used to provide one or more impenetrable, ground surfaces for the propagation scene. Rays simply bounce off terrain objects. The global ground acts as a flat super-terrain that covers the bottom of the entire computational domain. &lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to define block groups of each of the above three types. Each block group has the same color or texture and its members share the same material properties: permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and conductivity &amp;amp;sigma;. Also, all the penetrable surfaces belonging to the same block group have the same wall thickness. You can define many different block groups with certain properties and underneath each introduce many member objects with different geometrical shapes and dimensions. The table below summarizes the characteristics of each block type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Block Type&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Physical Effects&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Admissible Object Types&lt;br /&gt;
|-&lt;br /&gt;
| Impenetrable Surface&lt;br /&gt;
| Reflection, Diffraction&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Penetrable Surface&lt;br /&gt;
| Reflection, Diffraction, Transmission&lt;br /&gt;
| All Solid &amp;amp;amp; Surface CAD Objects&lt;br /&gt;
|-&lt;br /&gt;
| Terrain Surface&lt;br /&gt;
| Reflection&lt;br /&gt;
| Tessellated Objects Only&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Impenetrable Surfaces For Outdoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
In outdoor propagation scenes such as &amp;amp;quot;Urban Canyons&amp;amp;quot;, you are primarily interested in the wireless coverage in the areas among buildings. You can assume that rays bounce off the exterior walls of these buildings but do not penetrate them. In other words, you ignore the transmitted rays and assume that they are either absorbed or diffused inside the buildings. This is not an unrealistic assumption. EM.Cube offers &amp;amp;quot;Impenetrable Blocks&amp;amp;quot; to model buildings in outdoor propagation scenes. A penetrable block has a color or texture property as well as material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and conductivity (s). By default, a brick building is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m. Impinging rays are reflected from the facets of impenetrable buildings or diffracted from their edges.&lt;br /&gt;
&lt;br /&gt;
To define a new impenetrable block group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on either the '''Impenetrable Surfaces''' item of the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the block properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the block group and select a color or texture.&lt;br /&gt;
# The electromagnetic model that determines ray-block interaction is selected under '''Specular Interface Type'''. Two options are available: '''Standard Material''' or '''User Defined Model'''. The former is the default choice and requires material properties, '''Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity''' (&amp;amp;sigma;), which are set to &amp;amp;quot;Brick&amp;amp;quot; by default. No magnetic properties are allowed for blocks.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP14(2).png]]   &lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Impenetrable Surface dialog.&lt;br /&gt;
&lt;br /&gt;
Under an impenetrable block group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of an impenetrable surface. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. In this dialog, you can change the name of the material and its permittivity and electric conductivity. The box labeled &amp;amp;quot;Specify Loss Tangent&amp;amp;quot; is unchecked by default. If you check it, you can specify the '''Loss Tangent''' of the material, which, in turn, updates the value of electric conductivity at the center frequency of the project. You can also use EM.Cube's Material List, which will  be explained later.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to impenetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
=== Penetrable Surfaces For Indoor Scenes ===&lt;br /&gt;
&lt;br /&gt;
A typical indoor propagation scene usually involves an arrangement of walls that represent the interior of a building. The transmitters and receivers are then placed in the spaces among such walls. From the point of view of EM.Cube's SBR simulator, walls act like thin penetrable surfaces. EM.Cube uses the &amp;amp;quot;Thin Wall Approximation&amp;amp;quot; to model penetrable surfaces. It assumes that rays simply penetrate a wall and exit at the same specular point on the opposite side of the wall. In other words, rays are not displaced by the walls, nor do they get trapped inside the walls (no internal reflection). This is equivalent to assuming a zero thickness for penetrable surfaces for the purpose of geometrical ray tracing, while the finite thickness of the &amp;amp;quot;thin&amp;amp;quot; surface is used for electromagnetic calculation of transmission coefficient. EM.Cube offers &amp;amp;quot;Penetrable Surface Blocks&amp;amp;quot; for the construction of rooms in indoor propagation scenes as well as modeling of hollow buildings and other structures. You can define many penetrable surface groups with arbitrary thicknesses and material properties (color, texture, permittivity and electric conductivity).&lt;br /&gt;
&lt;br /&gt;
To define a new penetrable surface group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Right click on one of the '''Penetrable Surfaces''' item in the Navigation Tree and select '''Insert New Block...''' A dialog for setting up the wall properties opens up offering a preloaded material type (Brick) with predefined color and texture.&lt;br /&gt;
# Specify a name for the surface group and select a color or texture.&lt;br /&gt;
# The properties of a penetrable surface are identical to those of an impenetrable surface, plus an additional thickness property.&lt;br /&gt;
# By default, a brick wall with a thickness of 0.5 units is assumed. You can change the '''Thickness''' of the penetrable surface as well as its '''Permittivity'''  &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and '''Electric Conductivity''' &amp;amp;sigma;.&lt;br /&gt;
# Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Penetrable Surface dialog.&lt;br /&gt;
&lt;br /&gt;
Under a penetrable surface group, you can draw any of EM.Cube's native solid or [[Surface Objects|surface objects]] or you can import external model files like STEP, IGES or STL. You can change the properties of a penetrable surface group including its default thickness. In the property dialog of the surface group, click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog. Similar to the case of impenetrable surfaces, from this dialog, you can change the material properties (permittivity and electric conductivity) as well as '''Thickness''', which is expressed in the project units. You can also use EM.Cube's Material List, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s &amp;amp;quot;Edit Layer&amp;amp;quot; dialog corresponding to penetrable surfaces.&lt;br /&gt;
&lt;br /&gt;
You can construct several thin walls and arrange them as rooms. A regular room can be built by placing four vertical wall objects together with an optional horizontal wall at the top for the ceiling. Alternatively, you may use EM.Cube's hollow box objects or boxes with one or two capped end(s).  '''Keep in mind that all the penetrable surfaces belonging to a group have the same wall thickness, which is initially set to 0.5 project units by default. Also, note that solid CAD objects belonging to a penetrable surface group are treated as air-filled hollow structures.''' The thickness of penetrable surfaces is implied and not visualized when displaying objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Computational Domain &amp;amp;amp; Global Ground ===&lt;br /&gt;
&lt;br /&gt;
The SBR simulation engine requires a finite computational domain. All the stray rays that hit the boundaries of this finite domain are terminated during the simulation process. Such rays exit the computational domain and travel to the infinity, with no chance of ever reaching any receiver in the scene. When you define a propagation scene with various elements like buildings, walls, terrain, etc., a dynamic domain is automatically established and displayed as a wireframe box with green lines that surrounds the entire scene. Every time you create a new object, the domain is automatically adjusted and extended to enclose all the objects in the scene. You can change the size and color of the domain box through the Ray Domain Settings Dialog, which can be accessed in one of the following three ways:&lt;br /&gt;
&lt;br /&gt;
# Click the '''Domain''' [[File:image025.jpg]] button of the Simulation Toolbar.&lt;br /&gt;
# Select the '''Simulate''' &amp;amp;gt; '''Computational Domain''' &amp;amp;gt; '''Settings...''' item of the Simulate Menu.&lt;br /&gt;
# Right click on the '''Ray Domain''' item of the Navigation Tree and select '''Domain Settings...'''&lt;br /&gt;
# Use the keyboard shortcut '''Ctrl + A'''.&lt;br /&gt;
&lt;br /&gt;
The size of the Ray domain is specified in terms of six '''Offset''' parameters along the ±X, ±Y and ±Z directions. The default value of all these six offset parameters is 10 project units. You can change them arbitrarily. After changing these values, use the '''Apply''' button to make the changes effective while the dialog is still open.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Most outdoor and indoor propagation scenes include a flat ground at their bottom, which bounces incident rays back into the scene. EM.Cube's [[Propagation Module]] provides a global flat ground at z = 0. The global ground indeed acts as an impenetrable surface that blocks the entire computational domain from the z = 0 plane downward. It is displayed as a translucent green plane at z = 0 extending downward. The color of the ground plane is always the same as the color of the ray domain. The global ground is assumed to be made of a homogeneous dielectric material with a specified permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma;. By default, a rocky ground is assumed with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m. You can remove the global ground, in which case, you will have a free space scene. To disable the global ground, open up the Global Ground Settings Dialog, which can be accessed by right clicking on the '''Global Ground''' item in the Navigation Tree and selecting '''Global Ground Settings... '''Remove the check mark from the box labeled '''&amp;amp;quot;Include Half-Space Ground (z&amp;amp;lt;0)&amp;amp;quot;''' to disable the global ground. This will also remove the green translucent plane from the bottom of your scene. You can also change the material properties of the global ground and set new values for the permittivity and electric conductivity of the impenetrable, half-space, dielectric medium. '''Do not forget to disable the global ground if you want to model a free space propagation scene.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PROP4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[Propagation Module]]'s Global Ground Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Surfaces vs. Global Ground ===&lt;br /&gt;
&lt;br /&gt;
A terrain surface acts as a custom, unlevel or irregular ground for your propagation scene. EM.Cube's default global ground blocks the z &amp;amp;lt; 0 half-space everywhere in the computational domain. You can simply turn off the global ground and create one or more terrain objects and place them arbitrarily in the scene. You can also import an external terrain model or file. A terrain represents an impenetrable surface with a more complex surface profile. You can have one or more terrain objects of finite extents and place them on or above the global ground.&lt;br /&gt;
&lt;br /&gt;
Terrain objects have some important differences with objects of the &amp;amp;quot;Impenetrable Surface&amp;amp;quot; type:&lt;br /&gt;
&lt;br /&gt;
# While impenetrable blocks can be created using any of EM.Cube's solid or surface CAD object creation tools, terrain objects are created either using EM.Cube's '''Terrain Generator''' or by importing an external terrain file. &lt;br /&gt;
# Terrain objects belong to a special type of CAD objects called &amp;amp;quot;Tessellated Objects&amp;amp;quot;, which differ from other regular CAD [[Surface Objects|surface objects]] or EM.Cube's polymesh surfaces.&lt;br /&gt;
# Terrain surfaces do not diffract impinging rays at their many small edges.&lt;br /&gt;
# Terrain objects affect the elevation of other objects or transmitters or receivers that are located above them.&lt;br /&gt;
&lt;br /&gt;
Just as other blocks are grouped by their color, texture and material composition, terrain objects are also grouped in a similar fashion. Before you can generate or import a new terrain object, first you have to define a terrain group and specify its color/texture and material properties. To define a new terrain group, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Terrain''' item in the Navigation Tree and select '''Insert New Terrain...''' A dialog for setting up the terrain properties opens up offering a of preloaded material type (Rock) with predefined green color and no texture.&lt;br /&gt;
* Specify a name for the terrain group and select a color or texture.&lt;br /&gt;
* Similar to other blocks, you have to specify the material properties, Permittivity (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and Electric Conductivity (&amp;amp;sigma;), of the terrain group. Rock with &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 5 and &amp;amp;sigma; = 0.005 S/m is the default material choice for a new terrain.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Terrain dialog.&lt;br /&gt;
&lt;br /&gt;
You can change the properties of a terrain surface group from its property dialog. Click on the table that list the properties to select and highlight a row. Then, click the '''Add/Edit''' button to open up the &amp;amp;quot;Edit Layer&amp;amp;quot; dialog, which is identical to the case of impenetrable surfaces. You can also use EM.Cube's Material List, which will be explained later. When a new terrain type is created, its node on the Navigation Tree becomes active. Under this node you can create and add new terrain objects. When a terrain node is active for drawing, all CAD object creation tools are disabled. You have three options for creating a new terrain object, which will be described in detail in the next sections of this manual:&lt;br /&gt;
&lt;br /&gt;
# Use EM.Cube's '''Terrain Generator'''.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.TRN'''&amp;amp;quot; type.&lt;br /&gt;
# Import an external terrain file of &amp;amp;quot;'''.DEM'''&amp;amp;quot; type.&lt;br /&gt;
&lt;br /&gt;
=== Using Terrain Generator ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18.png|thumb|250px|[[Propagation Module]]'s Terrain Generator dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides a convenient and powerful Terrain Generator for creating a variety of terrain [[Surface Objects|surface objects]]. EM.Cube's Terrain Generator looks very similar to [[CubeCAD]]'s Surface Generator. However, whereas the Surface Generator creates a generic or polymesh surface object, Terrain Generator always creates another special type of object known as a '''Tessellated Object'''. A terrain object is much simpler than EM.Cube's polymesh objects and is usually made up of triangular or quadrilateral facets. As such, terrain objects have limited editing capabilities. For example, you can cut, copy, paste, translate or rotate  terrain objects. But operations like scaling, mirroring, grouping (composite), arraying, exploding, linking or Boolean operations do not work on terrain objects.&lt;br /&gt;
&lt;br /&gt;
To create a new terrain object using Terrain Generator, first you need to define a terrain group in the Navigation Tree. Right click on the name of the terrain node and select '''Terrain Generator...''' from the contextual menu. This opens up the Terrain Generator Dialog. Using Terrain Generator, you can build a single terrain surface or an array of surfaces patched together. Some of the available terrain models include:&lt;br /&gt;
&lt;br /&gt;
# Flat Plane&lt;br /&gt;
# Hill (Elliptic Quadratic)&lt;br /&gt;
# Mountain (Elliptic Cone)&lt;br /&gt;
# 1-D and 2-D Cliff&lt;br /&gt;
# Gaussian Hump&lt;br /&gt;
# Undulated Sinusoid&lt;br /&gt;
# Undulated Sinc&lt;br /&gt;
# Super-quadratic Plateau&lt;br /&gt;
# Custom Function&lt;br /&gt;
# XY Grid Data&lt;br /&gt;
&lt;br /&gt;
In all of the above models, you can set the height of the surface object to an any desired value. You set the lateral extents of the surface and its resolution along the X and Y directions in the boxes labeled '''Range Start''', '''Range Stop''' and '''Range Step'''. The step values along the X and Y directions are a measure of surface smoothness: the smaller the step values, the higher the resolution and the smoother the resulting terrain object.&lt;br /&gt;
&lt;br /&gt;
Some surface types have an additional shape factor called '''Alpha''' that is identical to the alpha parameter in the surface generator. For example, a Gaussian Hump is defined as exp(-r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/(2a&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)), where r is the polar radius. For a Super-quadratic Hump, the input parameter a defines the degree of the super-quadratic surface. a = 2 corresponds to an ellipsoid. Larger values of a get close to a rectangular base with rounded corners. An undulated sinusoidal surface is defined by cos(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*cos(pay/D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;), and an undulated sinc is defined by D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;*D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;*sin(pax/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)*sin(pay/D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;)/(2pxy), where D&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and D&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; are the X and Y dimensions, respectively. Terrain Generator creates a unit cell based on the specified surface type. From the same dialog, you can also produce an array arrangement of such unit cells. Simply enter any number of elements along the X and Y directions in the boxes labeled '''Array'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP19.png|800px]]  &lt;br /&gt;
&lt;br /&gt;
Figure: A 4 × 4 array of hill terrain objects.&lt;br /&gt;
&lt;br /&gt;
You can define any arbitrary surface by entering an equation of the two [[variables]] x and y as z = f(x,y). In this case, you have to select the '''Custom Function''' option in the dropdown list labeled '''Model'''. You should enter your equation as any mathematical expression in the box labeled '''Function f(x,y)'''. You can use any of EM.Cube's mathematical functions listed in the '''Function Dialog''' or combine several of them. Note that after selecting the custom function option, the height of the surface is determined by your equation, and the '''Height''' box is disabled. You can also introduce random noise and create a rough terrain. You can do this by setting a nonzero value for '''Noise''', which represent the RMS peak-to-valley amplitude of the surface roughness. The figures below show two custom terrain surfaces modeled by the equation z = (x.y)/20 defined over the range [0, 10] in both X and Y directions. Random noise has been added to both surfaces, with the noise amplitude being 0.2 and 0.5 for the left and right figures, respectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP21.png|400px]] [[File:PROP20.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Two noisy custom terrain surfaces both defined as z = (x.y)/20: (Left) RMS noise amplitude = 0.2, (right) RMS noise amplitude = 0.5.&lt;br /&gt;
&lt;br /&gt;
=== Generating Grid-Based Terrain ===&lt;br /&gt;
&lt;br /&gt;
Every time you create a new terrain object using Terrain Generator, an ASCII data file named &amp;amp;quot;GeneratedTerrain&amp;amp;quot; with a &amp;amp;quot;'''.TRN'''&amp;amp;quot; file extension is created and placed in your project folder. This is EM.Cube's simple native terrain file format that basically lists all the (x, y, z) coordinates of the generated surface points on a horizontal, rectangular XY grid. Terrain Generator simply takes your custom function definition or one of the selected catalog surface types and generates the digital elevation data on the specified grid.  &lt;br /&gt;
&lt;br /&gt;
Another type of terrain model that the terrain generator provides is '''XY Grid Data'''. In this case, you define a rectangular XY grid with a uniform grid cell size along the X and Y directions and manually define the Z-elevation for each grid point. This is similar to the surface generator's &amp;amp;quot;2D Uniform Grid&amp;amp;quot; model type in [[CubeCAD]]. Based on your input to '''Range Start''', '''Range Stop''' and '''Range Step''' along X and Y, a 2D grid is set up and displayed in a table at the bottom of the terrain generator dialog. By default, all the Z-elevations are set to zero initially. You can click on each table cell and overwrite it with a new value. At the end, click the '''Create''' button of the dialog to add the new grid-based terrain object to the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:terrain10_tn.png]]&lt;br /&gt;
&lt;br /&gt;
A grid-based terrain object.&lt;br /&gt;
&lt;br /&gt;
=== Importing &amp;amp;amp; Exporting Terrain Models ===&lt;br /&gt;
&lt;br /&gt;
You can import two types of terrain in EM.Cube's [[Propagation Module]]. The first type is &amp;amp;quot;'''.TRN&amp;amp;quot;''' terrain file, which is EM.Cube's native terrain format. It is a basic digital elevation map with a very simple ASCII data file format. The resolution of the terrain map in the X and Y directions is specified in meters as STEPS. The (x, y, z) coordinates of the terrain points are then listed one point per line. The other type of terrain format supported by EM.Cube is the standard '''7.5min DEM''' file format with a '''.DEM''' file extension. &lt;br /&gt;
&lt;br /&gt;
To import an external terrain model, first you have to create a terrain group node in the Navigation Tree. Right click on the name of the terrain group in the Navigation Tree and select either '''Import Terrain...''' or '''Import DEM File...''' A standard Windows '''Open Dialog''' opens up, with the file type set to .TRN or .DEM extensions, respectively. You can browse your folders and find the right terrain model file to import.&lt;br /&gt;
&lt;br /&gt;
You can also export all the terrain objects in the project workspace as a terrain file with a '''.TRN''' file extension. You can even import a DEM terrain model from an external file and then save and export it as a native terrain (.TRN) file. To export the terrain, select '''File''' &amp;amp;gt; '''Export...''' from [[Propagation Module]]'s '''File Menu'''. The standard Windows Save Dialog opens up with the default file type set to '''.TRN'''. Type in a name for your new terrain file and click the '''Save''' button to export the terrain data.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-12_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figur: An imported external terrain model.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Surface Models ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP26.png|thumb|250px|Propagation Module's Penetrable Surface Dialog showing a three-layer wall composition]]&lt;br /&gt;
&lt;br /&gt;
Most of the time, your outdoor propagation scene consists of simple buildings made of single-layer walls with standard material properties (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;). In the case of a single-layer impenetrable surface, the specular interface is an infinite dielectric half-space, which reflects the impinging rays. Single-layer penetrable surfaces, on the other hand, involve finite-thickness dielectric walls, which both reflect and transmit the incident rays. Similarly, most of your indoor propagation scenes involve simple single-layer penetrable walls with the specified material properties &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. A thin wall acts like a finite-thickness dielectric slab that both reflects and transmits incident rays. In the case of the global ground or terrain objects, only ray reflection off the ground surface is considered.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[Propagation Module]], you can define multilayer surfaces with both reflection and transmission properties. You can define multilayer impenetrable buildings, multilayer penetrable walls, and multilayer terrain, with an arbitrary number of layers having different material compositions. You define a multilayer surface in the property dialog of a block, whether impenetrable, penetrable or terrain. In the section entitled '''Surface Type''', two options are available: '''Standard Material''' or '''User Defined Model'''. For simple multilayer walls, select the '''Standard Material''' option. You can add new layers with arbitrary thickness and material parameters to the existing layers. To insert a new layer, deselect any items in the layer list, and click the '''Add/Edit''' button to open the &amp;amp;quot;Add Layer&amp;amp;quot; Dialog. Here you can enter a name for the new layer and values for its '''Thickness''', &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and &amp;amp;sigma;. You may also delete any layer by selecting and highlighting it and clicking the '''Delete''' button. You can move layers up or down using the '''Move Up''' and '''Move Down''' buttons and change the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
You can also search EM.Cube's material database by clicking the '''Material''' button of &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. This opens the '''Materials''' Dialog. Inside the material list select and highlight any row and click the '''OK''' button. The selected material will fill out all the fields in the &amp;amp;quot;Add Layer&amp;amp;quot; or &amp;amp;quot;Edit Layer&amp;amp;quot; dialogs. Inside the Materials Dialog, you can type the few first letters of any material, and it will take you to the corresponding row of the list.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
=== Transferring Objects From Or To Other Modules ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube's [[Propagation Module]] and draw a solid object like a box in the project workspace without having defined any surface groups, it is assumed to be of the impenetrable surface type. A default impenetrable surface group called Block_1 is automatically added to the Navigation Tree, which holds your newly drawn object. The default group has the material properties of &amp;amp;quot;Brick&amp;amp;quot; (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 4.4 and &amp;amp;sigma; = 0.001 S/m.) with a dark brown color. You can continue drawing new objects in the project workspace and adding them under this block node. Or you can define a new surface type with different properties. By default, the last surface group that was defined is '''Active'''. The current active surface group is always listed in bold letters in the Navigation Tree. When you draw a new object, it is always inserted under the current active surface group. Any surface group can be activated by right clicking its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move any object from its current surface group into any other available surface group. First select the object, then right click on its surface and select '''MoveTo &amp;amp;gt; Propagation &amp;amp;gt;'''. A submenu appears which lists all the available surface groups where you can transfer the selected object. You can also move objects among surface groups by selecting their names in the Navigation Tree and using the contextual menu. In a similar way, you can transfer objects from [[Propagation Module]] to EM.Cube's other modules or vice versa. '''Keep in mind that all the external model files such as STEP, IGES, STL, etc. are first imported to EM.Cube's [[CubeCAD]], from which you can transfer them to other modules.''' First select the object, then right click and select '''MoveTo &amp;amp;gt;'''. In the submenu you will see a list of all the EM.Cube modules that have at least one available group where you can transfer your selected object. You can select multiple objects for transfer. When using the keyboard's '''Shift Key''' or '''Ctrl Key''' for multiple selection, make sure that those keys are held down, when you right click to access the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Defining Sources &amp;amp;amp; Observables ==&lt;br /&gt;
&lt;br /&gt;
Like every other electromagnetic solver, EM.Cube's SBR ray tracer requires a source for excitation and one or more observables for generation of simulation data. EM.Cube's new [[Propagation Module]] offers several types of sources and observables for a SBR simulation. You can mix and match different source types and observable types depending on the requirements of your modeling problem. There are two types of sources:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Transmitter Sets|Transmitter]]&lt;br /&gt;
* [[#Hertzian Dipole Sources|Hertzian Dipole]]&lt;br /&gt;
&lt;br /&gt;
There are four types of observables:&lt;br /&gt;
&lt;br /&gt;
* [[#Defining Receiver Sets|Receivers]]&lt;br /&gt;
* [[#Defining Field Sensors|Field Sensor]]&lt;br /&gt;
* Far Fields&lt;br /&gt;
* Huygens Surface&lt;br /&gt;
&lt;br /&gt;
The simplest SBR simulation can be performed using a short dipole source with a specified field sensor plane. In this way, EM.Cube computes the electric and magnetic fields radiated by your dipole source in the presence of your multipath propagation environment. A &amp;amp;quot;classic&amp;amp;quot; urban propagation scene can be set up using a &amp;amp;quot;Transmitter&amp;amp;quot; source and an array of &amp;amp;quot;Receiver&amp;amp;quot; observables. A transmitter is a point radiator with a user defined radiation pattern. A receiver is a polarization-matched isotropic point radiator that collects the received rays at its aperture. Using receivers, you can calculate the received power coverage map of your propagation scene. You can also calculate your channel's path loss between the transmitter and all the receivers. &amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP18(1).png|thumb|[[Propagation Module]]'s Transmitter dialog with a short dipole radiator selected]]&lt;br /&gt;
Earlier versions of EM.Cube's [[Propagation Module]] used to offer an isotropic radiator with vertical or horizontal polarization as the simplest transmitter type. This release of EM.Cube has abandoned isotropic radiator transmitters because they do not exist physically in a real world. Instead, the default transmitter radiator type is now a Hertzian dipole. Note that before defining a transmitter, first you have to define a base set to establish the location of the transmitter. Most simulation scenes involve only a single transmitter. Your base set can be made up of a single point for this purpose. &lt;br /&gt;
&lt;br /&gt;
To define a new Transmitter Set, go to the '''Sources''' section of the Navigation Tree, right click on the '''Transmitters''' item and select '''Insert Transmitter...''' A dialog opens up that contains a default name for the new Transmitter Set as well as a dropdown list labeled '''Select Base Set'''. In this list you will see all the available base sets already defined in the project workspace. Select the desired base set to associate with the transmitter set. Note that if the base set contains more than one point, then more than one transmitter will be created and contained in your transmitter set. After defining a transmitter set, the base points change their color to the transmitter color, which is red by default.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Radiator&amp;amp;quot; section of the dialog, you have two options to choose from: &amp;amp;quot;Short Dipole&amp;amp;quot; and &amp;amp;quot;User Defined&amp;amp;quot;. The default option is short dipole. A short dipole radiator has a '''Length'''''dl'' expressed in project units, a current '''Amplitude''' in Amperes and a current '''Phase''' in degrees. The '''Direction''' of the dipole is determined by its unit vector that has three X, Y and Z components. By default, a Z-directed short dipole radiator is assumed. You can change all parameters of the dipole as you wish. Keep in mind that all the transmitters belonging to the same set have parallel radiators with identical properties.&lt;br /&gt;
&lt;br /&gt;
=== Defining Base Point Sets ===&lt;br /&gt;
&lt;br /&gt;
[[File:PROP1.png|thumb|[[Propagation Module]]'s Base Set dialog]]&lt;br /&gt;
In order to tie up transmitters and receivers with CAD objects in the project workspace, EM.Cube uses point objects to define transmitters and receivers. These point objects represent the base of the location of transmitters and receivers in the computational domain. Hence, they are grouped together as &amp;amp;quot;Base Sets&amp;amp;quot;. You can easily interchange the role of transmitters and receivers in a scene by switching their associated bases. The usefulness of concept of base sets will become apparent later when you place transmitters or receivers on an irregular terrain and adjust their elevation.   &lt;br /&gt;
&lt;br /&gt;
To create a new base set, right click on the '''Base Sets''' item of Navigation Tree and select '''Insert Base Set...''' A dialog for setting up the Base Set properties opens up.&lt;br /&gt;
&lt;br /&gt;
# Enter a name for the base set and change the default blue color if you wish. It is useful to differentiate the base sets associated with transmitters and receivers by their color.&lt;br /&gt;
# Click the '''OK''' button to close the Base Set Dialog.&lt;br /&gt;
&lt;br /&gt;
Once a base set node has been added to the Navigation Tree, it becomes the active node for new object drawing. Under base sets, you can only draw point objects. All other object creation tools are disabled. A point is initially drawn on the XY plane. Make sure to change the Z-coordinate of your radiator, otherwise, it will fall on the global ground at z = 0. You can also create arrays of base points under the same base set. This is particularly useful for setting up receiver grids to compute coverage maps. Simply select a point object and click the '''Array Tool''' of '''Tools Toolbar''' or use the keyboard shortcut &amp;amp;quot;A&amp;amp;quot;. Enter values for the X, Y or Z spacing as well as the number of elements along these three directions in the Array Dialog. In most propagation scenes you are interested in 2D horizontal arrays along a fixed Z coordinate (parallel to the XY plane).&lt;br /&gt;
&lt;br /&gt;
=== Defining Transmitter Sets ===&lt;br /&gt;
&lt;br /&gt;
A short dipole is the closest thing to an omni-directional radiator. The direction or orientation of the short dipole determines its polarization. In many applications, you may rather want to use a directional antenna for your transmitter. You can model a radiating structure using EM.Cube's FDTD, Planar, MoM3D or PO modules and generate a 3D radiation pattern data file for it. These data are stored in a specially formatted file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension, which contains columns of spherical &amp;amp;phi; and &amp;amp;theta; angles as well as the real and imaginary parts of the complex-valued far field components '''E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;''' and '''E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;'''. The &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field determine the polarization of the transmitting radiator. &lt;br /&gt;
&lt;br /&gt;
To define a directional transmitter radiator, you need to select the &amp;amp;quot;User Defined&amp;amp;quot; option in the &amp;amp;quot;Radiator&amp;amp;quot; section of the Transmitter Dialog. You can do this either at the time of creating a transmitter set, or afterwards by opening the property dialog of the transmitter set. In the &amp;amp;quot;Custom Pattern Parameters&amp;amp;quot;, click the '''Import Pattern''' button to set the path for the radiation data file. This opens up the standard Windows Open dialog, with the default file type or extension set to &amp;amp;quot;.RAD&amp;amp;quot;. Browse your folders to find the right data file. A radiation pattern file usually contains the value of &amp;amp;quot;Total Radiated Power&amp;amp;quot; in its file header. This is used by default for power calculations in the SBR simulation. However, you can check the box labeled &amp;amp;quot;'''Custom Power'''&amp;amp;quot; and enter a value for the transmitter power in Watts. EM.Cube can also rotate the imported radiation pattern arbitrarily. In this case, you need to specify the '''Rotation''' angles in degrees about the X-, Y- and Z-axes. Note that these rotations are performed sequentially and in order: first a rotation about the X-axis, then a rotation about the Y-axis, and finally a rotation about the Z-axis. &lt;br /&gt;
&lt;br /&gt;
[[File:PROP19(1).png]] [[File:PROP20(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Transmitter dialog with a user defined radiator selected.&lt;br /&gt;
&lt;br /&gt;
=== Multiple Transmitters vs. Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's SBR simulations are fully coherent and 3D-polarimetric. This means that the phase and polarization of all the rays are maintained and processed during their bounces in the scene. Your propagation scene can have more than one transmitter. During an SBR simulation, all the rays emanating from all the transmitters are traced in the propagation scene. All the received rays at a given receiver location are summed coherently and vectorially. This is based on the principle of linear superposition. All the transmitters belonging to the same transmitter set have the same radiation properties. They are either parallel short dipole radiators with the same current amplitudes and phases, or parallel user defined radiators with identical radiation patterns. As these transmitters are placed at different spatial locations, they effectively form an antenna array with identical elements. The array factor is simply determined by the coordinates of the base points. If you want to have different amplitude or phases, then you need to define different transmitter sets.&lt;br /&gt;
&lt;br /&gt;
If that radiators are indeed the elements of an actual antenna array with a half wavelength spacing or so, we recommend that you import the radiation pattern of the array structure instead and replace the whole multi-radiator system with a single point transmitting radiator in your propagation scene. This case is usually encountered in MIMO systems, and using an equivalent point transmitter is an acceptable approximation because the total size of the array aperture is usually much smaller than the dimensions of your propagation scene and its representative length scales. In that case, you need to position the equivalent point radiator at the radiation center of the antenna array. This depends on the physical structure of the antenna array. However, keep in mind that any reasonable guess may still provide a good approximation without any significant error in the received ray data.    &lt;br /&gt;
&lt;br /&gt;
=== Defining Receiver Sets ===&lt;br /&gt;
&lt;br /&gt;
Receivers act as observables in a propagation scene. The objective of a SBR simulation is to calculate the far-zone electric fields and the total received power at the location of a receiver. In that sense, receivers indeed act as field observation points. You need to define at least one receiver in the scene before you can run a SBR simulation. You define the receivers of your scene by associating them with the base sets you have already defined in the project workspace. Unlike transmitters that usually one or few, a typical propagation scene may involve a large number of receivers. To generate a wireless coverage map, you need to define an array of points as your base set.    &lt;br /&gt;
&lt;br /&gt;
To define a new Receiver Set, go to the Observables section of the Navigation Tree, right click on the '''Receivers''' item and select '''Insert Receiver...''' A dialog opens up that contains a default name for the new Receiver Set as well as a dropdown list labeled '''Select Radiator Set'''. In this list you will see all the available base sets that you have already define in the project workspace. Select and designate the desired base set as the receiver set. Note that if the base set contains more than one point, all of them are designated as receivers. After defining a receiver set, the points change their color to the receiver color, which is yellow by default. The first element of the set is represented by a larger ball of the same color indicating that it is the selected receiver in the scene. The Receiver Set Dialog is also used to access individual receivers of the set for data visualization at the end of a simulation. At the end of an SBR simulation, the button labeled &amp;amp;quot;Show Ray Data&amp;amp;quot; becomes enabled. Clicking this button opens the Ray Data Dialog, where you can see a list of all the received rays at the selected receiver and their computed characteristics.   &lt;br /&gt;
&lt;br /&gt;
[[File:PROP21(1).png]] [[File:PROP22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Receiver dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Field Sensors ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|[[Propagation Module]]'s Field Sensor dialog]]&lt;br /&gt;
As an asymptotic electromagnetic field solver, the SBR simulation engine can compute the electric and magnetic field distributions in a specified plane. In order to view these field distributions, you must first define field sensor observables before running the SBR simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear. &lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.   &lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a SBR simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|E_{tot}|} = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{|H_{tot}|} = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Computing Radiation Patterns In SBR ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
== Scene Discretization &amp;amp;amp; Adjustment ==&lt;br /&gt;
&lt;br /&gt;
=== The Need For Discretization Of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
In a typical SBR simulation, a ray is traced from the location of the source until it hits a scatterer. The SBR method assumes that the ray hits either a flat facet of the scatterer or one of its edges. In the case of hitting a flat facet, the specular point is used to launch new reflected and transmitted rays. The surface of the facet is treated as an infinite dielectric medium interface, at which the reflection and transmission coefficients are calculated. In the case of hitting an edge, new diffracted rays are generated in the scene. However, only those who reach a nearby receiver in their line of sight are ever taken into account. In other words, diffractions are treated locally.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] allows you to draw any type of surface or solid CAD objects under impenetrable and penetrable surface groups. Some of these objects have flat faces such as boxes, pyramids, rectangle or triangle strips, etc. Some others contain curved surfaces or curved boundaries such as cylinders, cones, etc. All the non-flat surfaces have to be discretized in the form of a collection of smaller flat facets. EM.Cube uses a triangular surface mesh generator to discretize the penetrable and impenetrable [[Surface Objects|surface objects]] of your propagation scene. This mesh generator is very similar to the ones used in EM.Cube's two other modules: MoM3D and Physical Optics (PO). &lt;br /&gt;
&lt;br /&gt;
You can build a variety of surface and [[Solid Objects|solid objects]] using EM.Cube's native &amp;amp;quot;Curve&amp;amp;quot; CAD objects like lines, polylines, circles, etc. You can use tools like Extrude, Loft, Strip-Sweep, Pipe-Sweep, etc. to transform curves into surface or [[Solid Objects|solid objects]]. '''However, keep in mind that all the &amp;amp;quot;Curve&amp;amp;quot; CAD objects are ignored by the SBR mesh generator and are therefore not sent to the simulation engine.'''&lt;br /&gt;
&lt;br /&gt;
=== Viewing SBR Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can view and examine the discretized version of your scene objects as they are sent to the SBR simulation engine. To view the mesh, click the '''Mesh''' [[File:mesh_tool.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''', or use the keyboard shortcut '''Ctrl+M'''. A triangular surface mesh of your physical structure appears in the project workspace. In this case, EM.Cube enters it mesh view mode. You can perform view operations like rotate view, pan, zoom, etc. But you cannot select objects, or move them or edit their properties. To get out of the Mesh View and return to EM.Cube's Normal View, press the '''Esc Key''' of the keyboard, or click the Mesh button of the Simulate Toolbar once again, or go to the Simulate Menu and deselect the '''Discretization &amp;amp;gt;''' '''Show Mesh''' item.&lt;br /&gt;
&lt;br /&gt;
You can adjust the mesh resolution and increase the geometric fidelity of discretization by creating more and finer triangular facets. On the other hand, you may want to reduce the mesh complexity and send to the SBR engine only a few coarse facets to model your buildings. To adjust the mesh resolution, open the Mesh Settings Dialog by clicking the '''Mesh Settings''' [[File:mesh_settings.png]] button of the Simulate Toolbar or select '''Simulate &amp;amp;gt; Discretization &amp;amp;gt;''' '''Mesh Settings...'''. This dialog provides a single parameters: '''Edge Length'''., which has a default value of 100 project units. If you are already in the Mesh View Mode and open the Mesh Settings Dialog, you can see the effect of changing the edge length using the '''Apply''' button. Click OK to close the dialog.&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules that express the default mesh density based on the wavelength, the resolution of the SBR mesh generator is expressed in project length units. The default edge length value of 100 units might be too large for non-flat objects. You may have to use a lower value to capture the curvature of your curved structures adequately. &lt;br /&gt;
&lt;br /&gt;
[[File:prop_manual-29.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Special Discretized Object Types ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, terrain objects are represented by and saved as special &amp;amp;quot;Tessellated&amp;amp;quot; objects with quadrilateral cells. This is true of terrain objects that you create yourself using EM.Cube's Terrain Generator as well as all the terrain objects that you import from external files to your project. The center of each cell represents the terrain elevation at that point. Tessellated objects are considered as discretized objects by EM.Cube and they are not meshed one more time by the SBR mesh generator. Each quadrilateral cell is divided into two triangular cells before being passed to the SBR simulation engine. Therefore, when using EM.Cube's Terrain Generator to create a new terrain object, you have to pay special attention to the resolution of the terrain object as it determines the total number of terrain facets sent to the simulation engine. A high resolution terrain, although looking better and more realistic, may easily lead to an enormous computational problem.&lt;br /&gt;
&lt;br /&gt;
You can use EM.Cube's &amp;amp;quot;Polymesh&amp;amp;quot; tool to discretize solid and surface CAD objects. You can manually control the mesh characteristics of polymesh objects including inserting new nodes on faces and edges or deleting existing nodes. In addition, EM.Cube's Solid Generator and Surface Generator tools create ploymesh solids and surfaces, respectively. Like tessellated object, polymesh objects are also considered as discretized objects by EM.Cube and they are not meshed again by the SBR mesh generator.   &lt;br /&gt;
&lt;br /&gt;
=== SBR Mesh Rules &amp;amp;amp; Considerations ===&lt;br /&gt;
&lt;br /&gt;
Coming Soon...&lt;br /&gt;
&lt;br /&gt;
=== Adjusting Block Elevation On Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, buildings and all other CAD objects are initially created on the XY plane by default. In other words, the Z-coordinate of the local coordinate system (LCS) of all blocks is set to zero until you change them. As long as you use the global ground, all is fine as your buildings are seated on the ground. When your propagation scene has an irregular terrain, you want to place your buildings on the terrain and not buried under it. Buildings in EM.Cube are not adjusted to the terrain elevation automatically. You need to instruct EM.Cube to do so.&lt;br /&gt;
&lt;br /&gt;
To update the building positions and adjust their elevation to the underlying terrain, right click on the '''Terrain''' item of the Navigation Tree and select '''Adjust Scene Elevation''' from the context menu. All the blocks in the scene are automatically elevated in the Z direction such that their bases sit on the terrain. In effect, all the blocks are translated along the global Z axis by proper amounts such that their local Z coordinate equals the Z-elevation of the underlying terrain object. This feature is particularly useful if you change the location of the terrain or import a new terrain after the blocks have been created.&lt;br /&gt;
&lt;br /&gt;
Note: You have to make sure that the resolution of your terrain, its fluctuation scale and building dimensions are all comparable. Otherwise, on a high-resolution, rapidly varying terrain, you will have buildings whose bottoms are in contact with the terrain only at a few points and parts of them hang in the air.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_adjust1_tn.png|400px]] [[File:prop_adjust2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A Scene with Buildings and Terrain Before and After Adjusting Elevation&lt;br /&gt;
&lt;br /&gt;
=== Transmitters &amp;amp;amp; Receivers Above An Irregular Terrain ===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, all the transmitters and receivers are tied up with point objects in the project workspace. These point objects are grouped and organized in base sets. When you move the point objects or change their coordinates, all of their associated transmitters or receivers immediately follow them to the new location. For example, you usually define a grid of receivers using a base set that is made up of a uniformly spaced array of points and spread them in your scene. All of these receivers have the same height because their associated base points all have the same Z-coordinate. When your receivers are located above a flat terrain like the global ground, their Z-coordinates are equal to their height above the ground, as the terrain elevation is fixed and equal to zero everywhere. The same is true for transmitters, too.   &lt;br /&gt;
&lt;br /&gt;
In many propagation modeling problems, your transmitters and receivers may be located above an irregular terrain with varying elevation across the scene. In that case, you may want to place your transmitters or receivers at a certain height above the underlying ground. The Z-coordinate of a transmitter or receiver is now the sum of the terrain elevation at the base point and the specified height. EM.Cube gives you the option to adjust the transmitter and receiver sets to the terrain elevation. This is done for individual transmitter sets and individual receiver sets. At the top of the Transmitter Dialog there is a check box labeled &amp;amp;quot;'''Adjust Tx Sets to Terrain Elevation'''&amp;amp;quot;. Similarly, at the top of the Receiver Dialog there is a check box labeled &amp;amp;quot;'''Adjust Rx Sets to Terrain Elevation'''&amp;amp;quot;. These boxes are unchecked by default. As a result, your transmitter sets or receiver sets coincide with their associated base points in the project workspace. If you check these boxes and place a transmitter set or a receiver set above an irregular terrain, the transmitters or receivers are elevated from the location of their associated base points by the amount of terrain elevation as can be seen in the figure below.   &lt;br /&gt;
&lt;br /&gt;
To better understand why there are two separate sets of points in the scene, note that a point array (CAD object) is used to create a uniformly spaced base set. The array object always preserves its grid topology as you move it around the scene. However, the transmitters or receivers associated with this point array object are elevated above the irregular terrain and no longer follow a strictly uniform grid. If you move the base set from its original position to a new location, the base points' topology will stay intact, while the associated transmitters or receivers will be redistributed above the terrain based on their new elevations.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_txrx1_tn.png|400px]] [[File:prop_txrx2_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Transmitters and receivers adjusted above an uneven terrain and their associated base sets.&lt;br /&gt;
&lt;br /&gt;
== Running A SBR Simulation ==&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Propagation Module]] offers three types of ray tracing simulations:&lt;br /&gt;
&lt;br /&gt;
* Analysis&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
An SBR analysis is the simplest ray tracing simulation and involves the following steps:&lt;br /&gt;
&lt;br /&gt;
# Set the unit of project scene and the frequency of operation. Note that EM.Cube's default project unit is millimeter. When working with the [[Propagation Module]], pay attention to the project unit. Radio propagation problems usually require meter, mile or kilometer as the project unit.&lt;br /&gt;
# Create the blocks and draw the buildings at the desired locations.&lt;br /&gt;
# Keep the default ray domain and accept the default global ground or change its material properties.&lt;br /&gt;
# Define the base sets (at least one for the transmitter and one for the receiver).&lt;br /&gt;
# Define the transmitter and receiver(s) using the available base sets.&lt;br /&gt;
# Run the SBR simulation engine.&lt;br /&gt;
# Visualize the coverage map and plot other data.&lt;br /&gt;
&lt;br /&gt;
You can access the [[Propagation Module]]'s run dialog by clicking the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or by selecting '''Simulate &amp;amp;gt; Run...''' or using the keyboard shortcut '''Ctrl+R'''. When you click the '''Run''' button, a new window opens up that reports the different stages of the SBR simulation and indicates the progress of each stage. After the SBR simulation is successfully completed, a message pops up and prompts the completion of the process.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== SBR Simulation Parameters ===&lt;br /&gt;
&lt;br /&gt;
There are a number of SBR simulation settings that can be accessed and changed from the SBR Settings Dialog. To open this dialog, click the button labeled '''Settings''' on the right side of the '''Select Engine''' dropdown list in the Run Dialog. EM.Cube's SBR simulation engine allows you to separate the physical effects that are calculated during a ray tracing process. You can selectively enable or disable '''Ray Reflection''', '''Ray Transmission''' and '''Ray Diffraction'''. By default, all three effects are checked and included in the computations. Separating these effects sometimes help you better analyze your propagation scene and understand the impact of various blocks in the scene.&lt;br /&gt;
&lt;br /&gt;
EM.Cube requires a finite number of ray bounces for each original ray emanating from a transmitter. This is very important in situations that may involve resonance effects where rays get trapped among certain group of surfaces and may bounce back and forth indefinitely. This is set using the box labeled &amp;amp;quot;'''Max No. Ray Bounces'''&amp;amp;quot;, which has a default value of 10. Note that the maximum number of ray bounces directly affects the computation time as well as the size of output simulation data files. This can become critical for indoor propagation scenes, where most of the rays undergo a large number of reflections.   &lt;br /&gt;
&lt;br /&gt;
As rays travel in the scene and bounce from surfaces, they lose their power and their amplitudes diminish. From a practical point of view, only rays that have power above the receiver sensitivity threshold can be effectively received. Therefore, all the rays whose power fall below a specified power threshold are discarded. The '''Ray Power Threshold''' is specified in dBm and has a default value of -100dBm. Keep in mind that the value of this threshold directly affects the accuracy of the simulation results as well as the size of the output data file.&lt;br /&gt;
&lt;br /&gt;
You can also set the '''Angular Resolution''' of the transmitter rays in degrees. By default, every transmitter emanates equi-angular ray tubes at a resolution of 1 degree. Lower angular resolutions larger than 1° speed up the SBR simulation significantly, but they may compromise the accuracy. Higher angular resolutions less than 1° increase the accuracy of the simulating results, but they also increase the computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PROP13.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Propagation Module]]'s SBR Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== The Coverage Map ===&lt;br /&gt;
&lt;br /&gt;
If the associated radiator set is isotropic, so will be the transmitter set. By default, an isotropic transmitter has vertical polarization. You can use the '''Polarization''' radio button to select one of the two options: '''Vertical''' or '''Horizontal'''. If the associated radiator set consists of '''Short Dipole''' or '''User Defined''' radiators, it is indicated in the transmitter property dialog. In the case of a short dipole radiator, you can set a value for the dipole current in Amperes. The radiation resistance of a short dipole of length ''dl'' is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; R_r = 80\pi^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:eqngr6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The radiated power of a short dipole carrying a current I&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; P_{rad} = \frac{1}{2} R_r |I_0|^2 = 40\pi^2 |I_0|^2 \left( \frac{dl}{\lambda_0} \right)^2 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:shortdipole.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For isotropic and user defined radiators you can set the '''Input Power''' and '''Phase''' of a transmitter set in Watts and degrees, respectively. This can be accessed from the '''Transmitter Chain''' dialog, which will be described in detail in the next section. The radiation pattern of the associated radiator set is normalized and used in conjunction with the input power value to create a weighted distribution of transmitted rays. In certain cases like hybrid simulations, you may want to use the actual values of the far field to define the transmitter power rather than a normalized radiation pattern. Note that the pattern (.RAD) file contains the value of total radiated power in its header. In this case, check the box labeled '''&amp;amp;quot;Calculate Power From Radiation Pattern&amp;amp;quot;'''. This is calculated directly from the complex &amp;amp;theta; and &amp;amp;phi; components of the far field data by integrating them over the entire space (4&amp;amp;pi; solid angle). Note that this option is available only when the radiator is of the User Defined type. When this box is checked, the transmitter chain button is grayed out. By default, an isotropic transmitter emanates rays uniformly in all directions at the angular resolution specified by the user. A transmitter with a user defined associated radiator may represent a highly directional radiation pattern with the main beam pointing in a certain direction. You can additionally force and limit the '''Angular Extents''' of rays to a certain solid angle around the transmitter. This is especially useful and computationally efficient when the transmitter is on one side of the scene, and all the scatterers and receivers are on the other side. In this case, there is no need to generate rays in all directions. To limit the angular extents of rays, define the Start and End values for both Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles. The value of the angular resolution of the rays can be changed from the Run Dialog as will be discussed later.&lt;br /&gt;
&lt;br /&gt;
In a regular SBR simulation, you have a transmitter and one or more arrays of receivers in your scene. At the end of the simulation, you can visualize the coverage map of the transmitter over the receiver sets. A coverage map shows the total '''Received Power''' by each of the receivers and is visualized as a color-coded intensity plot. You can visualize the coverage maps of individual receiver sets. At the end of a SBR simulation, each Received Power Coverage Map is listed under the receiver set's name in the Navigation Tree. To display a coverage map, simply click on its entry in the Navigation Tree. The coverage map plot appears in the Main Window overlaid on the scene. A legend box on the right shows the color scale and units (dB). The 3-D coverage maps are displayed as horizontal confetti above the receivers. If the receivers are packed close to each other, you will see a continuous confetti map. If the receivers are far apart, you will see individual colored squares. You can also visualize coverage maps as colored 3-D cubes. This may be useful when you set up your receivers in a vertical arrangement or the scene has a highly uneven terrain. To change the type of coverage map visualization, open the receiver set's property dialog and select the desired option for '''Coverage Map: Confetti''' or '''Cube''' in the '''&amp;amp;quot;Visualization Options&amp;amp;quot;''' section of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run11_tn.png|400px]] [[File:prop_run12_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Received power coverage map: (Left) confetti style, and (Right) cube style.&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the coverage map by right clicking on its entry in the Navigation Tree and selecting '''Properties...''' or by double-clicking on the legend box. In the Output Plot Settings dialog, you can choose from one of three Color Map options: '''Default''', '''Rainbow''' and '''Grayscale'''. The visualization plot uses default values for the color scale. In the section titled &amp;amp;quot;Limits&amp;amp;quot;, you can choose the radio button labeled '''User Defined'''. Then, you have to enter new values for the '''Lower''' and '''Upper''' Limits of the plot. You can also show or hide the Legend Box or change its '''Background''' and '''Foreground''' colors by clicking the buttons provided for this purpose.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run4.png]]&lt;br /&gt;
&lt;br /&gt;
Output Plot Settings&lt;br /&gt;
&lt;br /&gt;
=== The Ray Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a SBR simulation, each receiver receives a number of rays. Some receivers may not receive any rays at all. You can visualize all the rays received by a certain receiver from the active transmitter of the scene. To do this, right click the '''Receivers''' item of the Navigation Tree. From the context menu select '''Show Received Rays'''. All the rays received by the currently selected receiver of the scene are displayed in the scene. The rays are identified by labels, are ordered by their power and have different colors for better visualization. You can display the rays for only one receiver at a time. The receiver set property dialog has a list of all the individual receivers belonging to that set. To display the rays received by another receiver, you have to change the '''Selected Receiver''' in the receiver set's property dialog. If you keep the mouse focus on this dropdown list and roll your mouse scroll wheel, you can scan the selected receivers and move the rays from one receiver to the next in the list. To remove the visualized rays from the scene, right click the Receivers item of the Navigation Tree again and from the context menu select '''Hide Received Rays'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run5_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Visualization of received rays at the location of the selected receiver.&lt;br /&gt;
&lt;br /&gt;
You can also view the ray parameters by opening the property dialog of a receiver set. By default, the first receiver of the set is always selected. You can select any other receiver from the drop-down list labeled '''Selected Receiver'''. If you click the button labeled '''Show Ray Data''', a new dialog opens up with a table that contains all the received rays at the selected receiver and their parameters:&lt;br /&gt;
&lt;br /&gt;
* Delay is the total time delay that a ray experiences travelling from the transmitter to the receiver after all the reflections, transmissions and diffractions and is expressed in nanoseconds.&lt;br /&gt;
* Ray Field is the received electric field at the receiver location due to a specific ray and is given in dBV/m.&lt;br /&gt;
* Ray Power is the received power at the receiver due to a specific ray and is given in dBm.&lt;br /&gt;
* Angles of Arrival are the &amp;amp;theta; and &amp;amp;phi; angles of the incoming ray at the local spherical coordinate system of the receiver.&lt;br /&gt;
&lt;br /&gt;
The Ray Data Dialog also shows the '''Total Received Power''' in dBm and '''Total Received Field''' in dBV/m due to all the rays received by the receiver. You can sort the rays based on their delay, field, power, etc. To do so, simply click on the grey column label in the table to sort the rays in ascending order based on the selected parameter. You can also select any ray by clicking on its '''ID''' and highlighting its row in the table. In that case, the selected rays is highlighted in the Project Workspace and all the other rays become thin (faded).&lt;br /&gt;
&lt;br /&gt;
Note: The rays are summed up coherently at the receiver.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run6_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Analyzing a selected ray from the ray data dialog.&lt;br /&gt;
&lt;br /&gt;
=== Plotting Other Simulation Results ===&lt;br /&gt;
&lt;br /&gt;
Besides visualizing the coverage map and received rays in the EM.CUBE's [[Propagation Module]], you can also plot the '''Path Loss''' of all the receivers belonging to a receiver set as well as the '''Power Delay Profile''' of individual receivers. To plot these data, go the '''Observables''' section of the Navigation Tree and right click on the '''Receivers''' item. From the context menu, select '''Plot Path Loss''' or '''Plot Power Delay Profile''', respectively. The path loss data between the active transmitter and all the receivers belonging to a receiver set are plotted on a Cartesian graph. The horizontal axis of this graph represents the index of the receiver. Power Delay Profile is a bar chart that plots the power of individual rays received by the currently selected receiver versus their time delay. If there is a line of sight (LOS) between a transmitter and receiver, the LOS ray will have the smallest delay and therefore will appear first in the bar chart. Sometimes you may have several rays arriving at a receiver at the same time, i.e. all with the same delay, but with different power level. These will appear as stacked bars in the chart.&lt;br /&gt;
&lt;br /&gt;
You can also plot the path loss and power delay profile graphs and many others from EM.CUBE's data manager. You can open data manager by clicking the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or by selecting '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or by right clicking on the '''Data Manager''' item of the Navigation Tree and selecting Open Data Manager... from the contextual menu or by using the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the theta and phi angles of arrival and departure of the selected receiver. You can select any data file by clicking and highlighting its '''ID''' in the table and then clicking the '''Plot''' button.&lt;br /&gt;
&lt;br /&gt;
=== Output Data Files ===&lt;br /&gt;
&lt;br /&gt;
At the end of an SBR simulation, the results are written into a main output data file with the reserved name of SBR_Results.RTOUT. This file has the following format:&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Receiver Number&lt;br /&gt;
* Receiver Base X, Y , Z Coordinates&lt;br /&gt;
* Receiver Height&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
Number of Rays&lt;br /&gt;
&lt;br /&gt;
NEW LINE:&lt;br /&gt;
&lt;br /&gt;
* Ray Number&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Arrival in deg&lt;br /&gt;
* &amp;amp;theta; and &amp;amp;phi; Angles of Departure in deg&lt;br /&gt;
* Delay in nsec&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;V&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;) &amp;amp;amp; Imag(E&amp;lt;sup&amp;gt;H&amp;lt;/sup&amp;gt;)&lt;br /&gt;
* Real('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''') &amp;amp;amp; Imag('''E.e&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt;''')&lt;br /&gt;
* Power&lt;br /&gt;
&lt;br /&gt;
The angles of arrival are the &amp;amp;theta; and &amp;amp;phi; angles of a received ray measured in degrees and are referenced in the spherical coordinate systems centered at the location of the receiver. The angles of departure for a received ray are the &amp;amp;theta; and &amp;amp;phi; angles of the originating transmitter ray, measured in degrees and referenced in the spherical coordinate systems centered at the location of the active transmitter, which eventually arrives at the receiver. The total time delay is measured in nanoseconds between t = 0 nsec at the time of launch from the transmitter location till being received at the receiver location. The last four columns show the real and imaginary parts of the received electric fields with vertical and horizontal polarizations, respectively. The complex field values are normalized in a way that when their magnitude is squared, it equals the received ray power. If the active transmitter is an isotropic radiator with either a vertical or horizontal polarization, then the field components corresponding to the other polarization will have zero entries in the output data file.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run8_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A typical SBR output data file.&lt;br /&gt;
&lt;br /&gt;
=== Running A Frequency Sweep With SBR ===&lt;br /&gt;
&lt;br /&gt;
By default, you run a single-frequency simulation in EM.CUBE's [[Propagation Module]]. You set the operational frequency of a SBR simulation in the project's '''Frequency Dialog''', which can be accessed in a number of ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''Frequency''' [[File:freq_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]]'''Frequency Settings...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+F'''.&lt;br /&gt;
# By double clicking the frequency section (box) of the '''Status Bar'''.&amp;lt;br /&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
[[File:prop_freq.png]]    [[File:prop_run10.png]]&lt;br /&gt;
&lt;br /&gt;
(Left) Project's frequency dialog and (Right) the frequency settings dialog.&lt;br /&gt;
&lt;br /&gt;
You can also select the '''Frequency Sweep''' option in the '''Simulation Mode''' drop-down list of the '''Run Dialog'''. Click the '''Settings...''' button on the right side of this dropdown list to open up the Frequency Settings Dialog. Based on the original values of the project center frequency and bandwidth, the '''Start Frequency''' and '''End Frequency''' have default values. You can also change the '''Number of Samples'''. Once you click the '''Run''' button, EM.CUBE performs a frequency sweep by assigning each of the frequency samples as the current operational frequency and running the SBR simulation engine at that frequency. All the simulation data at all frequency samples are saved into the output data files including &amp;amp;quot;SBR_results.RTOUT&amp;amp;quot;. After the completion of a frequency sweep simulation, as many coverage maps as the number of frequency samples are generated and added to the Navigation Tree under the Receiver Set's entry. You can click on each of the coverage maps corresponding to each of the frequency samples and visualize it in the project workspace. You can also animate the coverage maps. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. The coverage maps start to animate by their order on the Navigation Tree. Once the entire list is displayed sequentially, it starts all over again from the beginning of the list. During the animation, the '''Animation Controls''' dialog appears at the lower right corner of the screen. This dialog has a number of buttons for pause/resume, step forward/backward, and step to the end/start. The title of each coverage map is shown in the box labeled '''Sample''' as it is displayed in the main window. You can also change the speed of animation. The default frame duration has a value of 300 (3x100) milliseconds. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run13.png]]    [[File:prop_run14.png]]&lt;br /&gt;
&lt;br /&gt;
Multiple coverage maps on the Navigation Tree at the end of a frequency sweep and starting an animation from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run15_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Animation controls dialog in the project workspace.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep with SBR ===&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run24.png|thumb|300px|EM.CUBE's variable dialog]]&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run23.png|thumb|250px|Dialog for defining new variables]]&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE, all the CAD object properties as well as certain source, material and mesh parameters can be assigned as [[variables]]. [[Variables]] are defined to control and vary the values of such parameters either for editing purposes or to run parametric sweep or [[optimization]]. Variable are defined using the '''[[Variables]] Dialog''', which can be accessed in the three ways:&lt;br /&gt;
&lt;br /&gt;
# By clicking the '''[[Variables]]''' [[File:variable_icon.png]] button of the '''Compute Toolbar'''.&lt;br /&gt;
# By selecting '''Compute''' [[File:larrow_tn.png]] '''[[Variables]]...''' from the Menu Bar.&lt;br /&gt;
# Using the keyboard shortcut '''Ctrl+B'''.&lt;br /&gt;
&lt;br /&gt;
The [[variables]] dialog is initially empty. To add a new variable, click the '''Add''' button to open up the '''Add Variable/Syntax Dialog'''. In this dialog you have to type in a name for the new variable and choose a type. The default type is '''Uniformly Spaced Samples'''. You also need to specify the '''Start''', '''Stop''' and '''Step''' values for the variable. In the figure below, a variable called &amp;amp;quot;Tx_Height&amp;amp;quot; is defined that varies between 2 and 10 with equal steps of 2. This means the sample set {2,4,6,8,10}. When you return to the [[variables]] dialog, the syntax of the new variable is shown as 2:10:2. The last number in this syntax is always the variable step. In this example, this variable is going to be used to control the height of the transmitter in a propagation scene.&lt;br /&gt;
&lt;br /&gt;
Next, you have to attach the variable to the CAD object. In this case, the CAD object is the point object that represents the transmitter's radiator. To attach a variable to a CAD object, open the object's property dialog and type in the name of the variable as the value of a property or parameter. In this case, the variable Tx_Height is going to control the Z-Coordinate of the point object. Once the value of the object parameter is replaced by the name of an already defined variable, it is updated with the current value of that variable. In the case of a variable of &amp;amp;quot;Uniformly Spaced Samples&amp;amp;quot; type, the current value is the start value. This value will be incrementally varied during a parametric sweep simulation process. Note that a variable can take a fixed value or a discrete set of values, too. You can always open the [[variables]] dialog and change the value or syntax of any variable. To make a new or modified value effective, click the '''Apply''' button of the [[variables]] dialog. You can test the values by performing a '''Dry Run''' of the selected variable. This runs an animation of the project workspace as the value of the variable changes and all the related CAD objects are updated accordingly. Note that you can attach the same variable to more than one CAD object property or to the properties of different objects. You can also define multiple values or syntaxes to the same variable. To do so, open the '''Add Variable/Syntax Dialog''', and instead of typing in a new variable name, choose an existing variable name from the '''Name''' dropdown list. This will add a new value or syntax to the existing syntax(es) of the selected variable. When you return to the [[variables]] dialog, [[variables]] with more than one value or syntax will have a dropdown list in the '''Syntax''' column. You can choose any of these values or syntaxed at any time and make the change effective by clicking the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run25.png]]&lt;br /&gt;
&lt;br /&gt;
Replacing the value of a CAD object parameter with a variable name.&lt;br /&gt;
&lt;br /&gt;
To run a parametric sweep, open the '''Run Dialog''' and select the '''Parametric Sweep''' option in the '''Simulation Mode''' drop-down list. If you have not defined any [[variables]] in the project, the box in the '''[[Variables]]''' row before the '''View''' will be red. You have to turn it into green before you can run a simulation. By clicking the '''View''' button, you can open up the [[variables]] dialog from here. Once you click the '''Run''' button, EM.CUBE performs a parametric sweep by incrementally varying the values of all the defined [[variables]] from their start to stop values at the specified steps and updating all the related CAD objects. After the completion of a parametric sweep simulation, as many coverage maps as the total number of variable samples are generated and added to the Navigation Tree under the receiver set's entry. You can click on each of the coverage maps and visualize it in the project workspace. You can also animate the coverage maps sequentially. To do so, right click on the receiver set's name in the Navigation Tree and select '''Animation''' from the contextual menu. To stop the animation, simply press the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run26.png]]&lt;br /&gt;
&lt;br /&gt;
Choosing parametric sweep as the simulation mode in the run dialog. Note that one variable has been defined and EM.CUBE is ready to run the simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run27_tn.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The coverage map of the scene at the end of a parametric sweep where the sweep variable is the transmitter height.&lt;br /&gt;
&lt;br /&gt;
=== Statistical Analysis of Propagation Scene ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's coverage maps display the received power at the location of all the receivers. The receivers together from a set/ensemble, which might be uniformly spaced or distributed across the propagation scene or may consist of randomly scattered radiators. Every coverage map shows the '''Mean''' and '''Standard Deviation''' of the received power for all the receivers involved. These information are displayed at the bottom of the coverage map's legend box and are expressed in dB.&lt;br /&gt;
&lt;br /&gt;
In the [[Propagation Module]], when you ran a sweep simulation (frequency, transmitter or parametric), you also have the option to generate two additional coverage maps: one for the mean of all the individual sample coverage maps and another for their standard deviation. To do so, in the '''Run Dialog''', check the box labeled '''&amp;amp;quot;Create Mean and Standard Deviation Coverage Maps&amp;amp;quot;'''. Note that the mean and standard deviation values displayed on the individual coverage maps correspond to the spatial statistics of the receivers in the scene, while the mean and standard deviation coverage maps correspond to frequency, transmitter or variable sets defined for the sweep simulation. Also, note that both of the mean and standard deviation coverage maps have their own spatial mean and standard deviation values expressed in dB at the bottom of their legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run21_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The mean coverage map at the end of a transmitter sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:prop_run22_tn.png]]&lt;br /&gt;
&lt;br /&gt;
The standard deviation coverage map at the end of a transmitter sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Picasso</id>
		<title>EM.Picasso</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Picasso"/>
				<updated>2013-06-14T13:52:51Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Picasso® is a versatile planar structure simulator for modeling and design of printed antennas, planar microwave circuits, and layered periodic structures. EM.Picasso's simulation engine is based on a 2.5-D full-wave Method of Moments (MoM) formulation that provides the ultimate modeling accuracy and computational speed for open-boundary multilayer structures. It can handle planar structures with arbitrary numbers of metal layouts, slot traces, vertical interconnects and lumped elements interspersed among different substrate layers. You can use EM.Picasso to model large finite-sized antenna arrays as well as infinite periodic structures such as frequency selective surfaces.&lt;br /&gt;
&lt;br /&gt;
Since its introduction in 2002, EM.Picasso has been successfully used by numerous users around the globe in industry, academia and government. The new EM.Picasso 2013 has been totally reconstructed based on our integrated EM.Cube software foundation. This integration has introduced far more powerful CAD utilities, greater geometrical variety, and a vast array of capabilities like parametric sweep, optimization, data visualization and post-processing computations. The new foundation also facilitates import and export of many popular CAD formats and provides a seamless interface with our other simulation tools.&lt;br /&gt;
&lt;br /&gt;
== A Planar Method Of Moments Primer ==&lt;br /&gt;
&lt;br /&gt;
The Method of Moments (MoM) is a rigorous, full-wave numerical technique for solving open boundary electromagnetic problems. Using this technique, you can analyze electromagnetic radiation, scattering and wave propagation problems with relatively short computation times and modest computing resources. The method of moments is an integral equation technique; it solves the integral form of Maxwell’s equations as opposed to their differential forms that are used in the finite element or finite difference time domain methods.&lt;br /&gt;
&lt;br /&gt;
In a planar MoM simulation, the background structure is usually a layered planar structure that consists of one or more laterally infinite material layers. In EM.Cube’s [[Planar Module]], the layered structure is stacked along the Z axis. In other words, the dimensions of the layers are infinite along the X and Y axes. Metallic traces are placed at the boundaries between the substrate or superstrate layers. These are modeled by perfect electric conductor (PEC) traces or conductive sheet traces of finite thickness and finite conductivity. Some layers might be separated by infinite perfectly conducting ground planes. The two sides of a ground plane can be electromagnetically coupled through one or several slots or apertures. Such slots or apertures are modeled by magnetic currents and are realized and represented by perfectly magnetic conductor (PMC) traces. Furthermore, the metallic traces can be interconnected or connected to ground planes using embedded objects. Such objects can be used to model circuit vias, plated-through holes or dielectric inserts. These are modeled as volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
The currents in a planar MoM simulation are discretized as a collection of elementary currents with small finite spatial extents. These elementary currents are called basis functions and obviously have a vectorial nature. The total currents (solution of the problem) are summations of these elementary currents. The basis functions are well defined and easy to calculate; however, their amplitudes are initially unknown in a MoM problem. Through the planar MoM solution, you find these unknown amplitudes. Once the total currents are known, you can calculate the fields everywhere in the structure.&lt;br /&gt;
&lt;br /&gt;
=== Multilayer Green’s Functions ===&lt;br /&gt;
&lt;br /&gt;
The Green’s functions are the solutions of boundary value problems when they are excited by an elementary source. This is usually assumed to be an infinitesimally small vectorial point source. In order for Green’s functions to be computationally useful, they must have analytical closed forms like a mathematical expression, or one should be able to compute them using a recursive process. It turns out that only very few boundary value problems have closed-form Green’s functions. Planar layered structures with laterally infinite extents are one of those few cases, which can be represented by recursive dyadic Green's functions.&lt;br /&gt;
&lt;br /&gt;
In general, a structure may support both electric ('''J''') and magnetic ('''M''') currents. The total electric ('''E''') and magnetic ('''H''') fields can be expressed in terms of the electric and magnetic currents in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;E = E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;H = H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv'&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''GH&amp;lt;sub&amp;gt;M&amp;lt;/sub&amp;gt;''' are the dyadic Green’s functions for the electric and magnetic currents due to electric and magnetic current source, respectively, and '''E&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' and '''H&amp;lt;sup&amp;gt;i&amp;lt;/sup&amp;gt;''' are the incident or impressed electric and magnetic fields, respectively. In these equations, '''r''' is the position vector of the observation point and '''r'''' is the position vector of the source point. V is the volume that contains all the sources and the volume integration is performed with respect to the primed coordinates. The incident or impressed fields provide the excitation of the structure. They may come from an incident plane wave or a gap source on a microstrip line, a short dipole, etc. The complexity of the Green’s functions depends on what is considered as the background structure. If you remove all the unknown currents from the structure, you are left with the background structure.&lt;br /&gt;
&lt;br /&gt;
=== Planar Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
To derive a system of integral equations, we enforce the boundary conditions on the integral definitions of the '''E''' and '''H''' fields as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_E(E) = L_E \bigg\{ E^{inc} + \iiint\limits_V \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{EM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;L_H(H) = L_H \bigg\{ H^{inc} + \iiint\limits_V \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') \, dv' + \iiint\limits_V \overline{\overline{G}}_{HM}(r|r') \cdot M(r') \, dv' \bigg\} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM4(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' is the boundary value operator for the electric field and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' is the boundary value operator for the magnetic field. For example, '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E'''field vanish on perfect conductors:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = 0, \quad \mathbf{r} \in PEC &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM65.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or '''L&amp;lt;sub&amp;gt;E&amp;lt;/sub&amp;gt;''' and '''L&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;''' may require that the tangential components of the '''E''' and '''H''' fields be continuous across an aperture in a perfect ground plane:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{E}^+ - \mathbf{E}^-) = 0 \\&lt;br /&gt;
\hat{n} \times \hat{n} \times (\mathbf{H}^+ - \mathbf{H}^-) = 0&lt;br /&gt;
\end{cases} &lt;br /&gt;
\quad \Rightarrow \quad&lt;br /&gt;
\mathbf{M}^+(r) = \mathbf{M}^-(r), \quad r \in PMC&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM66(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Given the fact that the dyadic Green’s functions and the incident or impressed fields are all known, one can solve the above system of integral equations to find the unknown currents '''J''' and '''M'''.&lt;br /&gt;
&lt;br /&gt;
In EM.CUBE's [[Planar Module|Planar module]], magnetic currents are always surface current with units of V/m. Electric currents, however, can be surface currents with units of A/m as in the case of metallic traces like microstrip lines, or they can be volume currents with units of A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; as in the case of perfectly conducting vias. Dielectric inserts are modeled as volume polarization currents that are related to the electric field '''E''' in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J}_p(r) = jk_0 Y_0(\varepsilon_r - \varepsilon_b)\mathbf{E}(r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant, &amp;lt;math&amp;gt;Y_0 = \tfrac{1}{Z_0} = \tfrac{1}{120\pi}&amp;lt;/math&amp;gt; is the free space intrinsic admittance, &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is the permittivity of the dielectric insert, and &amp;amp;epsilon;&amp;lt;sub&amp;gt;b&amp;lt;/sub&amp;gt; is the permittivity of its background layer. In a 2.5-D formulation, it is assumed that the volume currents have only a vertical component along the Z direction, and their circumferential components are negligible.&lt;br /&gt;
&lt;br /&gt;
=== Numerical Solution Of Integral Equations ===&lt;br /&gt;
&lt;br /&gt;
The planar integral equations derived earlier can be solved numerically by discretizing the unknown currents using a proper meshing scheme. The original functional equations are reduced to discretized linear algebraic equations over elementary cells. The unknown quantities are found by solving this system of linear equations, and many other parameters can be computed thereafter. This method of numerical solution of integral equations is known as the Method of Moments (MoM). In this method, the unknown electric and magnetic currents are represented by expansions of basis functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;J(r) = \sum_{n=1}^N I_n^{(J)} f_n^{(J)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;M(r) = \sum_{k=1}^K V_k^{(M)} f_k^{(M)} (r)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;f_k^{(M)}&amp;lt;/math&amp;gt; are the generalized vector basis functions for the expansion of electric and magnetic currents, respectively, and &amp;lt;math&amp;gt;I_n^{(J)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;V_k^{(M)}&amp;lt;/math&amp;gt; are the unknown amplitudes of these basis functions, which have to be determined. Substituting these expansions into the integral equations generates a set of discretized integral equations, which can further be converted to a system of linear algebraic equations. This is accomplished by testing the discretized integral equations using the a set of test functions. In the method of moments, the Galerkin technique is typically used, which chooses the expansion basis functions as test functions. This leads to the following linear system:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
Z^{(EJ)} &amp;amp; T^{(EM)} \\&lt;br /&gt;
U^{(HJ)} &amp;amp; Y^{(HM)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
\cdot&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
I^{(J)} \\&lt;br /&gt;
V^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
=&lt;br /&gt;
&lt;br /&gt;
\begin{bmatrix}&lt;br /&gt;
V^{(E)} \\&lt;br /&gt;
I^{(M)}&lt;br /&gt;
\end{bmatrix}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(EJ)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot &lt;br /&gt;
\iiint\limits_{V_j} dv' \overline{\overline{G}}_{EJ}(r|r') \cdot f_i^{(J)}(r')&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_i^{(E)} = \iiint\limits_{V_i} dv f_i^{(J)}(r) \cdot E^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_i^{(H)} = \iiint\limits_{V_i} dv f_i^{(M)}(r) \cdot H^{inc}(r) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similar expressions can be derived for the T&amp;lt;sup&amp;gt;(EM)&amp;lt;/sup&amp;gt;, U&amp;lt;sup&amp;gt;(HJ)&amp;lt;/sup&amp;gt; and Y&amp;lt;sup&amp;gt;(HM)&amp;lt;/sup&amp;gt;elements of the MoM matrix.&lt;br /&gt;
&lt;br /&gt;
=== Discretization Of Electric &amp;amp;amp; Magnetic Currents ===&lt;br /&gt;
&lt;br /&gt;
The right choice of the basis functions to represent the elementary currents is very important. It will determine the accuracy and computational efficiency of the resulting numerical solution. Rooftop basis functions are one of the most popular types of basis functions used in a variety of MoM formulations. The surface currents (whether electric or magnetic) are discretized using 2D rooftop basis functions shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image055_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Rooftop or RWG basis functions built over two rectangular, triangular or mixed cells.&lt;br /&gt;
&lt;br /&gt;
The rooftop basis functions are defined over two adjacent cells with a common edge of length. If the two cells are triangular, then the so-called RWG functions are obtained. It is also possible to define rooftop functions over two adjacent rectangular cells or two adjacent rectangular and triangular cells with a common edge. On a rectangular cell, the function is defined as having a (descending or ascending) linear profile in one direction and a constant profile in the other perpendicular direction.&lt;br /&gt;
&lt;br /&gt;
The volume polarization currents in 2.5-D MoM have a vertical direction along the Z-axis. These are discretized using prismatic basis functions that have either a rectangular or triangular base with a constant profile along the Z-axis.&lt;br /&gt;
&lt;br /&gt;
[[File:image065_tn.png]][[File:image066_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Prismatic basis functions built over single triangular and rectangular cells.&lt;br /&gt;
&lt;br /&gt;
== Anatomy Of A Planar Structure ==&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM14.png|thumb|350px|A typical planar layered structure]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] is intended for constructing and modeling planar layered structures. By a planar structure we mean one that contains a background substrate of laterally infinite extents, made up of one or more material layers all stacked up vertically along the Z axis. Objects of finite size are then interspersed among these substrate layers. This is somehow different than EM.Cube's other computational modules, which are geared for handling arbitrary 3D structures.&lt;br /&gt;
&lt;br /&gt;
In [[Planar Module]], the background structure, called &amp;amp;quot;'''Layer Stack-up'''&amp;amp;quot;, may involve one or more material layers of infinite extents along the X and Y axes but of finite thickness along the Z axis. When you start a new project, the background structure has a single vacuum layer. The layer stack-up is always terminated from the top and bottom by two infinite half-spaces. The terminating half-spaces might be the free space, or a perfect conductor (PEC ground), or any material medium. Most planar structures used in RF and microwave applications such as microstrip-based components have a PEC ground at their bottom. EM.Cube's default stack-up has a vacuum top half-space and a PEC bottom half-space. Some structures like stripline components require two bounding PEC grounds at both top and bottom.&lt;br /&gt;
&lt;br /&gt;
The finite-sized objects of a planar structure may include metal traces, slots and apertures, vertical vias and interconnects, or dielectric inserts including air voids inside the substrate layers. Metal traces are modeled as electric surface currents. These are planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on metal (PEC) traces and placed at the boundary (interface) plane between two substrate layers. Slots and apertures are modeled as magnetic surface currents on the surface of an infinite PEC plane and provide electromagnetic coupling between its top and bottom sides. These, too, are constructed using planar [[Surface Objects|surface objects]], always parallel to the XY plane, that are defined on slot (PMC) traces and placed at the boundary (interface) plane between two substrate layers. EM.Cube's [[Planar Module]] also allows prismatic objects that can be modeled by electric volume currents. These include vertical vias and dielectric inserts, and are called embedded object sets. [[Planar Module|Planar module]] does not allow construction of 3D CAD objects. Instead, you draw the cross section of prismatic objects as planar [[Surface Objects|surface objects]] parallel to the XY plane. EM.Cube then automatically extrudes these cross sections and constructs and displays 3D prisms over them. The prisms extend all the way across the thickness of the host substrate layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[File:PMOM14.png]]&lt;br /&gt;
Figure 1: A typical planar layered structure.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Defining Layer Stack-Up ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in EM.Cube’s [[Planar Module]], there is always a default background structure that consists of a finite vacuum layer sandwiched between a vacuum top half-space and a PEC bottom half-space. Every time you enter the [[Planar Module|Planar module]], the '''Stack-up Settings Dialog''' opens up. This is where you define the entire background structure. Once you close this dialog, you can open it again by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Layer Stack-up Settings...''' from the contextual menu. Or alternatively, you can select the menu item '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Layer Stack-up Settings...'''&lt;br /&gt;
&lt;br /&gt;
The Stack-up Settings dialog has two tabs: '''Layer Hierarchy''' and '''Embedded Sets'''. The Layer Hierarchy tab has a table that shows all the background layers in hierarchical order from the top half-space to the bottom half-space. It also lists the material label of each layer, Z-coordinate of the bottom of each layer, its thickness (in project units) and material properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). There is also a column that lists the names of embedded object sets inside each substrate layer, if any.&lt;br /&gt;
&lt;br /&gt;
You can add new layers to your project's stack-up or delete its layers, or move layers up or down and thus change the layer hierarchy. To add a new background layer, click the arrow symbol on the '''Insert...'''button at the bottom of the dialog and select '''Substrate Layer''' from the button's dropdown list. A new dialog opens up where you can enter a label for the new layer and values for its material properties and thickness in project units.&lt;br /&gt;
&lt;br /&gt;
You can delete a layer by selecting its row in the table and clicking the '''Delete''' button. To move a layer up and down, click on its row to select and highlight it. Then click either the '''Move Up''' or '''Move Down''' buttons consecutively to move the selected layer to the desired location in the stack-up. Note that you cannot delete or move the top or bottom half-spaces.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM8(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Editing Substrate Layers ===&lt;br /&gt;
After creating a substrate layer, you can always edit its properties in the Layer Stack-up Settings dialog. Click on any layer's row in the table to select and highlight it and then click the '''Edit''' button. The substrate layer dialog opens up, where you can change the layer's label and assigned color. In the material properties section of the dialog, you can change the name of the material and its properties: permittivity (e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), permeability (µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), electric conductivity (s) and magnetic conductivity (s&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;). To define electrical losses, you can either assign a value for electric conductivity (s), or alternatively, define a loss tangent for the material. In the latter case, check the box labeled &amp;amp;quot;'''Specify Loss Tangent'''&amp;amp;quot; and enter a value for it. In this case, the electric conductivity field becomes greyed out and reflects the corresponding s value at the center frequency of the project.&lt;br /&gt;
&lt;br /&gt;
You can also set the thickness of the substrate layer in the project units. Note that you cannot change the thickness of the top and bottom half-spaces. You can only change their material properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM9.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Substrate Layer dialog.&lt;br /&gt;
&lt;br /&gt;
You can also use EM.Cube's Material List to define the material properties of a substrate layer. In the Substrate Layer Dialog, click the '''Material''' button to open the '''Material List'''. In the Material List Dialog, pick any material or type the first letter of a material to highlight it. Then click the '''OK''' button or simply hit the '''Enter''' key of your keyboard to close the list and return to the substrate layer dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM10.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Materials dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Object Types ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] groups objects by their material and electromagnetic properties. Each object group shares the same color and same position in the layer stack-up. All the planar objects belonging to the same trace are located on the same substrate layer boundary. All the prismatic objects belonging to the same embedded set lie inside the same substrate layer and have the same material composition. Theoretically speaking, all the objects belonging to a group are governed by the same boundary conditions. EM.Cube’s [[Planar Module]] currently provides the following types of objects for building a planar layered structure:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC) Traces:''' These represent infinitesimally thin metallic objects that are deposited or metallized on or between substrate layers. PEC objects are modeled by surface electric currents that satisfy the PEC boundary condition.&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC) Traces:''' These are used to model slots and apertures in infinite PEC ground planes. PMC objects are always assumed to lie on an infinite horizontal PEC ground plane with zero thickness. They are modeled by surface magnetic currents, enforcing the continuity of tangential fields across the slots or apertures.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metals. They have a finite conductivity and a very small thickness. A surface impedance boundary condition is enforced on the surface of such traces.&lt;br /&gt;
# '''PEC Via Sets:''' These are metallic objects such as shorting pins, interconnect vias, plated-through holes, etc. that are grouped together as prismatic object sets. The embedded objects are modeled as vertical volume conduction currents.&lt;br /&gt;
# '''Embedded Dielectric Sets:''' These are prismatic dielectric objects inserted inside a substrate layer. You can define a finite permittivity and conductivity for such objects, but their height is always the same as the height of their host layer. The embedded dielectric objects are modeled as vertical volume polarization currents.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
=== Defining Traces &amp;amp;amp; Object Sets ===&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]], the project workspace looks empty, and there are no finite objects in it. However, a default background structure is always assumed to exist by default. Objects are defined as part of traces or embedded sets. Once defined, you can see a list of project objects in the '''Physical Structure''' section of the Navigation Tree. Traces and object sets can be defined either from Layer Stack-up Settings dialog or from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
In the '''Layer Stack-up Settings''' dialog, you can add a new trace to the stack-up by clicking the arrow symbol on the '''Insert''' button of the dialog. You have to choose from '''Metal (PEC)''', '''Slot (PMC)''' or '''Conductive Sheet''' options. A respective dialog opens up, where you can enter a label and assign a color other than default ones. Once a new trace is defined, it is added, by default, to the top of the stack-up table underneath the top half-space. From here, you can move the trace down to the desired location on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM12.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Stack-up Settings dialog.&lt;br /&gt;
&lt;br /&gt;
Every time you define a new trace, it is also added under the respective category in the Navigation Tree. Alternatively, you can define a new trace from the Navigation Tree by right clicking on one of the trace type names and selecting '''Insert New PEC Trace...'''or '''Insert New PMC Trace...'''or '''Insert New Conductive Sheet Trace...'''A respective dialog opens up for setting the trace properties. Once you close this dialog, it takes you directly to the Layer Stack-up Settings dialog so that you can set the right position of the trace on the stack-up.&lt;br /&gt;
&lt;br /&gt;
=== Drawing Planar Objects ===&lt;br /&gt;
&lt;br /&gt;
As soon as you start drawing geometrical objects in the project workspace, the Physical Structure section of the Navigation Tree gets populated. The names of traces are added under their respective trace type category, and the names of objects appear under their respective trace group. At any time, one and only one trace is active in the project workspace. An active trace is where all the new objects you draw belong to. When you define a new trace, it is set as active and you can immediately start drawing new objects on that trace. You can also set any trace active at any time by right clicking its name on the Navigation Tree and selecting '''Activate''' from the contextual menu. The name of the active trace is always displayed in bold letter in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM13.png]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] has a special feature that makes construction of planar structures quite easy and straightforward. '''The active work plane of the project workspace is always set at the plane of the active trace.''' In EM.Cube's other modules, all objects are drawn in the XY plane (z = 0) by default. In [[Planar Module]], all new objects are drawn on a horizontal plane that is located at the Z-coordinate of the currently active trace. As you change the active trace or add a new trace, you will also change the active work plane.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Metallic Traces ===&lt;br /&gt;
&lt;br /&gt;
A trace is a group of finite-sized planar objects that have the same conductive properties and same Z-coordinate. In other words, they are located on the same horizontal plane, or at the same vertical level on the layer stack-up. You can define two types of metallic traces in the [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
# '''PEC Traces:''' These represent perfect conductor objects that have zero thickness and no editable material properties.&lt;br /&gt;
# '''Conductive Sheet Traces:''' These represent imperfect metal objects. They have a very small finite thickness t and a finite conductivity s.&lt;br /&gt;
&lt;br /&gt;
The conductive sheet traces are modeled using the surface impedance boundary condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \hat{n} \times \hat{n} \times \mathbf{E} = -Z_s\mathbf{J_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM17(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;Z_s&amp;lt;/math&amp;gt; is the surface impedance of the conductive sheet. If the thickness of the sheet is greater than the skin depth of the metal at the project frequency, then the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1+j}{\sigma \delta}, \quad \delta = \sqrt{\dfrac{2}{k_0 Z_0 \sigma}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM18.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the thickness t of the sheet is less than the skin depth, then the conductive sheet transition boundary condition is used instead, and the surface impedance is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_s = \dfrac{1}{[j k_0 Y_0 (\varepsilon_r - 1) + \sigma] \tau} = \dfrac{1}{\sigma_{tot} \tau} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM19(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you start a new project in [[Planar Module]] with no traces defined, if you simply draw a new object, a default PEC trace is created and added to the Navigation Tree to hold that object. Alternatively, you can define your own new traces from the Layer Stack-up Settings dialog or directly from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
NOTE: Two or more PEC and conductive sheet traces can coexist at the same Z-coordinate. In this case, the Layer Stack-up Settings dialog shows these trace rows stacked up on top of each other between their common top and bottom substrate layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM15.png]] [[File:PMOM16.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PEC and Conductive Sheet Trace dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Slot Traces ===&lt;br /&gt;
&lt;br /&gt;
Slots and apertures are cut-out and removed metal in an infinite perfectly conducting (PEC) ground plane. When a slot is excited, tangential electric fields are formed on the aperture, which can be modeled as finite magnetic surface currents confined to the area of the slot. Therefore, instead of modeling the electric surface currents on the PEC ground around the slot, one can alternatively model the finite-extent magnetic surface currents on PMC traces. In EM.Cube's [[Planar Module]], you define slot objects under PMC traces. A PMC trace at a certain Z-plane implies the presence of an infinite PEC plane at that Z-coordinate. Therefore, you do not need to define an additional PEC plane at that location on the layer stack-up. The slot (PMC) objects provide the electromagnetic coupling between the two sides of this infinite ground plane. By the same token, you cannot place a PEC trace and a PMC trace at the same Z-level, as the latter's ground will short the former. However, you can define two or more PMC traces at the same Z-plane. In this case, all the slot objects lie on the same infinite PEC ground plane. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM20.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s PMC Trace dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Embedded Object Sets ===&lt;br /&gt;
&lt;br /&gt;
Embedded object sets represent short material insertions inside substrate layers. They can be metal or dielectric. Metallic embedded objects can be used to model vias, plated-through holes, shorting pins and interconnects. These are called PEC via sets. Embedded dielectric objects can be used to model air voids, thin films and material inserts in metamaterial structures. Embedded magnetic object are not currently supported by EM.Cube’s [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Embedded objects can be defined either from the Layer Stack-up Settings dialog or directly from the Navigation Tree. In the former case, open the &amp;amp;quot;Embedded Sets&amp;amp;quot; tab of the stack-up dialog. This tab has a table that lists all the embedded object sets along with their material type, the host substrate layer, the host material and their height. &lt;br /&gt;
&lt;br /&gt;
{{Note|The height of an embedded object is always identical to the thickness of its host substrate layer.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Layer Stack-up dialog showing the Embedded Sets tab.&lt;br /&gt;
&lt;br /&gt;
To add a new object set, click the arrow symbol on the '''Insert''' button of the dialog and select one of the two options, '''PEC Via Set''' or '''Embedded Dielectric Set''', from the dropdown list. This opens up a new dialog where first you have to set the host layer of the new object set. A dropdown list labeled &amp;amp;quot;'''Host Layer'''&amp;amp;quot; gives a list of all the available finite substrate layers. You can also set the properties of the embedded object set, including its label, color and material properties. Keep in mind that you cannot control the height of embedded objects. Moreover, you cannot assign material properties to PEC via sets, while you can set values for the '''Permittivity'''(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;) and '''Electric Conductivity'''(&amp;amp;sigma;) of embedded dielectric sets. Vacuum is the default material choice. You may use EM.Cube's Material List for this purpose, which can be opened up by clicking the '''Material''' button. Once embedded object sets are added to the Embedded Sets table, you can edit their properties at any time by selecting their row and clicking the '''Edit''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM21.png]] [[File:PMOM22.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The [[Planar Module]]'s PEC Via Set and Embedded Dielectric Set dialogs.&lt;br /&gt;
&lt;br /&gt;
To define an embedded set from the Navigation Tree, right click on the '''Embedded Object Sets''' item in the '''Physical Structure''' section of the Navigation Tree and select either '''Insert New PEC Via Set...''' or '''Insert New Embedded Dielectric Set...''' The respective New Embedded Object Set dialog opens up, where you set the properties of the new object set. As soon as you close this dialog, it takes you to the Layer Stack-up Settings dialog, where you can examine the location of the new object set on the layer hierarchy.&lt;br /&gt;
&lt;br /&gt;
After a new embedded object set has been defined and added to the Navigation Tree, it becomes the active trace. You are now ready to create geometrical objects in the new active trace. Remember that [[Planar Module]] does not allow you to draw 3D objects. The solid object buttons in the '''Object Toolbar''' are disabled to prevent you from doing so. Instead, you draw planar [[Surface Objects|surface objects]] as the cross section of embedded sets. EM.Cube extends these planar objects across their host layer automatically and displays them as wire-frame, 3D extruded objects. Extrusion of embedded object sets happen after meshing and before every simulation. You can enforce this extrusion manually by right clicking the '''Layer Stack-up''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Update Planar Structure...''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Rules &amp;amp;amp; Limitations ===&lt;br /&gt;
&lt;br /&gt;
# Terminating PEC ground planes at the top or bottom of a planar structure are defined as PEC top or bottom half-spaces, respectively.&lt;br /&gt;
# A PEC ground plane placed in the middle of a substrate stack-up requires at least one slot object to provide electromagnetic coupling between its top and bottom sides. In this case, a PMC trace is rather introduced at the given Z-plane, which implies the presence of an infinite PEC ground although it is not explicitly indicated in the Navigation Tree.&lt;br /&gt;
# Metallic and slot traces cannot coexist on the same Z-plane. However, you can stack up multiple PEC and conductive sheet traces at the same Z-coordinate. Similarly, multiple PMC traces can be placed at the same Z-coordinate.&lt;br /&gt;
# Metallic and slot traces are strictly defined at the interface planes between substrate layers. To define a suspended metallic trace in a substrate layer (as in the case of the center conductor of a stripline), you must split the dielectric layer into two thinner layers and place your PEC trace at the interface between them.&lt;br /&gt;
# The current version of the Planar MoM simulation engine is based on a 2.5-D MoM formulation. Only vertical volume currents and no circumferential components are allowed on embedded objects. The 2.5-D assumption holds very well in two cases: (a) when embedded objects are very thin with a very small cross section (with lateral dimensions less than 2-5% of the material wavelength) or (b) when embedded objects are very short and sandwiched between two closely spaced PEC traces or grounds from the top and bottom.&lt;br /&gt;
# The current release of EM.Cube allows any number of PEC via sets collocated in the same substrate layer. However, you can define only one embedded dielectric object set per substrate layer, and no vias sets collocated in the same layer. Note that the single set can host an arbitrary number of embedded dielectric objects of the same material properties.&lt;br /&gt;
&lt;br /&gt;
=== Managing Objects, Traces &amp;amp;amp; Sets ===&lt;br /&gt;
&lt;br /&gt;
You can manage your project's layer hierarchy from the Layer Stack-up Settings dialog. You can add, delete and move around substrate layers, metallic and slot traces and embedded object sets. Metallic and slot traces can move among the interface planes between neighboring substrate layers. Embedded object sets including PEC vias and finite dielectric objects can move from substrate layer into another. When you delete a trace from the Layer Stack-up Settings dialog, all of its objects are deleted from the project workspace, too. You can also delete metallic and slot traces or embedded object sets from the Navigation Tree. To do so, right click on the name of the trace or object set in the Navigation Tree and select '''Delete''' from the contextual menu. You can also delete all the traces or object sets of the same type from the contextual menu of the respective type category in the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
For better visualization of your planar structure, EM.Cube displays a virtual domain in a default orange color to represent part of the infinite background structure. The size of this virtual domain is a quarter wavelength offset from the largest bounding box that encompasses all the finite objects in the project workspace. You can change the size of the virtual domain or its display color from the Domain Settings dialog, which you can access either by clicking the '''Computational Domain''' [[File:domain_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Simulate &amp;amp;gt; Computational Domain &amp;amp;gt; Domain Settings...''' from the Simulate Menu or by right clicking the '''Virtual Domain''' item of the Navigation Tree and selecting '''Domain Settings...''' from the contextual menu, or using the keyboard shortcut '''Ctrl+A'''. But keep in mind that the virtual domain is only for visualization purpose and does not affect the MoM simulation. The virtual domain also shows the substrate layers in translucent colors. As you change the colors assigned to the substrate layers, you will see a multilayer virtual domain box surrounding your project structure.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_phys5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Virtual Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the last defined trace or embedded object set is active. You can activate any trace or embedded object set at any time for drawing new objects. You can move one or more selected objects from any trace or embedded object set to another group of the same type or of different type. First select an object in the project workspace or in the Navigation Tree. Then, right click on the highlighted selection and select '''Move To &amp;amp;gt;''' from the contextual menu. This opens another sub-menu containing '''Planar''' and a list of all the other EM.Cube modules that have already defined object groups. Select '''Planar''' or any other available module, and yet another sub-menu opens up with a list of all the available traces and embedded object sets already defined in your project. Select the desired group, and all the selected objects will move to that group. When selecting multiple objects from the Navigation Tree, make sure that you hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting a group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
== Discretizing Planar Structures ==&lt;br /&gt;
&lt;br /&gt;
=== The Planar MoM Mesh ===&lt;br /&gt;
&lt;br /&gt;
The method of moments (MoM) discretizes all the finite-sized objects of a planar structure (excluding the background structure) into a set of elementary cells. The planar integral equations are then solved approximately on these elementary cells. As this method does not require a discretization of the entire computational domain, it is often computationally much more efficient than differential-based techniques like FEM or FDTD, which mesh the whole domain. The accuracy of the MoM numerical solution depends greatly on the quality of the generated mesh. The mesh density gives a measure of how electrically small these elementary cells are. Low mesh resolutions compromise the accuracy of the numerical solution. On the other hand, very high mesh densities may lead to numerical instability of the method of moments. As a rule of thumb, a mesh density of about 20-30 cells per effective wavelength usually yields acceptable results. Yet, for structures with lots of fine geometrical details or for highly resonant structures, higher mesh densities may be required. Also, the particular simulation data that you seek in a project will also influence your choice of mesh resolution. For example, far field characteristics like radiation patterns are less sensitive to the mesh density than field distributions on a structure with a highly irregular shape and a rugged boundary.&lt;br /&gt;
&lt;br /&gt;
It is well known that any planar geometry with any degree of complexity can be reasonably discretized using a surface triangular mesh. EM.Cube's [[Planar Module]] provides a versatile triangular mesh generator for this purpose. This generates a regular mesh, in which most of the triangular cells have almost equal areas. The uniformity or regularity of mesh is an important factor in warranting a stable numerical solution. A highly incongruous mesh may even produce completely erroneous results. EM.Cube's [[Planar Module]] also offers another mesh generator that creates a &amp;amp;quot;Hubrid&amp;amp;quot; planar mesh combining triangular and rectangular cells. Although triangular cells are more versatile than rectangular cells in adapting to arbitrary geometries, many practical planar structures contain a large number of rectangular parts like patch antennas, microstrip lines and components, etc.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM32.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar hybrid and triangular meshes for rectangular patches.&lt;br /&gt;
&lt;br /&gt;
=== The Rectangular Mesh Advantage ===&lt;br /&gt;
&lt;br /&gt;
Rectangular cells offer a major advantage over triangular cells for numerical MoM simulation of planar structures. This is due to the fact that the dyadic Green's functions of planar layered background structures are space-invariant on the transverse plane. Recall that the elements of the moment matrix are given by the following equation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{ij}^{(\mu \nu)} = \iiint_{V_i} d\nu f_i^{(\mu)}(r) \cdot \iiint_{V_j}d\nu ' \overline{\overline{G}}_{\mu \nu}(r|r') \cdot f_j^{(v)}(r') &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM24(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the spatial-domain dyadic Green's functions are a function of the observation and source coordinates, '''r'''and '''r' '''. The MoM matrix elements can indeed be interpreted as interactions between two elementary basis functions '''f&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;(r)''' and '''f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;(r')''' on that particular background structure. The spatial-domain dyadic Green's functions can themselves be expressed in terms of the spectral-domain dyadic Green's functions as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\overline{\overline{G}}_{\mu \nu}(r|r') = \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{\overline{\overline{G}}}_{\mu \nu} (k_p, z|z') e^{-j[k_x(x-x')+k_y(y-y')]} \, dk_x \, dk_y ,&lt;br /&gt;
\quad {k_p}^2 = {k_x}^2 + {k_y}^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM26.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the doubly infinite integration is performed with respect to the spectral [[variables]] k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;. As can be seen from the above expression, the spatial-domain dyadic Green's functions are functions of z, z', as well as (x-x') and (y-y'). The MoM matrix elements can now be transformed into the spectral domain as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
Z_{ij}^{(\mu \nu)} = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty} &lt;br /&gt;
\tilde{f}_i^{(\mu)} (k_x, k_y) \cdot \tilde{\overline{\overline{G}}}_{\mu \nu} (k_{\rho}, z|z') \cdot&lt;br /&gt;
\tilde{f}_j^{(\nu)} (k_x, k_y) \, dk_x \, dk_y&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM27.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the tilde symbol signifies the Fourier transform of a function defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\tilde{f}(k_x, k_y) = \dfrac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
f(x,y) e^{j(k_x x + k_y y)} \, dx \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM28(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rectangular cells have simple Fourier transforms. The rooftop basis functions are triangular functions in the direction of current flow and constant in the perpendicular direction. This means that their Fourier transform is a product of a sinc-squared function along one spectral direction and a sinc function along the other. You can see from the figure below that if one deals with a rectangular mesh of identical cells (all equal and parallel), then the interactions among the rooftop basis functions become a functions of the index differences and not the absolute indices:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{(i,k)|(j,l)} = Z \Big\langle f_{i,k}(x,y)| f_{j,l}(x', y') \Big\rangle = Z_{(i-j)|(k-l)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM29.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equation, the vectorial rooftop basis functions have explicit, double indices: i and k along the local X and Y directions, respectively, for the test (observation) basis function, and j and l along the local X and Y directions, respectively, for the expansion (source) basis function. Thus, uniform rectangular cells, i.e. structured rectangular cells of identical size aligned in the same direction, can speed up the planar MoM simulation significantly due to these symmetry and the invariance properties. For example, all the self-interactions are identical regardless of the location of a rooftop basis function. This reduces the matrix fill process for a total of N rooftop basis functions from an N2 process to one of order N.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM25.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Pairs of rooftop basis functions that have identical MoM interactions.&lt;br /&gt;
&lt;br /&gt;
=== Generating A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
The planar MoM mesh generation process involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties&lt;br /&gt;
# Creating and viewing the mesh&lt;br /&gt;
# Verifying the mesh for integrity&lt;br /&gt;
&lt;br /&gt;
EM.Cube’s [[Planar Module]] offers two mesh generation algorithms for discretizing planar structures: Hybrid and Triangular. The hybrid mesh consists of both rectangular and triangular cells. The hybrid mesh generator creates a kind of “object-centric” mesh that depends on the geometry of each object. It tries to discretize rectangular objects with rectangular cells as much as possible. In certain connection areas, a few triangular cells might be inserted to provide the mesh transition for current continuity. All the non-rectangular objects (circular, polygonal, etc.) are discretized using triangular cells. The triangular mesh generator, on the other hand, discretizes the planar objects with all triangular cells regardless of their shape. The only exceptions are feed lines that contain gap sources or lumped elements, which are always meshed with rectangular cells.&lt;br /&gt;
&lt;br /&gt;
You can generate and view a planar mesh by clicking the '''Show Mesh''' [[File:mesh_tool.png]] button of the '''Simulate Toolbar''' or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' or using the keyboard shortcut '''Ctrl+M'''. When the mesh of the planar structure is displayed in EM.Cube’s project workspace, its &amp;amp;quot;Mesh View&amp;amp;quot; mode is enabled. In this mode you can perform view operations like rotate view, pan or zoom, but you cannot create new objects or edit existing ones. To exit the mesh view mode, press the keyboard's '''Esc Key''' or click the '''Show Mesh''' [[File:mesh_tool.png]] button once again.&lt;br /&gt;
&lt;br /&gt;
Once a mesh is generated, it stays in the memory until the structure is changed or the mesh density or other settings are modified. Every time you view mesh, the one in the memory is displayed. You can force EM.Cube to create a new mesh from the ground up by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''Planar Mesh''' item in the '''Discretization''' section of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
=== Planar Mesh Density ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, generates a hybrid mesh of your planar structure with a mesh density of 20 cells per effective wavelength. It is important to understand the concept of mesh density (either hybrid or triangular) as used by [[Planar Module]]. It gives a measure of the number of cells per effective wavelength that are placed in various regions of your planar structure. The higher the mesh density, the more cells are created on the geometrical objects. Keep in mind that only the finite-sized objects of your structure are discretized. No mesh is generated for the substrate layers of your background structure. The free-space wavelength is defined as &amp;lt;math&amp;gt;\lambda_0 = \tfrac{2\pi f}{c}&amp;lt;/math&amp;gt;, where f is the center frequency of your project and c is the speed of light in the free space. The effective wavelength is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where e&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity.&lt;br /&gt;
&lt;br /&gt;
The effective permittivity is defined differently for different types of traces and embedded object sets. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivity of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivity of the two substrate layers just above and below the metallic trace. These definitions of effective permittivity are consistent with the effective propagation constant of transmission lines realized on such trace types. For embedded object sets, the effective permittivity is defined as the largest of the permittivities of all the substrate layers and embedded dielectric sets. In all cases, for the purpose of calculating the effective wavelength, only the real part of the permittivities are considered. The reason for using an effective wavelength so defined for determination of mesh resolution is to make sure that enough cells are placed in areas that might feature higher field concentration.&lt;br /&gt;
&lt;br /&gt;
Due to the different definitions of effective wavelength in different parts of your planar structure, you will see different mesh resolutions. For example, if you structure has several substrate layers with different permittivities, the mesh of metal traces on layers with a higher permittivity value will feature more cells than the mesh of metal traces on layers with a lower permittivity value even though the mesh density value is the same for the whole structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM30.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of two rectangular patches at two different planes. The lower substrate layer has a higher permittivity.&lt;br /&gt;
&lt;br /&gt;
=== Customizing A Planar Mesh ===&lt;br /&gt;
&lt;br /&gt;
You can change the settings of the planar mesh including the mesh type and density from the planar Mesh Settings Dialog. You can also change these settings while in the mesh view mode, and you can update the changes to view the new mesh. To open the mesh settings dialog, either click the '''Mesh Settings''' [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Mesh Settings...''', or by right click on the '''Planar 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 mesh algorithm from the dropdown list labeled '''Mesh Type''', which offers two options: '''Hybrid''' and '''Triangular'''. You can also enter a different value for '''Mesh Density''' in cells per effective wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;). For each value of mesh density, the dialog also shows the average &amp;amp;quot;Cell Edge Length&amp;amp;quot; in the free space. To get an idea of the size of mesh cells on the traces and embedded object sets, divide this edge length by the square root of the effective permittivity a particular trace or set. Click the '''Apply''' button to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM31.png]]&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Of Connected Trace Objects ===&lt;br /&gt;
&lt;br /&gt;
Using the generated mesh of a planar structure, EM.Cube creates a set of vectorial basis functions that are passed to the input file of the Planar MoM simulation engine. This engine requires edge-based basis functions. The common edges between adjacent cells are used to define edge-based rooftop or RWG basis functions. These elementary basis functions indeed provide the current flow and warrant the continuity among the mesh cells. Therefore, when two objects overlap or share a common edge, the connection between them must be translated into &amp;amp;quot;bridge&amp;amp;quot; basis functions, which carry the information about current flow to the simulation engine.&lt;br /&gt;
&lt;br /&gt;
'''The most important rule of object connections in EM.Cube's [[Planar Module]] is that only objects belonging to the same trace can be connected to one another.''' For example, if two objects reside on the same Z-plane and geometrically have a common edge which you can clearly see in the project workspace, but organizationally they belong to two different metal traces, then the bridge basis functions will not be generated between them, and the simulation engine will see them disconnected. If two objects belong to the same trace and have a common overlap area, EM.Cube first merges the two objects using the &amp;amp;quot;Boolean Union&amp;amp;quot; operation and converts them into a single object for the purpose of meshing. The mesh of &amp;amp;quot;unioned&amp;amp;quot; areas is usually made up of triangular cells. If two objects reside on the same Z-plane and geometrically overlap with each other but organizationally belong to two different trace groups, incongruous, overlapped cells will be generated that will either blow up the linear system or produce completely wrong simulation results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM36.png|250px]] [[File:PMOM38.png|250px]] [[File:PMOM37.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Two overlapping planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
When two planar objects belonging to the same trace are connected via a common edge, it is critical to generate a consistent mesh at the connection area and properly transition and merge the meshes of the individual objects. EM.Cube's triangular planar mesh generator simply &amp;amp;quot;unions&amp;amp;quot; the two objects and generates a connected mesh. EM.Cube's hybrid planar mesh generator, however, behave differently when it comes to the connection between rectangular objects. The rule in this case is the following:&lt;br /&gt;
&lt;br /&gt;
* If the two connected rectangular objects have the same side dimensions along the common linear edge with perfect alignment, a rectangular bridge mesh is produced.&lt;br /&gt;
* If the two connected rectangular objects have different side dimensions along the common linear edge or have edge offset, a set of triangular cells is generated along the edge of the object with the large side.&lt;br /&gt;
* Rectangular objects that contain gap source or lumped elements, always have a rectangular mesh around the gap area.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM33.png|250px]] [[File:PMOM35.png|250px]] [[File:PMOM34.png|250px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edge-connected rectangular planar objects and their triangular and hybrid planar meshes.&lt;br /&gt;
&lt;br /&gt;
=== Mesh of Embedded Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] models embedded objects as vertical volume currents. The vectorial basis functions in this case are Z-directed prisms as opposed to rooftop basis functions. If an embedded object is located under or above a metallic trace or connected from both top and bottom, it is critical to create mesh continuity between the embedded object and its connected metallic traces. In other words, the generated mesh must ensure current continuity between the vertical volume currents and horizontal surface currents. EM.Cube’s planar mesh generator automatically handles situations of this kind and generates all the required connection meshes.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that EM.Cube’s Planar MoM engine uses a 2.5-D approximation, whereby only vertical volume currents are assumed inside embedded objects. When the height of an embedded object is small (as should typically be under the 2.5-D assumption), one prismatic cell is placed across the object along the Z-axis. Long PEC vias with a very small radius do also satisfy the 2.5-D assumption. In this case, the long via objects are discretized further along the Z direction and generate multiple stacked cells. Several prismatic cells along the Z-axis may increase the simulation time drastically. This is due to the fact that the host layer is effectively subdivided into a number of sub-layers and the stacked cells are treated as stacked vias embedded inside these sub-layers. As a result, the simulation engine needs to compute all the dyadic Green’s functions accounting for the interactions between all such sub-layers.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM39.png|400px]] [[File:PMOM40.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Mesh of a vertical PEC via connecting two horizontal metallic strips. The shorter via has one prismatic cell along the Z direction, while the longer via is discretized into several stacked cells.&lt;br /&gt;
&lt;br /&gt;
=== Refining Mesh At Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
It is very important to apply the right mesh density to capture all the geometrical details of your planar structure. This is especially true for &amp;amp;quot;field discontinuity&amp;amp;quot; regions such as junction areas between objects of different side dimensions, where larger current concentrations are usually observed at sharp corners, or at the connection areas between metallic traces and PEC vias, as well as the areas around gap sources and lumped elements, as these create voltage or current discontinuities. For large planar structures, using a higher mesh density may not always be a practical option since it will quickly lead to a very large MoM matrix and thus growing the size of the numerical problem. Sometimes a slightly non-uniform mesh still produces stable numerical results. In other words, you may choose to increase the mesh resolution around the discontinuity regions only.&lt;br /&gt;
&lt;br /&gt;
The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh around geometrical and field discontinuities. You can check the check box labeled &amp;amp;quot;'''Refine Mesh at Junctions'''&amp;amp;quot;, which increases the mesh resolution at the connection area between rectangular objects. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Gap Locations'''&amp;amp;quot;, which may prove particularly useful when gap sources or lumped elements are placed on a short transmission line connected from both ends. Or you can check the check box labeled &amp;amp;quot;'''Refine Mesh at Vias'''&amp;amp;quot;, which increases the mesh resolution on the cross section of embedded object sets and by extension at the connection regions of the metallic objects connected to them. EM.Cube typically doubles the mesh resolution locally at the discontinuity areas when the respective boxes are checked.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM41.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Refining the planar mesh at the via and surrounding area.&lt;br /&gt;
&lt;br /&gt;
=== Checking Mesh Integrity ===&lt;br /&gt;
&lt;br /&gt;
You should always visually inspect EM.Cube's default generated mesh to see if the current mesh settings have produced an acceptable mesh. You may often need to change the mesh density or other parameters and regenerate the mesh. The Planar Mesh Settings dialog gives a few more options for customizing your planar mesh.&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, highly incongruous meshes should always be avoided. Sometimes EM.Cube's default mesh may contain very narrow triangular cells due to very small angles between two edges. In some rare cases, extremely small triangular cells may be generated, whose area is a small fraction of the average mesh cell. These cases typically happen at the junctions and other discontinuity regions or at the boundary of highly irregular geometries with extremely fine details. In such cases, increasing or decreasing the mesh density by one or few cells per effective wavelength often resolves that problem and eliminates those defective cells. Nonetheless, EM.Cube's planar mesh generator offers an option to identify the defective triangular cells and either delete them or cure them. By curing we mean removing a narrow triangular cell and merging its two closely spaced nodes to fill the crack left behind.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM44.png|400px]] [[File:PMOM42.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Deleting or curing defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
EM.Cube by default deletes or cures all the triangular cells that have angles less than 10º. Sometimes removing defective cells may inadvertently cause worse problems in the mesh. You may choose to disable this feature and uncheck the box labeled &amp;amp;quot;'''Remove Defective Triangular Cells'''&amp;amp;quot; in the Planar Mesh Settings dialog. You can also change the value of the minimum allowable cell angle.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM43(1).png]]&lt;br /&gt;
&lt;br /&gt;
Setting the minimum allowable angle for non-defective triangular cells.&lt;br /&gt;
&lt;br /&gt;
=== Locking Mesh Of Object Groups ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides different ways of controlling the mesh of a planar structure locally. Earlier you saw how to increase the mesh resolution at the discontinuity regions without affecting the mesh of uniform or regular areas of a planar structure. Another way of local mesh control is to lock the mesh density of certain traces or object sets. The mesh density that you specify in the Planar Mesh Settings dialog is a global parameter and applies to all the traces and embedded object sets in your project. However, you can lock the mesh of individual PEC, PMC and conductive sheet traces or embedded objects sets. In that case, the locked mesh density takes precedence over the global density. Note that locking mesh of object groups, in principle, is different than refining the mesh at discontinuities. In the latter case, the mesh of connection areas is affected. However, objects belonging to different traces cannot be connected to one another. Therefore, locking mesh can be useful primarily for isolated object groups that may require a higher (or lower) mesh resolution.&lt;br /&gt;
&lt;br /&gt;
You can lock the local mesh density by accessing the property dialog of a specific trace or embedded object set and checking the box labeled '''Lock Mesh'''. This will enable the '''Mesh Density''' box, where you can accept the default global value or set any desired new value.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM45.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of an object group from its property dialog.&lt;br /&gt;
&lt;br /&gt;
=== Local Mesh Control Using Polymesh Objects ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to manually and individually mesh geometrical objects using the concept of polymesh. The Polymesh tool converts a planar surface object to a set of interconnected triangular cells, which is basically identical to its triangular surface mesh. Simply select an object and click the '''Polymesh Tool''' [[File:polymesh_tool_tn.png]] button of '''Tools Toolbar''', or select '''Menu &amp;amp;gt; Tools &amp;amp;gt; Polymesh''', or use the keyboard shortcut '''P'''. You can also right click on a selected object and select '''Polymesh''' from the contextual menu. From the Polymesh Dialog, you can control the mesh resolution through the '''Edge Length''' parameter, which is expressed in project units. Note that unlike the planar mesh generator which uses a frequency-dependent mesh density to drive the mesh resolution, the ploymesh's edge length is fixed and purely geometrical and does not change with the project frequency. '''EM.Cube's mesh generator considers a polymesh object as a &amp;amp;quot;final&amp;amp;quot; mesh and reproduces it &amp;amp;quot;As Is&amp;amp;quot; during the meshing process.'''&lt;br /&gt;
&lt;br /&gt;
You have access to every single node of a polymesh object and you can change its coordinates arbitrarily. You do this by opening the property dialog of a polymesh object and selecting a certain node index in the box labeled '''Active Node'''. You can also select a node by hovering the mouse over the node to highlight it and then click to select it. A red ball appears on the current active node. You can delete the nodes arbitrarily using the '''Delete''' button of the dialog, which results in lowering the mesh resolution at the location of the deleted node. Or you can insert new nodes in the faces of a polymesh object. To insert a node, first you have to select a face. Change the '''Mode''' option by selecting the '''Face''' radio button and then select the right '''Active Face''' index. A red triangular border appears around the selected face. You can also simply click on the surface of a face and select it using the mouse. With the desired face selected, click the '''Insert''' button of the dialog to create a new node at the centroid of the selected face. You can adjust the coordinates of the newly inserted node from the three X, Y and Z '''Coordinate''' boxes. Note that immediately after the insertion of a new node, the label of these coordinate boxes changes to &amp;amp;quot;'''New Node'''&amp;amp;quot; and they show the relative local X, Y and Z offsets with respect to the original node position. Once you close the Polymesh Dialog, the new node is added to the existing node list and can be edited later like the other polymesh nodes. By inserting a new node, you increase the mesh resolution locally and selectively.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM46(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Discretizing a planar surface object using EM.Cube's Polymesh tool.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that since a polymesh object it considered a final mesh, its mesh cannot be connected to other objects. In other words, bridge basis functions are not generated if even some of the polymesh edges may coincide with other objects' edges. A polymesh object is treated by the mesh generator as an isolated mesh. However, EM.Cube allows you to connect polymesh objects manually. To do so, bring two or more polymesh objects close to each other so that they have one or more common edges. No face overlaps are allowed in this case. Select the polymesh objects and click the '''Merge Tool'''[[File:merge_tool_tn.png]] button of '''Tools Toolbar''' to merge the polymesh objects into a single polymesh object. The new merged polymesh object will provide all the necessary bridge basis functions among the original, separate polymesh objects.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
In a typical electromagnetic simulation in EM.Cube's [[Planar Module]], you define a planar structure that consists of a layered background structure with a number of finite-sized metal and slot traces and possibly embedded metal or dielectric objects interspersed among the substrate layers. The planar structure is then excited by some sort of a signal source that induces electric currents on metal parts and magnetic currents on slot traces. The method of moments (MoM) solver computes these unknown electric and magnetic currents by discretizing the finite-sized objects. The induced currents, in turn, produce their own electric and magnetic fields which coexist (are superposed) with the impressed electric and magnetic fields of the signal source. From a knowledge of the near fields, EM.Cube calculates the port characteristics of the planar structure, if any ports have been defined. From a knowledge of the far fields, EM.Cube calculates the radiation or scattering characteristics of the planar structure.&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure in a number of different ways. The excitation source you choose depends on the observables you seek in your project. [[Planar Module]] provides the following source for exciting planar structures:&lt;br /&gt;
&lt;br /&gt;
* Lumped Sources with three varieties: [[#Gap Sources|Gap Sources]], [[#De-embedded Sources|De-embedded Sources]] and [[#Probe Sources|Probe Sources]]&lt;br /&gt;
* [[#Plane Wave Sources|Plane Wave Sources]]&lt;br /&gt;
* [[#Short Dipole Sources|Short Dipole Sources]]&lt;br /&gt;
* [[#Huygens Sources|Huygens Sources]]&lt;br /&gt;
&lt;br /&gt;
For antennas and planar circuits, where you typically define one or more ports, you usually use lumped sources. A lumped source is indeed a gap discontinuity that is placed on the path of an electric or magnetic current flow, where a voltage or current source is connected to inject a signal. Gap sources are placed across metal or slot traces. Probe sources are placed across vertical PEC vias. A de-embedded source is a special type of gap source that is placed near the open end of an elongated metal or slot trace to create a standing wave pattern, from which the scattering parameters can be calculated accurately. To calculate the scattering characteristics of a planar structure, e.g. its radar cross section (RCS), you excite it with a plane wave source. Short dipole sources are used to explore propagation of points sources along a layered structure. Huygens sources are virtual equivalent sources that capture the radiated electric and magnetic fields from another structure possibly in another EM.Cube computational module and bring them as a new source to excite your planar structure.&lt;br /&gt;
&lt;br /&gt;
=== Gap Sources ===&lt;br /&gt;
&lt;br /&gt;
A gap is an infinitesimally narrow discontinuity that is placed on the path of current flow on a feed line. In planar structures, feed lines are typically in the form of a microstrip, stripline, slotline or coplanar waveguide (CPW). You use rectangle strip objects to construct such feed lines. A gap source can be placed on any rectangle strip object on a PEC, PMC or conductive sheet trace. Depending on the type of the trace on which a gap source is placed, it will have a different physical interpretation.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PEC or conductive sheet trace can be regarded as a strip transmission line that carries electric currents along its length (local X direction). The characteristic impedance of the line is a function of its width (local Y direction). A gap source is placed somewhere along the length and across the width of such a rectangle strip object, thus creating an infinitesimally narrow gap at its location. In this case, the gap source represents an ideal voltage source in series with a lumped impedance that is connected across the gap to excite the strip transmission line. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the gap. The source pumps electric current into the line. If the voltage source is shorted (having a zero amplitude), then the gap acts like a series lumped element on the transmission line.&lt;br /&gt;
&lt;br /&gt;
A rectangle strip object on a PMC trace can be regarded as a slot transmission line on an infinite PEC ground plane that carries a magnetic current along its length (local X direction). The characteristic impedance of the slot line is a function of its width (local Y direction). A slot gap source is placed somewhere along the length and across the width of the rectangle strip object on a PMC trace and creates an infinitesimally narrow gap at its location. In this case, the slot gap source represents an ideal current source with a shunt lumped admittance that is connected across the slot to excite the slot transmission line. When the admittance is zero, the gap acts like an ideal current filament, which creates electric fields across the slot, equivalent to a magnetic current flowing into the slot line. If the current source is open (having a zero amplitude), then the gap acts like a shunt (parallel) lumped element on the slot line. As you will see later, a coplanar waveguide (CPW) can be realized using two parallel slot lines with two aligned, collocated gap sources.&lt;br /&gt;
&lt;br /&gt;
To define a gap source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Gap Source Dialog by right clicking on the '''Gap Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' available in the project workspace. Select the desired host rectangle strip object. The box labeled '''Direction''' shows the direction or polarity of the new gap source on its host rectangle strip object. You have the option to select either the positive or negative direction for the source polarity.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the gap source from the start point of the rectangle strip feed line. The value of '''Offset''' by default is initially set to the center of the line. As you change the offset value, you can see the gap move on its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of a gap on a slot trace) and '''Phase''' in degrees.&lt;br /&gt;
* You can also change the default label as well as the default color of the gap source using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM47.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Gap Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Probe Sources ===&lt;br /&gt;
&lt;br /&gt;
Another way of exciting a planar structure is by placing a gap on the path of a vertical current on a PEC via. This represents a filament source, which is used to model coaxial probe excitation. A probe source can be placed only on a PEC via object. Most planar transmission lines are fed using SMA connectors. The outer conductor of the coaxial line is connected to the ground and its inner conductor is extended across the substrate layer and connected to a metallic line. EM.Cube's [[Planar Module]] models a coaxial probe as an infinitesimal gap discontinuity placed across a thin via, representing an ideal voltage source in series with a lumped impedance. When the impedance is zero, the gap acts like an ideal lumped source and creates a uniform electric field across the via. The source pumps vertical electric current into the probe. If the voltage source is shorted (having a zero amplitude), then the gap acts like a shunt lumped element across the via.&lt;br /&gt;
&lt;br /&gt;
To define a probe source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Probe Source Dialog by right clicking on the '''Probe Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, in the dropdown list labeled '''Embedded Objects''', you will find a list of all the PEC via objects available in the project workspace. Select the desired host PEC via object. The box labeled '''Direction''' shows the direction or polarity of the new probe source on its host PEC via object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the probe source from the bottom of the via object. The value of '''Offset''' by default is initially set to the center of the via.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and '''Phase''' in degrees.&lt;br /&gt;
&lt;br /&gt;
Unlike gap sources, whose offset parameter determines their exact location on their host line, the offset parameter of a probe source is not relevant except for long host vias. In the case of a short via that is discretized using a single prismatic element across its host substrate layer, the probe gap is always placed at the middle of its height. Longer vias may have a mesh that consists of two or more stacked prismatic elements. In this case, the probe source's offset determines which prismatic element will host the probe gap discontinuity at its middle.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Probe Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Defining Source Arrays ===&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects, the array object will also be listed as an eligible object for gap source placement. A gap source will then be placed on each element of the array. All the gap sources will have identical direction and offset. Similarly, if the project workspace contains an array of PEC via objects, the embedded array object will also be listed as an eligible object for probe source placement. A probe source will then be placed on each via object of the array. All the probe sources will have identical direction and offset.&lt;br /&gt;
&lt;br /&gt;
However, you can prescribe certain amplitude and/or phase distribution over the array of gap or probe sources. By default, all the gap or probe sources have identical amplitudes of 1V (or 1A for the slot case) and zero phase. The available amplitude distributions to choose from include '''Uniform''', '''Binomial''' and '''Chebyshev''' and '''Date File'''. In the Chebyshev case, you need to set a value for minimum side lobe level ('''SLL''') in dB. You can also define '''Phase Progression''' in degrees along all three principal axes. You can view the amplitude and phase of individual sources by right clicking on the top '''Sources''' item in the Navigation Tree and selecting '''Show Source Label''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM49.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining gap sources on an array of rectangle strip objects with a Chebyshev amplitude distribution.&lt;br /&gt;
&lt;br /&gt;
In the data file option, the complex amplitude are directly read in from a data file using a real - imaginary format. When this option is selected, you can either improvise the complex array weights or import them from an existing file. In the former case click the '''New Data File''' button. This opens up the Windows Notepad with default formatted data file that has a list of all the array element indices with default 1+j0 amplitudes for all of them. You can replace the default complex values with new one and save the Notepad data file, which brings you back to the Gap Source dialog. To import the array weights, click the '''Open Data File''' button, which opens the standard Windows Open dialog. You can then select the right data file from the one of your folders. It is important to note that the data file must have the correct format to be read by EM.Cube. For this reason, it is recommended that you first create a new data file with the right format using Notepad as described earlier and then save it for later use.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining gap source array weights using a data file.&lt;br /&gt;
&lt;br /&gt;
=== Defining Ports ===&lt;br /&gt;
&lt;br /&gt;
Ports are used in a planar structure to order and index the sources for calculation of circuit parameters such as scattering (S), impedance (Z) and admittance (Y) parameters. In EM.Cube's [[Planar Module]], you can use the following types of sources to define ports:&lt;br /&gt;
&lt;br /&gt;
* Gap Sources&lt;br /&gt;
* Probe Sources&lt;br /&gt;
* Active Lumped Elements&lt;br /&gt;
* De-Embedded Sources&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your planar structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree. Note that your project can have mixed gap and probes sources as well as active lumped element sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
'''You can define any number of ports equal to or less than the total number of sources in your project.''' The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50S by default. You can delete any port by selecting it from the Port List and clicking the '''Delete''' button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment and make sure that is what you intend. You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit''' button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM53.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Edit Port dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Coupled Ports ===&lt;br /&gt;
&lt;br /&gt;
Sources can be coupled to each other to model coupled strip lines (CPS) on metal traces or coplanar waveguides (CPW) on slot traces. Similarly, probe sources may be coupled to each other. Coupling two or more sources does not change the way they excite a planar structure. It is intended only for the purpose of S parameter calculation. The feed lines or vias which host the coupled sources are usually parallel and aligned with one another and they are all grouped together as a single transmission line represented by a single port. This single &amp;amp;quot;coupled&amp;amp;quot; port then interacts with other coupled or uncoupled ports.&lt;br /&gt;
&lt;br /&gt;
You couple two or more sources using the '''Port Definition Dialog'''. To do so, you need to change the default port assignments. First, delete all the ports that are to be coupled from the Port List of the dialog. Then, define a new port by clicking the '''Add''' button of the dialog. This opens up the Add Port dialog, which consists of two tables: '''Available''' sources on the left and '''Associated''' sources on the right. A right arrow ('''--&amp;amp;gt;''') button and a left arrow ('''&amp;amp;lt;--''') button let you move the sources freely between these two tables. You will see in the &amp;amp;quot;Available&amp;amp;quot; table a list of all the sources that you deleted earlier. You may even see more available sources. Select all the sources that you want to couple and move them to the &amp;amp;quot;Associated&amp;amp;quot; table on the right. You can make multiple selections using the keyboard's '''Shift''' and '''Ctrl''' keys. Closing the Add Port dialog returns you to the Port Definition dialog, where you will now see the names of all the coupled sources next to the name of the newly added port.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is your responsibility to set up coupled ports and coupled transmission lines properly. For example, to excite the desirable odd mode of a coplanar waveguide (CPW), you need to create two rectangular slots parallel to and aligned with each other and place two gap sources on them with the same offsets and opposite polarities. To excite the even mode of the CPW, you use the same polarity for the two collocated gap sources. Whether you define a coupled port for the CPW or not, the right definition of sources will excite the proper mode. The couple ports are needed only for correct calculation of the port characteristics.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM51(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Coupling gap sources in the Port Definition dialog by associating more than one source with a single port.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Port Characteristics At Gap Discontinuities ===&lt;br /&gt;
&lt;br /&gt;
A gap source on a metal trace and a probe source on a PEC via behave like a series voltage source with a prescribed strength (of 1V and zero phase by default) that creates a localized discontinuity on the path of electric current flow. At the end of a planar MoM simulation, the electric current passing through the voltage source is computed and integrated to find the total input current. From this one can calculate the input admittance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_W \hat{y} \cdot \mathbf{J_s} \, dy} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM54(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for gap sources on metal traces, where the line integration is performed across the width of the metal strip, and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Y_{in} = \frac{I_{in}}{V_s} = \frac {\int_S \hat{z} \cdot \mathbf{J_p} \, ds} {V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM55.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for probe sources on PEC vias, where the surface integration is performed over the cross section of the via. On the other hand, a gap source on a slot trace behaves like a shunt current source with a prescribed strength (of 1A and zero phase by default) that creates a localized discontinuity on the path of magnetic current flow. At the end of a planar MoM simulation, the magnetic current passing through the current source is computed and integrated to find the total input voltage across the current filament. From this one can calculate the input impedance as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; Z_{in} = \frac{V_{in}}{I_s} = \frac{\int_W \hat{y} \cdot \mathbf{M_s} \,dy} {V_s} = \frac{\int_W E_y \, dy}{V_s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM56.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the input admittance or impedance defined at a gap source port is referenced to the two terminals of the voltage source connected across the gap as shown in the figure below. This is different than the input admittance or impedance that one may normally define for a microstrip port, which is referenced to the substrate's ground.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM59(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Definition of different input impedances at the gap location.&lt;br /&gt;
&lt;br /&gt;
To resolve this problem, you can place a gap source on a metal strip line by a distance of a quarter guide wavelength (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/4) away from its open end. Note that (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; = 2p/ß), where ß is the propagation constant of the metallic transmission line. As show in the figure below, the impedance looking into an open quarter-wave line segment is zero, which effectively shorts the gap source to the planar structure's ground. The gap admittance or impedance in this case is identical to the input admittance or impedance of the planar structure.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM60(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing a gap source a quarter guide wavelength away from the open end of a feed line to effectively short it to the ground at the gap location.&lt;br /&gt;
&lt;br /&gt;
The same principle applies to the gap sources on slot traces. The figure below shows how to place two gap sources with opposite polarities a quarter guide wavelength away from their shorted ends to calculate the correct input impedance of the CPW line looking to the left of the gap sources. Note that in this case, you deal with shunt filament current sources across the two slot lines and that the slot line carry magnetic currents. The end of the slot lines look open to the magnetic currents, but in reality they short the electric field. The quarter-wave CPW line acts as an open circuit to the current sources.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM61(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Placing two oppositely polarized gap sources a quarter guide wavelength away from the short end of a CPW line to effectively create an open circuit beyond the gap location.&lt;br /&gt;
&lt;br /&gt;
The case of a probe source placed on a PEC via that is connected to a ground plane is more straightforward. In this case, the probe source's gap discontinuity is placed at the middle plane of the PEC via. If the via is short, it is meshed using a single prismatic element, which is connected to the ground from one side and to the metal strip line from the other. Therefore, the probe admittance or impedance is equal to that of the structure at a reference plane that passed through the host via.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM62(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Input impedance of a probe source on a PEC via connected to a ground plane.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Multiport Structures Using Linear Superposition ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure has two or more sources, but you have not defined any ports, all the lumped sources excite the structure locally and contribute to the excitation vector needed for the MoM solution of the problem. However, when you assign N ports to the sources, then you have a multiport structure that is characterized by an N×N admittance matrix (instead of a single Y&amp;lt;sub&amp;gt;in&amp;lt;/sub&amp;gt; parameter), or an N×N impedance matrix, or an N×N scattering matrix. To calculate these matrices, EM.Cube uses a binary excitation scheme in conjunction with the principle of linear superposition. In this binary scheme, the structure is analyzed N times. Each time one of the N port-assigned sources is excited, and all the other port-assigned sources are turned off.&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on metal traces and probe sources on PEC vias, turning a source off means shorting a series voltage source. The electric currents passing through these sources are then found at each port location, and the admittance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_m = \sum_{n=1}^N Y_{mn} V_n, \quad \quad Y_{mn} = \frac{I_m}{V_n} \bigg|_{V_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM57.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the case of gap sources on slot traces, turning a source off means opening a shunt filament current source. The magnetic currents passing through the source locations, and thus the voltages across them, are then found at all ports, and the impedance parameters are found as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; V_m = \sum_{n=1}^N Z_{mn} I_n, \quad \quad Z_{mn} = \frac{V_m}{I_n} \bigg|_{I_k=0, k \ne n}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM58.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The N solution vectors that are generated through the N binary excitation analyses are finally superposed to produce the actual solution to the problem. However, in this process, EM.Cube also calculates all the port characteristics. Keep in mind that the impedance (Z) and admittance (Y) matrices are inverse of each other. From the impedance matrix, the scattering matrix is calculated using the following relation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0]} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM63.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Lumped Elements In Planar MoM ===&lt;br /&gt;
&lt;br /&gt;
Lumped elements are components, devices, or circuits whose overall dimensions are very small compared to the wavelength. As a result, they are considered to be dimensionless compared to the dimensions of a mesh cell. In fact, a lumped element is equivalent to an infinitesimally narrow gap that is placed in the path of current flow, across which the device's governing equations are enforced. Using Kirkhoff's laws, these device equations normally establish a relationship between the currents and voltages across the device or circuit. Crossing the bridge to Maxwell's domain, the device equations must now be cast into a from o boundary conditions that relate the electric and magnetic currents and fields. EM.Cube's [[Planar Module]] allows you to define passive circuit elements: '''Resistors'''(R), C'''apacitors'''(C), I'''nductors'''(L), and series and parallel combinations of them as shown in the figure below:&lt;br /&gt;
&lt;br /&gt;
[[File:image106.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A series-parallel RLC combination that can be modeled as a lumped circuit in [[Planar Module]].&lt;br /&gt;
&lt;br /&gt;
Lumped elements are conceptualized in a similar way as gap or probe sources. They are indeed considered as infinitesimally narrow gaps placed in the path of current flow, across which Ohm's law is enforced. If a lumped element is placed on a PEC or conductive sheet trace, it is treated as a series connection. The boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; &lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{x}\cdot \mathbf{E_{gap}} \, dx = Z_L \int_W \hat{y} \cdot \mathbf{J_s} \, dy&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM67.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Z&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total impedance across the two terminals of the series element. If the lumped element is placed on a slot trace, it is treated as a shunt connection that creates a current discontinuity. In this case, the magnetic current across the gap is continuous, and the boundary condition at the location of the lumped element is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; I_{gap} = Y_L V_{in} \quad\quad \int_{\delta} J_Y^{fila} \, dx = Y_L \int_W E_y \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \int_{\delta} \hat{x}\cdot\hat{n} \times (\mathbf{H_{gap}^+ - H_{gap}^-}) \, dx = Y_L \int_W \hat{y}\cdot\mathbf{M_s} \, dy &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM70(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where Y&amp;lt;sub&amp;gt;L&amp;lt;/sub&amp;gt; is the total admittance across the two terminals of the shunt element. If a lumped element is placed on a PEC via that is connected to a metal strip from one side and to a PEC ground plane from the other end, it is indeed as a series connection across a gap discontinuity at the middle plane of the via. If the via is short, it is meshed using a single prismatic element. In that case, the lumped element in effect shunts the metal strip to the ground. The boundary condition at the location of the lumped element across the PEC via is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
V_{gap} = Z_L I_{in} \quad\quad &lt;br /&gt;
\int_{\delta} \hat{z}\cdot \mathbf{E_{gap}} \, dz = Z_L \int_S \hat{z} \cdot \mathbf{J_p} \, ds&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM68.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM69.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Using a shunt lumped element on a PEC via to terminate a metallic strip line.&lt;br /&gt;
&lt;br /&gt;
=== Defining Lumped Circuits ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM64.png|thumb|400px|Lumped Element dialog]]&lt;br /&gt;
To define a lumped RLC circuit in your planar structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Lumped Element Dialog by right clicking on the '''Lumped Elements''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Gap Topology''' section of the dialog, select one of the two options: '''Gap on Line''' and '''Gap on Via'''.&lt;br /&gt;
* In the '''Lumped Circuit Type''' section of the dialog, select one of the two options: '''Passive RLC''' and '''Active with Gap Source'''.&lt;br /&gt;
* Depending on your choice of gap topology, in the '''Lumped Circuit Location''' section of the dialog, you will find either a list of all the '''Rectangle Strip Objects''' or a list of all the '''PEC Via Objects''' available in the project workspace. Select the desired rectangle strip or embedded PEC via object.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the rectangle strip line or from the bottom of the via object, whichever the case. The value of '''Offset''' by default is initially set to the center of the line or via.&lt;br /&gt;
* In the '''Load Properties''' section, the series and shunt resistance values Rs and Rp are specified in Ohms, the series and shunt inductance values Ls and Lp are specified in nH (nanohenry), and the series and shunt capacitance values Cs and Cp are specified in pF (picofarad). Only the checked elements are taken into account in the total impedance calculation. By default, only the series resistor is checked with a value of 50S, and all other circuit elements are initially greyed out.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] allows you to define a voltage source in series with a series-parallel RLC combination and place them across the gap. This is called an active lumped element. If you choose the '''Active with Gap Source''' option of the '''Lumped Circuit Type''' section of the dialog, the right section of the dialog entitled '''Source Properties''' becomes enabled, where you can you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of PMC traces) and the '''Phase''' in degrees. Also, the box labeled '''Direction''' becomes relevant in this case which contains a gap source. Otherwise, a passive RLC circuit does not have polarity.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of rectangle strip objects or PEC via objects, the array object will also be listed as an eligible object for lumped element placement. A lumped element will then be placed on each element of the array. All the lumped elements will have identical direction, offset, resistance, inductance and capacitance values. If you define an active lumped element, you can prescribe certain amplitude and/or phase distribution to the gap sources just like in the case of gap and probe sources. The available amplitude distributions include '''Uniform''', '''Binomial'''''', Chebyshev''' and '''Data File'''.&lt;br /&gt;
&lt;br /&gt;
{{Note|The impedance of the lumped circuit is calculated at the operating frequency of the project using the specified R, L and C values. As you change the frequency, the value of the impedance that is passed to the Planar MoM engine will change.}}&lt;br /&gt;
&lt;br /&gt;
=== Calculating Scattering Parameters Using Prony's Method ===&lt;br /&gt;
&lt;br /&gt;
The calculation of the scattering (S) parameters is usually an important objective of modeling planar structures especially for planar circuits like filters, couplers, etc. As you saw earlier, you can use lumped sources like gaps and probes and even active lumped elements to calculate the circuit characteristics of planar structures. The admittance / impedance calculations based on the gap voltages and currents are accurate at RF and lower microwave frequencies or when the port transmission lines are narrow. In such cases, the electric or magnetic current distributions across the width of the port line are usually smooth, and quite uniform current or voltage profiles can easily be realized. At higher frequencies, however, a more robust method is needed for calculating the port parameters.&lt;br /&gt;
&lt;br /&gt;
One can calculate the scattering parameters of a planar structure directly by analyzing the current distribution patterns on the port transmission lines. The discontinuity at the end of a port line typically gives rise to a standing wave pattern that can clearly be discerned in the line's current distribution. From the location of the current minima and maxima and their relative levels, one can determine the reflection coefficient at the discontinuity, i.e. the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter. A more robust technique is Prony’s method, which is used for exponential approximation of functions. A complex function f(x) can be expanded as a sum of complex exponentials in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f(x) \approx \sum_{n=1}^N c_i e^{-j\gamma_i x} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM73.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are complex coefficients and &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are, in general, complex exponents. From the physics of transmission lines, we know that lossless lines may support one or more propagating modes with pure real propagation constants (real &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents). Moreover, line discontinuities generate evanescent modes with pure imaginary propagation constants (imaginary &amp;amp;gamma;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; exponents) that decay along the line as you move away from the location of such discontinuities.&lt;br /&gt;
&lt;br /&gt;
In practical planar structures for which you want to calculate the scattering parameters, each port line normally supports one, and only one, dominant propagating mode. Multi-mode transmission lines are seldom used for practical RF and microwave applications. Nonetheless, each port line carries a superposition of incident and reflected dominant-mode propagating signals. An incident signal, by convention, is one that propagates along the line towards the discontinuity, where the phase reference plane is usually established. A reflected signal is one that propagates away from the port plane. Prony's method can be used to extract the incident and reflected propagating and evanescent exponential waves from the standing wave data. From a knowledge of the amplitudes (expansion coefficients) of the incident and reflected dominant propagating modes at all ports, the scattering matrix of the multi-port structure is then calculated. In Prony's method, the quality of the S parameter extraction results depends on the quality of the current samples and whether the port lines exhibit a dominant single-mode behavior. Clean current samples can be drawn in a region far from sources or discontinuities, typically a quarter wavelength away from the two ends of a feed line.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM71.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Minimum and maximum current locations of the standing wave pattern on a microstrip line feeding a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== De-Embedded Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM74.png|thumb|300px|The [[Planar Module]]'s De-embedded Source dialog]]&lt;br /&gt;
EM.Cube's [[Planar Module]] provides de-embedded sources for the exclusive purpose of accurate S parameter calculation based on Prony's method. A de-embedded source is indeed a gap source that is placed close to an open end of a feed line. The other end of the line is typically connected to a planar structure of interest. Like gap sources, de-embedded sources can be placed only on rectangle strip objects. '''During mesh generation, EM.Cube automatically extends the length of a port line that hosts a de-embedded source to about two effective wavelengths.''' This is done to provide enough length for formation of a clean standing wave current pattern. The effective wavelength of a transmission line for length extension purposes is calculated in a similar manner as for the planar mesh resolution. It is defined as &amp;lt;math&amp;gt;\lambda_{eff} = \tfrac{\lambda_0}{\sqrt{\varepsilon_{eff}}}&amp;lt;/math&amp;gt;, where &amp;amp;epsilon;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective permittivity. For metal and conductive sheet traces, the effective permittivity is defined as the larger of the permittivities of the two substrate layers just above and below the metallic trace. For slot traces, the effective permittivity is defined as the mean (average) of the permittivities of the two substrate layers just above and below the metallic trace. The host port line must always be open from one end to allow for its length extension. You have to make sure that there are no objects standing on the way of the extended port line to avoid any unwanted overlaps.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM72.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The mesh of a patch antenna excited with a de-embedded source. Note the feed line extension in the mesh view.&lt;br /&gt;
&lt;br /&gt;
You can define de-embedded source on metal (PEC), slot (PMC) and conductive sheet traces. To define a de-embedded source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the De-Embedded Source Dialog by right clicking on the '''De-Embedded Sources''' item in the '''Sources''' section of the Navigation Tree and selecting '''Insert New Source...'''&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the '''Rectangle Strip Objects''' or arrays of such objects that are available in the project workspace. The box labeled '''Direction''' shows the direction the phase reference plane for S parameter calculation and determines which end of the host line to place the source at. You have the option to select either the positive or negative direction to bounce the source between the two ends of the line.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the phase reference plane from the end of the feed line object. The value of '''Offset''' by default is initially set to zero, meaning that the S parameters are calculated at the plane passing through the end of the feed line. Type in a new offset value or use the spin buttons to move the source arrow along the line away from its end. As you change the offset value, you can see the source arrow move along its host object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts (or in Amperes in the case of slot traces) and '''Phase''' in degrees.&lt;br /&gt;
* In the '''Prony Mode Extraction''' section, you can specify the '''Number of Prony Modes''', which refers to the number of positive-negative exponential pairs that are extracted from the standing wave current data. The default value is 1 and represents the dominant quasi-TEM incident/reflected signal pair.&lt;br /&gt;
&lt;br /&gt;
In a planar project with de-embedded sources, if you do not define any ports, the feed lines will simply be extended, and the exciting gap sources will be placed at the open ends of these extended lines. Note that if you define a de-embedded source along with a port definition in your project, then all the other port-assigned sources of your project must be of the same de-embedded type. You can define de-embedded sources for coplanar waveguides (CPW) on slot traces. To do so, you need to place two collocated, de-embedded sources with identical offsets (same phase reference plane), same source amplitudes but 180° phase difference. Note that for CPW structures, setting the number of Prony modes to 2 can get you more accurate results. In this case, the two extracted Prony modes will include the incident and reflected, odd and even, propagating modes of the CPW.&lt;br /&gt;
&lt;br /&gt;
=== Using the Line Calculator ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides a simple calculator for analyzing planar transmission lines. It is based on the frequency domain finite difference (FDFD) technique. You can find the characteristic impedance, effective permittivity and guide wavelength of a TEM or quasi-TEM transmission line defined based on your project's background structure. Therefore, any arbitrary stack-up configuration with any number of substrate layers can be considered.&lt;br /&gt;
&lt;br /&gt;
To access the Line Calculator, first you have to select a metal (PEC) trace or a slot (PMC) trace in the Navigation Tree. Right click on the name of a trace and select '''Line Calc...''' from the contextual menu to open the Line Calc Dialog. You can analyze a metal strip line on any PEC trace or a coplanar waveguide (coupled slot lines) on any PMC trace. The 2D line structure to be analyzed by the FDFD method consists of the background structure of your project with a metal strip or CPW located at the Z-plane of your selected trace. Depending on whether your open the Line Calc dialog from a metal trace or a slot trace, a picture of a microstrip line or a CPW line appear at the top of the dialog, respectively. In the former case, you have to specify '''Strip Width''' in the project units. In the latter case, you have to specify '''Slot Width''', too. Keep in mind that the strip width is equal to the spacing between the two slot lines minus the width of individual slot lines. Clicking the Analyze button of the dialog evokes the FDTD simulator, and calculated results are reflected in the boxes labeled '''Zo''', '''Effective Permittivity''' and '''Guide Wavelength'''.&lt;br /&gt;
&lt;br /&gt;
When your background structure involves a slot (PMC) trace, then there is an infinite PEC ground plane at the plane of the slot trace. In that case, when you analyze a strip line on a metal trace, you must keep in mind that your stack-up configuration will be truncated by the slot's ground plane just for purpose of Z&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; calculation. A typical case of this type is a slot-coupled patch antenna fed by a microstrip line underneath the slot. From the point of view of the Line Calculator, the microstrip line lies on a substrate layer that is backed by the slot's ground plane and it does not see the substrate layer lying above the slot plane.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM75.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Analyzing a metal strip line using the line calculator.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM76.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Analyzing a coplanar waveguide using the line calculator.&lt;br /&gt;
&lt;br /&gt;
=== Short Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM110.png|thumb|250px|Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A short dipole is the simplest type of radiator, which consists of a short current element of length &amp;amp;amp;DELTA;l, aligned along a unit vector û and carrying a current of I Amperes. The product I&amp;amp;amp;DELTA;l is often called the dipole moment and gives a measure of the radiator's strength. A short dipole in the free space generates an azimuth-symmetric, almost omni-directional, far field. However, the radiated fields of a short dipole above a layered planar background structure are greatly altered by the presence of the substrate layers. Note that the electric and magnetic field radiated by a short dipole in the presence of a layered background structure are indeed nothing but the dyadic Green's functions of that structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{EJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H^{inc}(r) = \int_{\Delta_L} \overline{\overline{G_{HJ}}}(r|r') \cdot (I\Delta l \hat{u}) \, dl' &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM109(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To define a short dipole source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Short Dipoles''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' The Short Dipole Dialog opens up.&lt;br /&gt;
* In the section titled '''Source Location''', enter values for the X, Y and Z coordinates of the dipole's center. By default, a new dipole is placed at the origin of coordinates. As you change the coordinates using the spin buttons, you will see the dipole move in the project workspace.&lt;br /&gt;
* In the section titled '''Source Properties''', you can change the values of the dipole's '''Amplitude''' (in A), '''Phase''' (in degrees) and '''Length''' in the project's length units. A new dipole, by default, is Z-directed. You can change its orientation by entering the components of its unit vector in the three boxes labeled '''Direction Unit Vector'''.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM77.png|thumb|300px|[[Planar Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
You can excite a planar structure with an incident plane wave to explore its scattering characteristics such as radar cross section (RCS). Exciting an antenna structure with an incident plane wave is equivalent to operating it in the &amp;amp;quot;receive&amp;amp;quot; mode. Plane wave excitation in the [[Planar Module]] is particularly useful for calculation of reflection and transmission coefficients of periodic surfaces. Note that the incident plane wave in your project bounces off the layered background structure and part of it also penetrates the substrate layers. The total incident field that is used to calculate the excitation vector of the MoM linear system is a superposition of the incident, reflected and transmitted plane waves at various regions of your planar structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{inc}(r)} = E_0 (\mathbf{\hat{e}_1} e^{ -jk_0 \mathbf{\hat{k}_1\cdot r} } + &lt;br /&gt;
R \mathbf{\hat{e}_2} e^{ -jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{inc}(r)} = \frac{E_0}{\eta_0} ( \mathbf{\hat{k}_1 \times \hat{e}_1} e^{-jk_0 \mathbf{\hat{k}_1 \cdot r} } + &lt;br /&gt;
R \mathbf{\hat{k}_2 \times \hat{e}_2} e^{-jk_0 \mathbf{\hat{k}_2\cdot r} } ) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi&amp;lt;/math&amp;gt; is the characteristic impedance of the free space, '''k&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''k&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the unit propagation vectors of the incident plane wave and the wave reflected off the topmost substrate layer, respectively, and '''ê&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;''' and '''ê&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;''' are the polarization vectors corresponding to the electric field of those waves. R is the reflection coefficient at the interface between the top half-space and the topmost substrate layer and has different values for the TM and TE polarizations.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the theta and phi angles of the propagation vector in the spherical coordinate system. The default values are &amp;amp;theta; = 180° and &amp;amp;phi; = 0°, representing a normally incident plane wave propagating along the -Z direction with a +X-polarized electric field vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization cases, the magnetic and electric fields are parallel to the XY plane, respectively. The left-hand (LCP) and right-hand (RCP) circular polarization cases are restricted to normal incidences only (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the '''Amplitude''' of the incident electric field in V/m and '''Phase''' in degrees. The default field Amplitude is 1 V/m, with a zero Phase.&lt;br /&gt;
* The direction of the Plane Wave is determined by the incident '''Theta''' and '''Phi''' angles expressed in the spherical coordinate system in degrees. You have to choose the '''Polarization''' of the plane wave from the four options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''and '''RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;'''. The components of the unit propagation vector are shown based on your choice of the angles of incidence. The components of the normalized E- and H-field vectors are also displayed based on your choice of polarization.&lt;br /&gt;
&lt;br /&gt;
== Running Planar MoM Simulations ==&lt;br /&gt;
&lt;br /&gt;
The first step of planning a planar MoM simulation is defining your planar structure. This consists of the background structure plus all the finite-sized metal and slot trace objects and possibly embedded metal or dielectric objects that are interspersed among the substrate layers. The background stack-up is defined in the Layer Stack-up dialog, which automatically opens up as soon as you enter the [[Planar Module]]. The metal and slot traces and embedded object sets are listed in the Navigation Tree, which also shows all the geometrical (CAD) objects you draw in the project workspace under each object group at different Z-planes.&lt;br /&gt;
&lt;br /&gt;
The next step is to decide on the excitation scheme. If your planar structure has one or more ports and you seek to calculate its port characteristics, then you have to choose one of the lumped source types or a de-embedded source. If you are interested in the scattering characteristics of your planar structure, then you must define a plane wave source. Before you can run a planar MoM simulation, you also need to decide on the project's observables. These are the simulation data that you expect EM.Cube to generate as the outcome of the numerical simulation. EM.Cube's [[Planar Module]] offers the following observables:&lt;br /&gt;
&lt;br /&gt;
* Current Distribution&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Far Fields (Radiation Patterns or Radar Cross Section)&lt;br /&gt;
* Huygens Surfaces&lt;br /&gt;
* Port Characteristics&lt;br /&gt;
* Periodic Characteristics&lt;br /&gt;
&lt;br /&gt;
If you run a simulation without having defined any observables, no data will be generated at the end of the simulation. Some observables require a certain type of excitation source. For example, port characteristics will be calculated only if the project contains a port definition, which in turn requires the existence of at least one gap or probe or de-embedded source. The periodic characteristics (reflection and transmission coefficients) are calculated only if the structure has a periodic domain and excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Simulation Modes ===&lt;br /&gt;
&lt;br /&gt;
The simplest simulation type in EM.Cube is an analysis. In this mode, the planar structure in your project workspace is meshed at the center frequency of the project. EM.Cube generates an input file at this single frequency, and the Planar MoM simulation engine is run once. Upon completion of the planar MoM simulation, a number of data files are generated depending on the observables you have defined in your project. An analysis is a single-run simulation.&lt;br /&gt;
&lt;br /&gt;
EM.Cube offers a number of multi-run simulation modes. In such cases, the Planar MoM simulation engine is run multiple times. At each engine run, certain parameters are varied and a collection of simulation data are generated. At the end of a multi-run simulation, you can graph the simulation results in EM.Grid or you can animate the 3D simulation data from the Navigation Tree. For example, in a frequency sweep, the frequency of the project is varied over its specified bandwidth. Port characteristics are usually plotted vs. frequency, representing your planar structure's frequency response. In an angular sweep, the &amp;amp;theta; or &amp;amp;phi; angle of incidence of a plane wave source is varied over their respective ranges. EM.Cube's [[Planar Module]] currently provides the following types of multi-run simulation modes:&lt;br /&gt;
&lt;br /&gt;
* Frequency Sweep&lt;br /&gt;
* Parametric Sweep&lt;br /&gt;
* Angular Sweep&lt;br /&gt;
* R/T Macromodel&lt;br /&gt;
* Huygens Sweep&lt;br /&gt;
* [[Optimization]]&lt;br /&gt;
* HDMR&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting a simulation mode in [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
To run a planar MoM analysis of your project structure, open the Run Simulation Dialog by clicking the '''Run''' [[File:run_icon.png]] button on the '''Simulate Toolbar''' or select '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt;''' '''Run''' or use the keyboard shortcut '''Ctrl+R'''. The '''Analysis''' option of the '''Simulation Mode''' dropdown list is selected by default. Once you click the '''Run''' button, the simulation starts. A new window, called the '''Output Window''', opens up that reports the different stages of simulation and the percentage of the tasks completed at any time. After the simulation is successfully completed, a message pops up and reports the end of simulation. In certain cases like calculating scattering parameters of a circuit or reflection / transmission characteristics of a periodic surface, some results are also reported in the Output Window. At the end of a simulation, you need to click the '''Close''' button of the Output Window to return to the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM78.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Stages Of A Planar MoM Analysis ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar MoM simulation engine uses a particular formulation of the method of moments called mixed potential integral equation (MPIE). Due to high-order singularities, the dyadic Green's functions for electric fields generated by electric currents as well as the dyadic Green's functions for magnetic fields generated by magnetic currents have very slow convergence behaviors. Instead of using these slowly converging dyadic Green's function, the MPIE formulation uses vector and scalar potentials. These include vector electric potential '''A(r)''', scalar electric potential K&amp;lt;sup&amp;gt;&amp;amp;Phi;&amp;lt;/sup&amp;gt;'''(r)''', vector magnetic potential '''F(r)''' and scalar magnetic potential K&amp;lt;sup&amp;gt;&amp;amp;Psi;&amp;lt;/sup&amp;gt;'''(r)'''. These potentials have singularities of lower orders. As a result, they coverage relatively faster. The speed of their convergence is further increased drastically using special singularity extraction techniques.&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation consists of two major stages: matrix fill and linear system inversion. In the first stage, the moment matrix and excitation vector are calculated. In the second stage, the MoM system of linear equations is inverted using one of the several available matrix solvers to find the unknown coefficients of all the basis functions. The unknown electric and magnetic currents are linear superpositions of all these elementary solutions. These can be visualized in EM.Cube using the current distribution observables. Having determined all the electric and magnetic currents in your planar structure, EM.Cube can then calculate the near fields on prescribed planes. These are introduced as field sensor observables. The near-zone electric and magnetic fields are calculated using a spectral domain formulation of the dyadic Green's functions. Finally the far fields of the planar structure are calculated in the spherical coordinate system. These calculations are performed using the asymptotic form of the dyadic Green's functions using the &amp;amp;quot;stationary phase method&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Setting Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
A planar MoM simulation involves a number of numerical parameters that take preset default values unless you change them. You can access these parameters and change their values by clicking the '''Settings''' button next to the '''Select Engine''' dropdown list in the [[Planar Module]]'s Simulation Run dialog. In most cases, you do not need to open this dialog and you can leave all the default numerical parameter values intact. However, it is useful to familiarize yourself with these parameters, as they may affect the accuracy of your numerical results.&lt;br /&gt;
&lt;br /&gt;
The Planar MoM Engine Settings Dialog is organized in a number of sections. Here we describe some of the numerical parameters. The &amp;amp;quot;'''Matrix Fill'''&amp;amp;quot; section of the dialog deals with the operations involving the dyadic Green's functions. You can set a value for the '''Convergence Rate for Integration''', which is 1E-5 by default. This is used for the convergence test of all the infinite integrals in the calculation of the Hankel transform of spectral-domain dyadic Green's functions. When the substrate is lossy, the surface wave poles are captured in the complex integration plane using contour deformation. You can change the maximum number of iterations involved in this deformed contour integration, whose default value is 20. When the substrate is very thin with respect to the wavelength, the dyadic Green's functions exhibit numerical instability. Additional singularity extraction measures are taken to avoid numerical instability but at the expense of increased computation time. By default, a thin substrate layer is defined to a have a thickness less than 0.01&amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt;, where &amp;amp;lambda;&amp;lt;sub&amp;gt;eff&amp;lt;/sub&amp;gt; is the effective wavelength. You can modify the definition of &amp;amp;quot;Thin Substrate&amp;amp;quot; by entering a value for '''Thin Substrate Threshold''' different than the default 0.01. The parameter '''Max Coupling Range''' determines the distance threshold in wavelength between the observation and source points after which the Green's interactions are neglected. This distance by default is set to 1,000 wavelengths. For electrically small structures, the phase variation across the structure may be negligible. In such cases, a fast quasi-static analysis can be carried out. You can set this threshold in wavelengths in the box labeled '''Max Dimensions for Quasi-Static Analysis'''.&lt;br /&gt;
&lt;br /&gt;
In the &amp;amp;quot;Spectral Domain Integration&amp;amp;quot; section of the dialog, you can set a value to '''Max Spectral Radius in k0''', which has a default value of 30. This means that the infinite spectral-domain integrals in the spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; are pre-calculated and tabulated up to a limit of 30k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space propagation constant. These integrals may converge much faster based on the specified Convergence Rate for Integration described earlier. However, in certain cases involving highly oscillatory integrands, much larger integration limits like 100k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; might be needed to warrant adequate convergence. For spectral-domain integration along the real k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; axis, the interval [0, Nk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;] is subdivided into a large number of sub-intervals, within each an 8-point Gauss-Legendre quadrature is applied. The next parameter, '''No. Radial Integration Divisions per k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;''', determines how small these intervals should be. By default, 2 divisions are used for the interval [0, k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;]. In other words, the length of each integration sub-interval is k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/2. You can increase the resolution of integration by increasing this value above 2. Finally, instead of 2D Cartesian integration in the spectral domain, a polar integration is performed. You can set the '''No. of Angular Integration Points''', which has a default value of 100.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM79.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Linear System Solvers ===&lt;br /&gt;
&lt;br /&gt;
After the MoM impedance matrix '''[Z]''' (not to be confused with the impedance parameters) and excitation vector '''[V]''' have been computed through the matrix fill process, the planar MoM simulation engine is ready to solve the system of linear equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{[Z]}_{N\times N} \cdot \mathbf{[I]}_{N\times 1} = \mathbf{[V]}_{N\times 1} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM81.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''[I]''' is the solution vector, which contains the unknown amplitudes of all the basis functions that represent the unknown electric and magnetic currents of finite extents in your planar structure. In the above equation, N is the dimension of the linear system and equal to the total number of basis functions in the planar mesh. EM.Cube's linear solvers compute the solution vector'''[I]''' of the above system. You can instruct EM.Cube to write the MoM matrix and excitation and solution vectors into output data files for your examination. To do so, check the box labeled &amp;amp;quot;'''Output MoM Matrix and Vectors'''&amp;amp;quot; in the Matrix Fill section of the Planar MoM Engine Settings dialog. These are written into three files called mom.dat1, exc.dat1 and soln.dat1, respectively.&lt;br /&gt;
&lt;br /&gt;
There are a large number of numerical methods for solving systems of linear equations. These methods are generally divided into two groups: direct solvers and iterative solvers. Iterative solvers are usually based on matrix-vector multiplications. Direct solvers typically work faster for matrices of smal to medium size (N&amp;amp;lt;3,000). EM.Cube's [[Planar Module]] offers five linear solvers:&lt;br /&gt;
&lt;br /&gt;
# LU Decomposition Method&lt;br /&gt;
# Biconjugate Gradient Method (BiCG)&lt;br /&gt;
# Preconditioned Stabilized Biconjugate Gradient Method (BCG-STAB)&lt;br /&gt;
# Generalized Minimal Residual Method (GMRES)&lt;br /&gt;
# Transpose-Free Quasi-Minimum Residual Method (TFQMR)&lt;br /&gt;
&lt;br /&gt;
Of the above list, LU is a direct solver, while the rest are iterative solvers. BiCG is a relatively fast iterative solver, but it works only for symmetric matrices. You cannot use BiCG for periodic structures or planar structures that contain both metal and slot traces at different planes, as their MoM matrices are not symmetric. The three solvers BCG-STAB, GMRES and TtFQMR work well for both symmetric and asymmetric matrices and they also belong to a class of solvers called '''Krylov Sub-space Methods'''. In particular, the GMRES method always provides guaranteed unconditional convergence.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]], by default, provides a &amp;amp;quot;'''Automatic'''&amp;amp;quot; solver option that picks the best method based on the settings and size of the numerical problem. For linear systems with a size less than N = 3,000, the LU solver is used. For larger systems, BiCG is used when dealing with symmetric matrices, and GMRES is used for asymmetric matrices. If the size of the linear system exceeds N = 15,000, the sparse version of the iterative solvers is used, utilizing a row-indexed sparse storage scheme. You can override the automatic solver option and manually set you own solver type. This is done using the '''Solver Type''' dropdown list in the &amp;amp;quot;'''Linear System Solver'''&amp;amp;quot; section of the Planar MoM Engine Settings dialog. There are also a number of other parameters related to the solvers. The default value of '''Tolerance of Iterative Solver''' is 1E-3, which can be increased for more ill-conditioned systems. The maximum number of iterations is usually expressed as a multiple of the systems size. The default value of '''Max No. of Solver Iterations / System Size''' is 3. For extremely large systems, sparse versions of iterative solvers are used. In this case, the elements of the matrix are thresholded with respect to the larges element. The default value of '''Threshold for Sparse Solver''' is 1E-6, meaning that all the matrix elements whose magnitude is less than 1E-6 times the large matrix elements are set equal to zero. There are two more parameters that are related to the Automatic Solver option. These are &amp;amp;quot;''' User Iterative Solver When System Size &amp;amp;gt;'''&amp;amp;quot; with a default value of 3,000 and &amp;amp;quot;''' Use SParse Storage When System Size &amp;amp;gt;''' &amp;amp;quot; with a default value of 15,000. In other words, you control the automatic solver when to switch between direct and iterative solvers and when to switch to the sparse version of iterative solvers.&lt;br /&gt;
&lt;br /&gt;
If your computer has an Intel CPU, then EM.Cube offers special versions of all the above linear solvers that have been optimized for Intel CPU platforms. These optimal solvers usually work 2-3 time faster than their generic counterparts. When you install EM.Cube, the option to use Intel-optimized solvers is already enabled. However, you can disable this option (e.g. if your computer has a non-Intel CPU). To do that, open the EM.Cube's Preferences Dialog from '''Menu &amp;amp;gt; Edit &amp;amp;gt; Preferences''' or using the keyboard shortcut '''Ctrl+H'''. Select the Advanced tab of the dialog and uncheck the box labeled &amp;amp;quot;''' Use Optimized Solvers for Intel CPU'''&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM82.png]]&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
Electric and magnetic currents are the fundamental output data of a planar MoM simulation. After the numerical solution of the MoM linear system, they are found using the solution vector '''[I]''' and the definitions of the electric and magnetic vectorial basis functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{[I]}_{N\times 1} = &lt;br /&gt;
\begin{bmatrix} I^{(J)} \\ \\ V^{(M)} \end{bmatrix} \quad \Rightarrow \quad&lt;br /&gt;
&lt;br /&gt;
\begin{cases}&lt;br /&gt;
\mathbf{J(r)} = \sum_{n=1}^N I_n^{(J)} \mathbf{f_n^{(J)} (r)} \\&lt;br /&gt;
\\&lt;br /&gt;
\mathbf{M(r)} = \sum_{k=1}^K V_k^{(M)} \mathbf{f_k^{(M)} (r)}&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that currents are complex vector quantities. Each electric or magnetic current has three X, Y and Z components, and each complex component has a magnitude and phase. You can visualize the surface electric currents on metal (PEC) and conductive sheet traces, surface magnetic currents on slot (PMC) traces and vertical volume currents on the PEV vias and embedded dielectric objects. 3D color-coded intensity plots of electric and magnetic current distributions are visualized in the project workspace, superimposed on the surface of physical objects.&lt;br /&gt;
&lt;br /&gt;
In order to view the current distributions, you must first define them as observables before running the planar MoM simulation. To do that, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. At the top of the dialog and in the section titled '''Active Trace / Set''', you can select a trace or embedded object set where you want to observe the current distribution. You can also select the current map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for current amplitude and phase, while the latter generates a 3D vector plot.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM84.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The [[Planar Module]]'s Current Distribution dialog.&lt;br /&gt;
&lt;br /&gt;
Once you close the current distribution dialog, the label of the selected trace or object set is added under the '''Current Distributions''' node of the Navigation Tree. &lt;br /&gt;
&lt;br /&gt;
{{Note|You have to define a separate current distribution observable for each individual trace or embedded object set.}}&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the current distribution nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''J''') and magnetic ('''M''') currents as well as the total electric and magnetic currents defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{J_{tot}} | = \sqrt{|J_x|^2 + |J_y|^2 + |J_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; | \mathbf{M_{tot}} | = \sqrt{|M_x|^2 + |M_y|^2 + |M_z|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can click on any current plot to visualize it in the project workspace. A legend box at the upper right corner of the screen shows the color map scale as well as the minimum, maximum, mean and standard deviation of the current data and its units. To exit the 3D plot view and return to EM.Cube's normal view, hit the keyboard's '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM85(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The current distribution map of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM86(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Vectorial (cone) visualization of the current distribution on a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
Once all the current distributions are known in a planar structure, the electric and magnetic fields can be calculated everywhere in that structure using the dyadic Greens's functions of the background structure:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{EJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{EM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + &lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \iiint_V \overline{\overline{G}}_{HJ}(r|r') \cdot f_n^{(J)}(r') \, d\nu' + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \iiint_V \overline{\overline{G}}_{HM}(r|r') \cdot f_k^{(M)}(r') \, d\nu'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM92(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above equations can be cast into the spectral domain as follows:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{E(r) = E_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{EJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{EM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{H(r) = H_{inc}(r)} + \frac{1}{(2\pi)^2} \int\limits_{-\infty}^{\infty} \int\limits_{-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
&amp;amp; \sum_{n=1}^N I_n^{(J)} \tilde{\overline{\overline{G}}}_{HJ}(k_{\rho}, z|z') \cdot \tilde{f}_n^{(J)}(k_x, k_y) + \\&lt;br /&gt;
&amp;amp; \sum_{k=1}^K V_n^{(M)} \tilde{\overline{\overline{G}}}_{HM}(k_{\rho}, z|z') \cdot \tilde{f}_k^{(M)}(k_x, k_y)&lt;br /&gt;
\bigg] \, dk_x \, dk_y&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM93(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Calculation of the near-zone fields (fields at the vicinity of the unknown currents) is done at the post-processing stage and in a Cartesian coordinate systems. These calculations involve doubly infinite spectral-domain integrals, which are computed numerically. As was mentioned earlier, EM.Cube's planar MoM engine rather uses a polar integration scheme, where the radial spectral variable k&amp;lt;sub&amp;gt;&amp;amp;rho;&amp;lt;/sub&amp;gt; is integrated over the interval [0, Mk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;], M being a large enough number to represent infinity, and the angular spectral variable t is integrated over the interval [0, 2&amp;amp;pi;]. You also saw some of the numerical parameters related to this spectral-domain integration scheme.&lt;br /&gt;
&lt;br /&gt;
{{Note|When the observation plane is placed very close to the radiating J and M currents, the Green's functions exhibit singularities, which translate to very slow convergence or divergence of the integrals. You need to be careful to place field sensors at adequate distances from these radiating sources.}}&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Near Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM90.png|thumb|300px|[[Planar Module]]'s Field Sensor dialog]]&lt;br /&gt;
In order to view the near field distributions, you must first define field sensor observables before running the planar MoM simulation. To do that, right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Field Sensor Dialog opens up. At the top of the dialog and in the section titled '''Sensor Plane Location''', first you need to set the plane of near field calculation. In the dropdown box labeled '''Direction''', you have three options X, Y, and Z, representing the&amp;amp;quot;normals&amp;amp;quot; to the XY, YZ and ZX planes, respectively. The default direction is Z, i.e. XY plane parallel to the substrate layers. In the three boxes labeled '''Coordinates''', you set the coordinates of the center of the plane. Then, you specify the '''Size''' of the plane in project units, and finally set the '''Number of Samples''' along the two sides of the sensor plane. The larger the number of samples, the smoother the near field map will appear.&lt;br /&gt;
&lt;br /&gt;
In the section titled Output Settings, you can also select the field map type from two options: '''Confetti''' and '''Cone'''. The former produces an intensity plot for field amplitude and phase, while the latter generates a 3D vector plot. In the confetti case, you have an option to check the box labeled '''Data Interpolation''', which creates a smooth and blended (digitally filtered) map. In the cone case, you can set the size of the vector cones that represent the field direction. At the end of a sweep simulation, multiple field map are produced and added to the Navigation Tree. You can animate these maps. However, during the sweep only one field type is stored, either the E-field or H-field. You can choose the field type for multiple plots using the radio buttons in the section titled '''Field Display - Multiple Plots'''. The default choice is the E-field.&lt;br /&gt;
&lt;br /&gt;
Once you close the Field Sensor dialog, its name is added under the '''Field Sensors''' node of the Navigation Tree. At the end of a planar MoM simulation, the field sensor nodes in the Navigation Tree become populated by the magnitude and phase plots of the three vectorial components of the electric ('''E''') and magnetic ('''H''') field as well as the total electric and magnetic fields defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{E_{tot}}| = \sqrt{|E_x|^2 + |E_y|^2 + |E_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; |\mathbf{H_{tot}}| = \sqrt{|H_x|^2 + |H_y|^2 + |H_z|^2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that unlike EM.Cube's other computational modules, near field calculations in the [[Planar Module]] usually takes substantial time. This is due to the fact that at the end of a planar MoM simulation, the fields are not available anywhere (as opposed to the [[FDTD Module]]), and their computation requires integration of complex dyadic Green's functions (as opposed to [[MoM3D Module]]'s free space Green's functions).&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM116.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone electric field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Near-zone magnetic field map above a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Computing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
Unlike differential-based methods, MoM simulators do not need a radiation box to calculate the far field data. The far-zone fields are calculated directly by integrating the currents on the traces and across the embedded objects using the asymptotic form of the background structure’s dyadic Green's functions:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E^{ff}(r)} = \iiint_V \mathbf{ \overline{\overline{G}}_{EJ,ff}(r|r') \cdot J(r') } \, d\nu ' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM,ff}(r|r') \cdot M(r') } \, d\nu '&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \dfrac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; is the characteristic impedance of the free space. As can be seen from the above equations, the far fields have the form of a TEM wave propagating in the radial direction away from the origin of coordinates. This means that the far-field magnetic field is always perpendicular to the electric field and the propagation vector, which in this case happens to be the radial unit vector in the spherical coordinate system. In other words, one only needs to know the far-zone electric field and can easily calculate the far-zone magnetic field from it. In EM.Cube's mixed potential integral equation formulation, the far-zone electric field can be expressed in terms of the asymptotic form of the vector electric and magnetic potentials '''A''' and '''F''':&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{E^{ff}}(x,y,z) = j k_0 \eta_0 \hat{r} \times [\hat{r} \times \mathbf{A}(r \to \infty)] +&lt;br /&gt;
j k_0 \hat{r} \times \mathbf{F}(r \to \infty)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The asymptotic form of these vector potentials are calculated using the &amp;amp;quot;'''Method of Stationary Phase'''&amp;amp;quot; when k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;rarr; &amp;amp;infin;. In that case, one can use the approximation:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_0 |\mathbf{r-r'}| \approx k_0 (r - \mathbf{\hat{r} \cdot r'}) &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM115.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After applying the stationary phase method, one can extract the spherical wave factor exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/r from the far-zone electric field, leaving the rest as functions of the spherical angles &amp;amp;theta; and &amp;amp;phi;. In other words, the far field is normalized to r, the distance from the field observation point to the origin. It is customary to express the far fields in spherical components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;. Note that the outward propagating, TEM-type, far fields do not have radial components, i.e. E&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; = 0.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\theta}}(\theta, \phi) = \cos\theta \cos\phi E_x + \cos\theta \sin\phi E_y - \sin\theta E_z &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{E_{\phi}}(\theta, \phi) = -\sin\phi E_x + \cos\phi E_y &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM114.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Visualizing The Far Fields ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM118.png|thumb|300px|[[Planar Module]]'s Radiation Pattern dialog]]&lt;br /&gt;
Even though the planar MoM engine does not need a radiation box, you still have to define a &amp;amp;quot;Far Field&amp;amp;quot; observable for radiation pattern calculation. This is because far field calculations take time and you have to instruct EM.Cube to perform these calculations. To define a far field, right click the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...'''. The Radiation Pattern Dialog opens up. You may accept the default settings, or you can change the value of '''Angle Increment''', which is expressed in degrees. You can also choose to '''Normalize 2D Patterns'''. In that case, the maximum value of a 2D paten graph will have a value of 1; otherwise, the actual far field values in V/m will be used on the graph.&lt;br /&gt;
&lt;br /&gt;
Once a planar MoM simulation is finished, three far field items are added under the Far Field item in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the &amp;amp;quot;Total&amp;amp;quot; far field. The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the whole structure or parts of it. In a 3D radiation pattern plot, the fields are always normalized to the maximum value of the total far field for visualization purpose:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM89.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM119.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D polar radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM120.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D vectorial (cone) radiation pattern plot of a microstrip-fed patch antenna.&lt;br /&gt;
&lt;br /&gt;
The 2D radiation pattern graphs can be plotted from EM.Cube's '''Data Manager'''. A total of eight 2D radiation pattern graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section of Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM124.png|thumb|300px|Planar Module's Radar Cross Section dialog]]&lt;br /&gt;
&lt;br /&gt;
When a planar structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields of that planar structure. EM.Cube can also calculate the radar cross section (RCS) of a planar target:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{|E_{\theta}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{|E_{\phi}^{scat}|^2}{|E^{inc}|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{|E_{tot}^{scat}|^2}{|E^{inc}|^2} &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM123.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note that in this case the RCS is defined for a finite-sized target in the presence of an infinite background structure.''' The scattered &amp;amp;theta; and &amp;amp;phi; components of the far-zone electric field are indeed what you see in the 3D far field visualization of radiation (scattering) patterns. Instead of radiation or scattering patterns, you can instruct EM.Cube to plot 3D visualizations of &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and the total RCS. To do so, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* At the end of a planar MoM simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This fourth plane cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D mono-static radar cross section plot of a patch antenna.&lt;br /&gt;
&lt;br /&gt;
=== Running a Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
In a frequency sweep, the operating frequency of a planar structure is varied during each sweep run. EM.Cube's [[Planar Module]] offers two types of frequency sweep: Uniform and Adaptive. In a uniform frequency sweep, the frequency range and the number of frequency samples are specified. The samples are equally spaced over the frequency range. At the end of each individual frequency run, the output data are collected and stored. At the end of the frequency sweep, the 3D data can be visualized and/or animated, and the 2D data can be graphed in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
To run a uniform frequency sweep, open the '''Simulation Run Dialog''', and select the '''Frequency Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the frequency sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Frequency Settings''' dialog. The '''Frequency Range'''is initially set equal to your project's center frequency minus and plus half bandwidth. But you can change the values of '''Start Frequency'''and '''End Frequency''' as well as the '''Number of Samples'''. The dialog offers two options for '''Frequency Sweep Type''': '''Uniform''' or '''Adaptive'''. Select the former type. It is very important to note that in a MoM simulation, changing the frequency results in a change of the mesh of the structure, too. This is because the mesh density is defined in terms of the number of cells per effective wavelength. By default, during a frequency sweep, EM.Cube fixes the mesh density at the highest frequency, i.e., at the &amp;amp;quot;End Frequency&amp;amp;quot;. This usually results in a smoother frequency response. You have the option to fix the mesh at the center frequency of the project or let EM.Cube &amp;amp;quot;remesh&amp;amp;quot; the planar structure at each frequency sample during a frequency sweep. You can make one of these three choices using the radio button in the '''Mesh Settings''' section of the dialog. Closing the Frequency Settings dialog returns you to the Simulation Run dialog, where you can start the planar MoM frequency sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Frequency Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Adaptive Frequency Sweep ===&lt;br /&gt;
&lt;br /&gt;
Frequency sweeps are often performed to study the frequency response of a planar structure. In particular, the variation of scattering parameters like S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; (return loss) and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; (insertion loss) with frequency are of utmost interest. When analyzing resonant structures like patch antennas or planar filters over large frequency ranges, you may have to sweep a large number of frequency samples to capture their behavior with adequate details. The resonant peaks or notches are often missed due to the lack of enough resolution. EM.Cube's [[Planar Module]] offers a powerful adaptive frequency sweep option for this purpose. It is based on the fact that the frequency response of a physical, causal, multiport network can be represented mathematically using a rational function approximation. In other words, the S parameters of a circuit exhibit a finite number of poles and zeros over a given frequency range. EM.Cube first starts with very few frequency samples and tries to fit rational functions of low orders to the scattering parameters. Then, it increases the number of samples gradually by inserting intermediate frequency samples in a progressive manner. At each iteration cycle, all the possible rational functions of higher orders are tried out. The process continues until adding new intermediate frequency samples does not improve the resolution of the &amp;amp;quot;S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;&amp;amp;quot; curves over the given frequency range. In that case, the curves are considered as having converged.&lt;br /&gt;
&lt;br /&gt;
You must have defined one or more ports for your planar structure run an adaptive frequency sweep. Open the Frequency Settings dialog from the Simulation Run dialog and select the '''Adaptive''' option of '''Frequency Sweep Type'''. You have to set values for '''Minimum Number of Samples''' and '''Maximum Number of Samples'''. Their default values are 3 and 9, respectively. You also set a value for the '''Convergence Criterion''', which has a default value of 0.1. At each iteration cycle, all the S parameters are calculated at the newly inserted frequency samples, and their average deviation from the curves of the last cycle is measured as an error. When this error falls below the specified convergence criterion, the iteration is ended. If EM.Cube reaches the specified maximum number of iterations and the convergence criterion has not yet been met, the program will ask you whether to continue the process or exit it and stop.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large frequency ranges, you may have to increase both the minimum and maximum number of samples. Moreover, remeshing the planar structure at each frequency may prove more practical than fixing the mesh at the highest frequency.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Settings adaptive frequency sweep parameters in [[Planar Module]]'s Frequency Settings Dialog.&lt;br /&gt;
&lt;br /&gt;
=== Examining Port Characteristics ===&lt;br /&gt;
&lt;br /&gt;
If your planar structure is excited by gap sources or probe sources or de-embedded sources, and one or more ports have been defined, the planar MoM engine calculates the scattering, impedance and admittance (S/Z/Y) parameters of the designated ports. The scattering parameters are defined based on the port impedances specified in the project's Port Definition dialog. If more than one port has been defined in the project, the S/Z/Y matrices of the multiport network are calculated. Note that the S/Z/Y matrices of an N-port structure are related to each other through the following equations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [S] = [Y_0] \cdot ([Z]-[Z_0]) \cdot ([Z]+[Z_0])^{-1} \cdot [Z_0] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM121.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, &amp;lt;math&amp;gt;\mathbf{[Z_0]}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{[Y_0]}&amp;lt;/math&amp;gt; are diagonal matrices whose diagonal elements are the port characteristic impedances and admittances, respectively, and &amp;lt;math&amp;gt;\mathbf{[\sqrt{Z_0}]}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM122.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, the values of S/Z/Y parameters and VSWR data are calculated and reported in the output message window. The S, Z and Y parameters are written into output ASCII data files of complex type with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Every file begins with a header consisting of a few comment lines that start with the &amp;amp;quot;#&amp;amp;quot; symbol. The complex values are arranged into two columns for the real and imaginary parts. In the case of multiport structures, every single element of the S/Z/Y matrices is written into a separate complex data file. For example, you will have data files like S11.CPX, S21.CPX, ..., Z11.CPX, Z21.CPX, etc. The VSWR data are saved to an ASCII data file of real type with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension called, VSWR.DAT.&lt;br /&gt;
&lt;br /&gt;
If you run an analysis, the port characteristics have single complex values, which you can view using EM.Cube's data manager. However, there are no curves to graph. You can plot the S/Z/Y parameters and VSWR data when you have data sets, which are generated at the end of any type of sweep including a frequency sweep. In that case, the &amp;amp;quot;.CPX&amp;amp;quot; files have multiple rows corresponding to each value of the sweep parameter (e.g. frequency). EM.Cube's 2D graph data are plotted in EM.Grid, a versatile graphing utility. You can plot the port characteristics directly from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting port characteristics data to plot from the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
You can also see a list of all the port characteristics data files in EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. By default, the S parameters are plotted as double magnitude-phase graphs, while the Y and Z parameters are plotted as double real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You can change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM129.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Data Manager showing a list of the port characteristics data files.&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it in the Data Manager and click its '''Edit''' button. In the Edit File Dialog, choose one of the options provided in the dropdown list labeled '''Graph Type'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM130.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Changing the graph type by editing a data file's properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM134.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plotted on a Smith Chart graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
=== Rational Interpolation Of Scattering Parameters ===&lt;br /&gt;
&lt;br /&gt;
The adaptive frequency sweep described earlier is an iterative process, whereby the Planar MoM simulation engine is run at a certain number of frequency samples at each iteration cycle. The frequency samples are progressively built up, and rational fits for these data are found at each iteration cycle. A decision is then made whether to continue more iterations. At the end of the whole process, a total number of scattering parameter data samples have been generated, and new smooth data corresponding to the best rational fits are written into new data files for graphing. EM.Cube's [[planar Module]] also allows you to generate a rational fit for all or any existing scattering parameter data as a post-processing operation without a need to run additional simulation engine runs.&lt;br /&gt;
&lt;br /&gt;
You can interpolate all the scattering parameters together or select individual parameters. You do this post-processing operation from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select Smart Fit. At the top of the Smart Fit Dialog, there is a dropdown list labeled '''Interpolate''', which gives a list of all the available S parameter data for rational interpolation. The default option is &amp;amp;quot;All Available Parameters&amp;amp;quot;. Then you see a box labeled '''Number of Available Samples''', whose value is read from the data content of the selected complex .CPX data file. Based on the number of available data samples, the dialog reports the '''Maximum Interpolant Order'''. You can choose any integer number for '''Interpolant Order''', from 1 to the maximum allowed. &lt;br /&gt;
&lt;br /&gt;
{{Note|Interpolant order more than 15 will suffer from numerical instabilities even if you have a very large number of data samples.}}&lt;br /&gt;
&lt;br /&gt;
You can use the '''Update''' button of the dialog to generate the interpolated data for a given order. The new data are written to a complex data file with the same name as the selected S parameter and a &amp;amp;quot;'''_RationalFit'''&amp;amp;quot; suffix. While this dialog is still open, you can plot the new data either directly from the Navigation Tree or from the Data Manager. If you are not satisfied with the results, you can return to the Smart Fit dialog and try a higher or lower interpolant order and compare the new data.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM131.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Smart Fit dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM133(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of a two-port structure in magnitude-phase format.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM132(2).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The smoothed version of the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter plot of the two-port structure using EM.Cube's Smart Fit.&lt;br /&gt;
&lt;br /&gt;
=== Planar Module's Output Simulation Data ===&lt;br /&gt;
&lt;br /&gt;
Depending on the source type and the types of observables defined in a project, a number of output data are generated at the end of a planar MoM simulation. Some of these data are 2D by nature and some are 3D. The output simulation data generated by EM.Cube's [[Planar Module]] can be categorized into the following groups:&lt;br /&gt;
&lt;br /&gt;
* '''Port Characteristics''': S, Z and Y Parameters and Voltage Standing Wave Ratio (VSWR)&lt;br /&gt;
* '''Radiation Characteristics''': Radiation Patterns, Directivity, Total Radiated Power, Axial Ratio, Main Beam Theta and Phi, Radiation Efficiency, Half Power Beam Width (HPBW), Maximum Side Lobe Level (SLL), First Null Level (FNL), Front-to-Back Ratio (FBR), etc.&lt;br /&gt;
* '''Scattering Characteristics''': Bi-static and Mono-static Radar Cross Section (RCS)&lt;br /&gt;
* '''Periodic Characteristics''': Reflection and Transmission Coefficients&lt;br /&gt;
* '''Current Distributions''': Electric and magnetic current amplitude and phase on all metal and slot traces and embedded objects&lt;br /&gt;
* '''Near-Field Distributions''': Electric and magnetic field amplitude and phase on specified planes and their central axes&lt;br /&gt;
&lt;br /&gt;
At the end of an analysis, the 2D quantities usually have a single value that is written into an ASCII data file. Complex-valued quantities are written into complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension. Real-valued quantities are written into real data files with a &amp;amp;quot;'''.DAT'''&amp;amp;quot; extension. Polar 2D radiation pattern data and some other radiation characteristics are written into angular data files with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; extension. In this latter file type, polar data are stored as functions of an angle expressed in degrees. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). If a sweep simulation involves N sweep [[variables]], then the first N columns of the output data files show the samples of those sweep [[variables]]. All the 2D data files are listed in the '''2D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
3D output data, on the other hand, are defined as functions of the space coordinates and are usually of vectorial nature. Cartesian-type and mesh-type data such as current distributions and near-field field distributions are expressed as functions of the Cartesian (X, Y, Z) coordinates. Spherical-type data like far-field radiation patterns and RCS are expressed as functions of the spherical angles (&amp;amp;theta;, &amp;amp;phi;). The 3D radiation patterns are written into a file with a &amp;amp;quot;'''.RAD'''&amp;amp;quot; extension. This file contains the complex values of the &amp;amp;theta;- and &amp;amp;phi;-components of the far-zone electric field (E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;) as well as the total far field magnitude as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The 3D RCS patterns are written into a file with a &amp;amp;quot;'''.RCS'''&amp;amp;quot; extension. This file contains the real values of the &amp;amp;theta;- and &amp;amp;phi;-polarized RCS values as well as the total RCS as functions of the spherical observation angles &amp;amp;theta; and &amp;amp;phi;. The current distributions are written into data files with a &amp;amp;quot;'''.CUR'''&amp;amp;quot; extension. They contain the real and imaginary parts of the X, Y and Z components of electric ('''J''') and magnetic ('''M''') current on each cells together with the definition of all the node coordinates and node indices of the cells. The near-field distributions are written into data files with a &amp;amp;quot;'''.SEN'''&amp;amp;quot; extension. They contain the amplitude and phase of the X, Y and Z components of electric ('''E''') and magnetic ('''H''') fields as functions of the coordinates of sampling points. All the 3D data files are listed in the '''3D Data Files''' tab of EM.Cube's '''Data Manager'''. You can view the contents of these data files by selecting their row in the data manager and clicking the '''View''' button of the dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The 3D Data Files tab of EM.Cube's Data Manager.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM139.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Viewing the contents of a mesh-type 3D data file in Data Manager.&lt;br /&gt;
&lt;br /&gt;
=== Standard vs. Custom Output ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a number of computed quantities are designated as &amp;amp;quot;Standard Output&amp;amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[Planar Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[File:functions_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Functions...'''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[File:custom_icon.png]]'''button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Custom Output...'''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add''' button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit''' button, or you can delete any parameter from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
=== Viewing &amp;amp;amp; Visualizing Various Output Data Types ===&lt;br /&gt;
&lt;br /&gt;
At the end of a planar MoM simulation, a variety of 2D and 3D output data are generated. Some of these can be visualized or graphed directly from the Navigation Tree, while the others can only be accessed from the Data Manager. All of EM.Cube's simulation data are always written into ASCII data files that you can open and inspect or edit. Lists of these 2D and 3D data files appear under Data Manager's various tabs. The generated data also include all of [[Planar Module]]'s legitimate standard outputs that the simulation engine can compute given the specified source and observable types as well as all of your own previously defined custom output parameters. Note that in this release of EM.Cube, all the custom outputs are real-type data. Each custom output is written into a separate real data file with the same name as the parameter's given label and a &amp;amp;quot;'''.DAT'''&amp;amp;quot; file extension. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager'''... from the contextual menu. You can also use the keyboard shortcut '''Ctrl+D''' at any time. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot its graph in '''EM.Grid'''. You can also view the contents of a data file by selecting its row in th file list and clicking the '''View''' button of the dialog or by simply double-clicking the highlighted row. This opens up a new window containing a convenient spreadsheet that gives a tabular view of the contents of the selected data file. There are a large number of data operations and manipulations that you can perform on the data content including matrix, calculus and statistical calculations as well as computing and plotting new datasets using the &amp;amp;quot;Compute&amp;amp;quot; feature of the spreadsheet. You can make multiple file selection using the keyboard's '''Ctrl''' and '''Shift''' keys.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing an angular file selected and highlighted for further action.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Data Manager's spreadsheet showing the contents of an angular data file.&lt;br /&gt;
&lt;br /&gt;
The 2D output data include real or complex quantities like various port, radiation, scattering and periodic characteristics. At the end of an analysis, most .CPX and .DAT data files have a single complex or real value, respectively. in other words, there are no curves to plot. Exceptions are Cartesian 2D radiation pattern or RCS data files along the principal and user define phi-cut planes, as well as polar 2D radiation pattern or RCS data files of angular type with a &amp;amp;quot;'''.ANG'''&amp;amp;quot; file extension. These files contain the radiation pattern or RCS data as a function of some relevant angle in the specified plane. At the end of a sweep simulation of one of the many types available (frequency, angular, parametric, etc.), the ASCII output data files are populated with rows that correspond to the samples of the sweep variable(s). You can plot graphs of the 2D output data files that contain more than one row in '''EM.Grid'''. Each data file has a default graph type. Real data are plotted on EM.Grid's Cartesian graphs. Complex data files with a &amp;amp;quot;'''.CPX'''&amp;amp;quot; extension are plotted on double Cartesian graphs of &amp;amp;quot;'''Magnitude-Phase'''&amp;amp;quot; type, showing the magnitude in dB and phase in radians. You can change the complex data's graph type to the &amp;amp;quot;'''Real-Imaginary'''&amp;amp;quot; or &amp;amp;quot;'''Smith Chart'''&amp;amp;quot; by selecting its entry in the Data Manager and clicking the '''Edit'''button to open the &amp;amp;quot;Edit File Properties Dialog&amp;amp;quot;. Angular data files like polar 2D radiation patterns or RCS, by default, are plotted on EM.Grid's &amp;amp;quot;'''Polar'''&amp;amp;quot; graphs. Note that real data can be graphed on bar charts, too, just as angular can alternatively be graphed on polar stem charts.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A 2D radiation pattern polar graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's 3D output simulation data usually have a vectorial nature and are defined as functions of the Cartesian or spherical space coordinates. At the end of a planar MoM simulation, you can view 3D visualizations of the vectorial output data such as current distributions, near-field field distributions, far-field radiation patterns and RCS in EM.Cube's project workspace by clicking on the corresponding observable entries in the Navigation Tree. When you run a sweep simulation of some sort, multiple 3D plots appear on the Navigation Tree representing all the sweep variable samples. You can animate these 3D visualization plots very conveniently from the Navigation Tree. To do so, right click on an observable's name in the Navigation Tree and select the '''Animation''' item from the contextual menu. Make sure that you right click on the observable's parent node, not on one of its child components corresponding to the sweep variable samples. The 3D plot in the project workspace starts to animate and continues forever until to stop it. A new window called &amp;amp;quot;''' Animation Controls Dialog'''&amp;amp;quot; opens up at the lower right corner of the EM.Cube desktop. This dialog allows you to control the animation speed using a box labeled '''Rate''', whose value multiplied by 100 milliseconds indeed gives the frame duration. You can speed up the animation or slow it down from the default rate of one frame per 300ms. The box labeled '''Sample''' show the current frame's plot label at any time. You can pause the animation, rewind it to the first frame, fast-forward it to the last frame or manually step it through back and forth using the movement buttons marked with the symbols |&amp;amp;lt;, &amp;amp;lt;&amp;amp;lt;, ||, &amp;amp;gt;&amp;amp;gt;,&amp;amp;gt;|.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM135.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Animating 3D radiation patterns as the send of a frequency sweep.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM136.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
=== Running a Parametric Sweep ===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the planar MoM simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweep, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed later, parametric sweeps are simple and straightforward and do not required careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;amp;quot;expression&amp;amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;amp;quot;formal&amp;amp;quot; option, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[File:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; [[Variables]]...'''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;amp;quot;Add Variable Dialog&amp;amp;quot;. Choose a '''Name''' for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;amp;quot;Variable List&amp;amp;quot;. You can also see the '''Current Value''' of every variable at any time in the Variable as dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit''' button or indirectly during a parametric sweep. In the former case, you have to click the '''Update''' button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, trace and object set dialogs, stack-up dialog or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;amp;quot;Variable List&amp;amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;amp;quot;current Value&amp;amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;amp;quot;Independent&amp;amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete''' and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;amp;quot;Start&amp;amp;quot; and &amp;amp;quot;End&amp;amp;quot; value and is incremented by a predetermined &amp;amp;quot;Step&amp;amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution''' is defined by &amp;amp;quot;Minimum&amp;amp;quot; and &amp;amp;quot;Maximum&amp;amp;quot; values, while '''Normal (Gaussian) Distribution''' is defined by a &amp;amp;quot;Mean&amp;amp;quot; and &amp;amp;quot;Standard Deviation&amp;amp;quot;. You need to specify the &amp;amp;quot;Number of Samples&amp;amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;amp;quot;Define Sweep Variable Dialog&amp;amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete''' and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up''' and '''Move Down''' buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;amp;quot;fake&amp;amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. If you run a dry run while EM.Cube is in the mesh view mode, then the planar mesh of your structure is updated for each combination of the sweep variable samples during the dry run process. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Optimizing Planar Structures ===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (Optional but Highly Recommended) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;amp;lt;, &amp;amp;lt;=, &amp;amp;gt; or &amp;amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;amp;quot;'''=='''&amp;amp;quot; are regarded a &amp;amp;quot;'''Goals'''&amp;amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;amp;quot;'''Target Value'''&amp;amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;amp;quot;(LHS - RHS) == 0&amp;amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;amp;quot;non-Equal&amp;amp;quot; logical operators are regarded a &amp;amp;quot;'''Constraints'''&amp;amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[File:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;amp;quot;=== (Equal To)&amp;amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit''' button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation Run Dialog''', and select the '''[[Optimization]]''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;amp;quot;'''[[Optimization]] Algorithm'''&amp;amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm''' and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size''' as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List''' is initially empty. On the left side of the dialog you see the &amp;amp;quot;'''Independent [[Variables]] Table'''&amp;amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;amp;quot;Define [[Optimization]] Variable Dialog&amp;amp;quot; opens up, where you have to set the '''Minimum'''and '''Maximum'''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit''' button of the dialog to change those value. If you check the box labeled &amp;amp;quot;''' Update [[Variables]] with Optimal Values'''&amp;amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;amp;quot;saturated&amp;amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;amp;quot;'''Exit Local Min Trap'''&amp;amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;amp;quot;'''Error Function'''&amp;amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;amp;quot;'''Maximum Error'''&amp;amp;quot; value for the objective function, which terminates the process as &amp;amp;quot;converged&amp;amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals''' and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those cases, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute''' button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals''' or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
== Periodic Planar Structures &amp;amp;amp; Antenna Arrays ==&lt;br /&gt;
&lt;br /&gt;
=== Finite Arrays vs. Infinite Periodic Structures ===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that exhibits a repeated geometric pattern. It is made up of identical elements that are arranged in the form of a periodic lattice. The spacing between the elements is denoted by Sx along the X direction and Sy along the Y direction. The number of elements is denoted by Nx along the X direction and Ny along the Y direction (i.e. a total of Nx.Ny elements). If Nx and Ny are finite numbers, you have a finite-sized periodic structure, which is constructed using an &amp;amp;quot;'''Array Object'''&amp;amp;quot; in EM.Cube. If Nx and Ny are infinite, you have an infinite periodic structure with periods Sx and Sy along the X and Y directions, respectively. An infinite periodic structure in EM.Cube is represented by a &amp;amp;quot;'''Periodic Unit Cell'''&amp;amp;quot;. Periodic structures have many applications including phased array antennas, frequency selective surfaces (FSS), electromagnetic bandgap structures (EBG), metamaterial structures, etc. EM.Cube allows you to model both finite and infinite periodic structures.&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; Real practical periodic structures obviously have finite extents. You can easily and quickly construct finite-sized arrays of arbitrary complexity using EM.Cube's &amp;amp;quot;Array Tool&amp;amp;quot;. However, for large values of Nx and Ny, the size of the computational problem may rapidly get out of hand and become impractical. For very large periodic arrays, you can alternatively analyze a unit cell subject to the periodic boundary conditions and calculate the current distribtutions and far fields of the periodic unit cell. For their radiation patterns, you can multiply the &amp;amp;quot;Element Pattern&amp;amp;quot; by an &amp;amp;quot;Array Factor&amp;amp;quot; that captures the finite extents of the structure. In many cases, an approximation of this type works quite well. But in some other cases, the edge effects and particularly the field behavior at the corners of the finite-sized array cannot be modeled accurately. Periodic surfaces like FSS, EBG and metamaterials are also modeled as infinite periodic structures, for which one can define reflection and transmission coefficients. For this purpose, the periodic structure is excited using a plane wave source. Reflection and transmission coefficients are typically functions of the angles of incidence.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite Antenna Arrays ===&lt;br /&gt;
&lt;br /&gt;
The straightforward approach to the modeling of finite-sized antenna arrays is to use the full-wave method of moments (MoM). This requires building an array of radiating elements using EM.Cube's '''Array Tool''' and feeding the individual array elements using some type of excitation. For example, if the antenna elements are excited using a gap source or a probe source, you can assign a certain array weight distribution among the elements as well as phase progression among the elements along the X and Y directions. EM.Cube currently offers uniform, binomial, Chebyshev and (arbitrary) data file-based weight distribution types. The full-wave MoM approach is very accurate and takes into account all the inter-element coupling effects. At the end of a planar MoM simulation of the array structure, you can plot the radiation patterns and other far field characteristics of the antenna array just like any other planar structure.&lt;br /&gt;
&lt;br /&gt;
The radiation pattern of antenna arrays usually has a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' such as first null level and first null beam width. To have EM.Cube calculate all such parameters, you must check the relevant boxes in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. In particular, you can plot such data files at the end of a sweep simulation.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM91.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
Another approach to modeling a finite-sized antenna array is to analyze one of its elements and use the &amp;amp;quot;Array Factor&amp;amp;quot; concept to calculate its radiation patterns. This method ignores any inter-element coupling effects. In other words, you can regard the structure in the project workspace as a single isolated radiating element. To define an array factor, open the '''Radiation Pattern Dialog''' of the project. In the section titled &amp;amp;quot;'''Impose Array Factor'''&amp;amp;quot;, you will see a default value of 1 for the '''Number of Elements''' along the X and Y directions. This implies a single radiator, representing the structure in the project workspace. There are also default zero values for the '''Element Spacing''' along the X and Y directions. You should change both the number of elements and element spacing in the X and Y directions to define a finite array lattice. For example, you can define a linear array by setting the number of elements to 1 in one direction and entering a larger value for the number of elements along the other direction. Keep in mind that when using an array factor for far field calculation, you cannot assign non-uniform amplitude or phase distributions to the array elements. For that purpose, you have to define an array object with a source array.&lt;br /&gt;
&lt;br /&gt;
=== Defining A Periodic Domain ===&lt;br /&gt;
&lt;br /&gt;
In general, a planar structure in EM.Cube's [[Planar Module]] is assumed to have open boundaries. This means that the structure has infinite dimensions along the X and Y directions. In other words, the layers of the background structure extend to infinity, while the traces and embedded object sets have finite sizes. Along the Z direction, a planar structure can be open-boundary, or it may be truncated by PEC ground planes from the top or bottom or both. You can define a planar structure to be infinitely periodic along the X and Y directions. In this case, you only need to define the periodic unit cell. EM.Cube automatically reproduces the unit cell infinitely and simulates it using a spectral domain periodic version of the Green's functions of your project's background structure.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, you must open [[Planar Module]]'s Periodicity Settings Dialog by right clicking the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''Periodicity Settings...''' from the contextual menu or by selecting '''Menu''' '''&amp;amp;gt;''' '''Simulate &amp;amp;gt; 'Computational Domain &amp;amp;gt; Periodicity Settings...''' from the Menu Bar. In the Periodicity Settings Dialog, check the box labeled '''Periodic Structure'''. This will enable the section titled''&amp;amp;quot;''Lattice Properties&amp;amp;quot;. You can define the periods along the X and Y axes using the boxes labeled '''Spacing'''. You can also define values for periodic '''Offset''' along the X and Y directions, which will be explained later.&lt;br /&gt;
&lt;br /&gt;
In a periodic structure, the virtual domain is replaced by a default blue periodic domain that is always centered around the origin of coordinates. Keep in mind that the periodic unit cell must always be centered at the origin of coordinates. The relative position of the structure within this centered unit cell will change the phase of the results.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM99.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Regular vs. Generalized Periodic Lattices ===&lt;br /&gt;
&lt;br /&gt;
Besides conventional rectangular lattices, EM.Cube's [[Planar Module]] can also handle complex non-rectangular periodic lattices. For example, many frequency selective surfaces have skewed grids. In order to simulate skewed-grid periodic structures, the definition of the grid has to be generalized. A periodic structure is a repetition of a basic structure (unit cell) at pre-determined locations. Let these locations be described by (x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;, y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt;), where m and n are integers ranging from -8 to 8. For a general skewed grid, x&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; and y&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; can be described by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x_{mn} = m\Delta x + n \Delta x'&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;y_{mn} = m\Delta y + n \Delta y'&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; is the primary offset in the X direction (X Spacing) controlled by index m and &amp;lt;math&amp;gt;\Delta x'&amp;lt;/math&amp;gt; is the secondary offset in the X direction (X Offset) controlled by index n. The meanings of &amp;lt;math&amp;gt;\Delta y&amp;lt;/math&amp;gt; (Y Spacing) and &amp;lt;math&amp;gt;\Delta y'&amp;lt;/math&amp;gt; (Y Offset) are similar with the roles of indices m and n interchanged. To illustrate how to use this definition, consider an example of an equilateral triangular grid with side length L as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:image121.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of an equilateral triangular periodic lattice.&lt;br /&gt;
&lt;br /&gt;
From the figure, it is obvious that the y coordinate of each row is fixed and identical, thus &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. While in each row the spacing between adjacent elements is L, there is an offset of L/2 between the consecutive rows. This results in &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;. To sum up, an equilateral triangular grid can be described by &amp;lt;math&amp;gt;\Delta x = L&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta x' = L/2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\Delta y = L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. In an EM.Cube [[Planar Module]] project, the secondary offsets are equal to zero by default, implying a rectangular lattice. You can change the values of the secondary offsets using the boxes labeled '''X Offset''' and '''Y Offset''' in the '''Periodicity Settings Dialog''', respectively. Triangular and Hexagonal lattices are popular special cases of the generalized lattice type. In a triangular lattice with alternating Rows, &amp;lt;math&amp;gt;\Delta x' = \Delta x/2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\Delta y' = 0&amp;lt;/math&amp;gt;. A Hexagonal lattice (with alternating rows) is a special case of triangular lattice in which &amp;lt;math&amp;gt;\Delta y = \sqrt{3\Delta x / 2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Interconnectivity Among Unit Cells ===&lt;br /&gt;
&lt;br /&gt;
In many cases, your planar structure's traces or embedded objects are entirely enclosed inside the periodic unit cell and do not touch the boundary of the unit cell. In EM.Cube's [[Planar Module]], you can define periodic structures whose unit cells are interconnected. Interconnectivity applies only to PEC, PMC and conductive sheet traces, and embedded object sets are excluded. Note that in a periodic planar structure, your objects cannot cross the periodic domain. However, you can arrange objects with linear edges such as one or more flat edges line up with the domain's bounding box. In such cases, EM.Cube's planar MoM mesh generator will take into account the continuity of the currents across the adjacent connected unit cells and will create the connection basis functions at the right and top boundaries of the unit cell. It is clear that due to periodicity, the basis functions do not need to be extended at the left or bottom boundaries of the unit cell.&lt;br /&gt;
&lt;br /&gt;
As an example, consider the periodic structure in the figure below that shows a metallic screen or wire grid. The unit cell of this structure can be defined as a rectangular aperture in a PEC ground plane (marked as Unit Cell 1). In this case, the rectangle object is defined as a slot trace. Alternatively, you can define a unit cell in the form of a microstrip cross on a metal trace. In the latter case, however, the microstrip cross should extend across the unit cell and connect to the crosses in the neighboring cells in order to provide current continuity.&lt;br /&gt;
&lt;br /&gt;
[[File:image122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Modeling a periodic screen using two different types of unit cell.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per3_tn.png|400px]] [[File:pmom_per4_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The PMC aperture unit cell and its planar mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per5_tn.png|400px]] [[File:pmom_per6_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: The PEC cross unit cell and its planar mesh. Notice the cell extensions at the unit cell's boundaries.&lt;br /&gt;
&lt;br /&gt;
=== Periodic MoM Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the case of an infinite periodic planar structure, the field equations can be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E(r) = E^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{H(r) = H^{inc}(r)} + &lt;br /&gt;
\sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\bigg[&lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J_{mn}(r') } \, d\nu' + &lt;br /&gt;
\iiint_V \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M_{mn}(r') } \, d\nu'&lt;br /&gt;
\bigg]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM94.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{J_{mn}(r) = J_{mn}}(x,y,z) = \mathbf{J_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{M_{mn}(r) = M_{mn}}(x,y,z) = \mathbf{M_{00}}(x+m S_x, y+n S_y, z) e^{j(m k_{x00} S_x + n k_{y00} S_y)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; -\infty &amp;lt; m, n &amp;lt; \infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM95(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above equations, &amp;lt;math&amp;gt;\mathbf{J_{00}(r)}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\mathbf{M_{00}(r)}&amp;lt;/math&amp;gt; are the periodic unit cell's electric and magnetic currents that are repeated everywhere in space on a rectangular lattice with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. &amp;lt;math&amp;gt;k_{x00}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;k_{y00}&amp;lt;/math&amp;gt; are the periodic propagation constants along the X and Y directions, respectively, and they are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{x00} = k_0 \sin\theta \cos\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_{y00} = k_0 \sin\theta \sin\phi &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM96(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;amp;theta; and &amp;amp;phi; are the beam scan angles in the case of periodic excitation of lumped sources, or they are the spherical angles of incidence in the case of a plane wave source illuminating the periodic structure. Using the infinite summations, one can define periodic dyadic Green's functions in the spectral domain in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ \overline{\overline{G}}_{\mu \nu}^{PER} (r|r') } =&lt;br /&gt;
\frac{1}{S_x S_y} \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty}&lt;br /&gt;
\mathbf{ \tilde{\overline{\overline{G}}}_{\mu \nu} } (k_x, k_y, z|z')&lt;br /&gt;
e^{-j[k_{xm}(x-x') + k_{yn}(y-y')]}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
k_{xm} = k_{x00} + \frac{2\pi m}{S_x} \quad \text{and} \quad&lt;br /&gt;
k_{ym} = k_{y00} + \frac{2\pi m}{S_y}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PMOM97.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above doubly infinite periodic Green's functions are said to be expressed in terms of &amp;amp;quot;Floquet Modes&amp;amp;quot;. The exact formulation involves an infinite set of these periodic Floquet modes. During the MoM matrix fill process for a periodic structure, a finite number of Floquet modes are calculated. By default, EM.Cube's planar MoM engine considers M&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; = M&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; = 25. This implies a total of 51 modes along the X direction and a total of 51 modes along the Y direction, or a grand total of 51&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 2,601 Floquet modes. You can increase the number of Floquet modes for your project from the Planar MoM Engine Settings Dialog. In the section titled &amp;amp;quot;Periodic Simulation&amp;amp;quot;, you can change the values of '''Number of Floquet Modes''' in the two boxes designated X and Y.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM98.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Changing the number of Floquet modes from the Planar MoM Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Phased Arrays ===&lt;br /&gt;
&lt;br /&gt;
Earlier, it was argued that you can calculate the radiation pattern of a finite antenna array by modeling a single isolated element and multiplying its &amp;amp;quot;Element Pattern&amp;amp;quot; by the &amp;amp;quot;Array Factor&amp;amp;quot;. This method gives acceptable results only when the inter-element coupling effects are negligible, as it does not take into account such effects. Planar antennas printed on dielectric substrates usually exhibit inter-element coupling effects due to the propagation of the substrate surface wave modes. If your finite-sized array is very large and you cannot afford a straightforward full-wave MoM simulation of it, you can alternatively model it as an infinite array represented by a periodic unit cell. In this case, you calculate the radiation pattern of the unit cell structure and use it as the &amp;amp;quot;Element Pattern&amp;amp;quot; in conjunction with the &amp;amp;quot;Array Factor&amp;amp;quot;. The periodic Green's functions, in this case, capture the inter-element coupling effects. What is missing from this picture is the finite edge effects and/or corner effects, if any.&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a gap or probe source, it acts like an infinite periodic phased array. All the periodic replicas of the unit cell structure are excited. You can even impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the gap or probe source. At the bottom of the '''Gap Source Dialog''' or '''Probe Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. You can enter desired values for '''Theta''' and '''Phi''' beam scan angles in degrees. The corresponding phase progressions are calculated and applied to the periodic Green's functions:&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM101.png]]&lt;br /&gt;
&lt;br /&gt;
Note that you have to define a finite-sized array factor in the Radiation Pattern dialog. You do this in the '''Impose Array Factor''' section of this dialog. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of '''Element Spacing''' along the X and Y directions are automatically set equal to the value of '''Periodic Lattice Spacing''' along those directions. You have to set the '''Number of Elements''' along the X and Y directions, which are both equal to one initially, representing a single radiator. If you forget to define an array factor, the radiation pattern of the unit cell structure will be displayed, which does not show beam scanning.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM100.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the periodic scan angles in [[Planar Module]]'s Gap Source dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:pmom_per9_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The 3D radiation pattern of a beam-steered periodic printed dipole array.&lt;br /&gt;
&lt;br /&gt;
=== Exciting Periodic Structures Using Plane Waves ===&lt;br /&gt;
&lt;br /&gt;
When a periodic structure is excited using a plane wave source, it acts as a periodic surface that reflects or transmits the incident wave. You can model frequency selective surfaces, electromagnetic band-gap structures and metamaterials in this way. EM.Cube calculates the reflection and transmission coefficients of periodic surfaces or planar structures. If you run a single plane wave simulation, the reflection and transmission coefficients are reported in the Output Window at the end of the simulation. Note that these periodic characteristics depend on the polarization of the incident plane wave. You set the polarization (TMz or TEz) in the '''Plane Wave Dialog''' when defining your excitation source. In this dialog you also set the values of the incident '''Theta''' and '''Phi''' angles.&lt;br /&gt;
&lt;br /&gt;
At the end of the planar MoM simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. As a result, you can run an adaptive sweep of periodic structures with a plane wave source just like projects with gap or probe sources. The reflection and transmission (R/T) coefficients can be plotted in EM.Grid on 2D graphs similar to the S parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
{{Note|In the absence of any finite traces or embedded objects in the project workspace, EM.Cube computes the reflection and transmission coefficients of the layered background structure of your project.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM102.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: A periodic planar layered structure with slot traces excited by a normally incident plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Characterizing Periodic Surfaces Using Angular Sweeps ===&lt;br /&gt;
&lt;br /&gt;
The reflection and transmission characteristics of a period surface as functions of the incidence angle are often of great interest. For that purpose, you can run an angular sweep of your periodic structure, where you normally fix the &amp;amp;phi; angle and sweep the &amp;amp;theta; angle from 180 to 90 degrees for one-sided surfaces and from 180 to 0 degrees for two-sided surface. To run an angular sweep, open the [[Planar Module]]'s '''Simulation Run Dialog''' and select the '''Angular Sweep''' option from its '''Simulation Mode''' dropdown list. This enables the '''Settings''' button, which opens up the '''Angle Settings Dialog'''. First, you must choose either Theta or Phi as the '''Sweep Angle'''. Then you can set the '''Start''' and '''End''' values of the selected incidence angle as well as the '''Number of Samples'''. At the end of an angular sweep simulation, you can plot the reflection and transmission coefficients from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The reflection and transmission coefficients of the structure are saved into two complex data files called &amp;amp;quot;reflection.CPX&amp;amp;quot; and &amp;amp;quot;transmission.CPX&amp;amp;quot;. These data files are also listed in EM.Cube's '''Data Manager''', where you can view or plot them.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM103.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[Planar Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Periodic Structures Using Adaptive Frequency Sweeps ===&lt;br /&gt;
&lt;br /&gt;
You learned earlier how to use EM.Cube's powerful, adaptive frequency sweep utility to study the frequency response of a planar structure. Adaptive frequency sweep uses rational function interpolation to generate smooth curves of the scattering parameters with a relatively small number of full-wave simulation runs in a progressive manner. Therefore, you need a port definition in your planar structure to be able to run an adaptive frequency sweep. This is clear in the case of an infinite periodic phased array, where your periodic unit cell structure must be excited using either a gap source or a probe source. You run an adaptive frequency sweep of an infinite periodic phased array in exactly the same way to do for regular, aperiodic, planar structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's Planar Modules also allows you to run an adaptive frequency sweep of periodic surfaces excited by a plane wave source. In this case, the planar MoM engine calculates the reflection and transmission coefficients of the periodic surface. Note that you can conceptually consider a periodic surface as a two-port network, where Port 1 is the top half-space and Port 2 is the bottom half-space. In that case, the reflection coefficient R is equivalent to S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter, while the transmission coefficient T is equivalent to S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameter. This is, of course, the case when the periodic surface is illuminated by the plane wave source from the top half-space, corresponding to 90°&amp;amp;lt; &amp;amp;theta; = 180°. You can also illuminate the periodic surface by the plane wave source from the bottom half-space, corresponding to 0° = &amp;amp;theta; &amp;amp;lt; 90°. In this case, the reflection coefficient R and transmission coefficient T are equivalent to S&amp;lt;sub&amp;gt;22&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;12&amp;lt;/sub&amp;gt; parameters, respectively. Having these interpretations in mind, EM.Cube enables the &amp;amp;quot;'''Adaptive Frequency Sweep'''&amp;amp;quot; option of the '''Frequency Settings Dialog''' when your planar structure has a periodic domain together with a plane wave source.&lt;br /&gt;
&lt;br /&gt;
=== Modeling Finite-Sized Periodic Arrays Using NCCBF Technique ===&lt;br /&gt;
&lt;br /&gt;
Previously, you saw how the concept of &amp;amp;quot;Array Factor&amp;amp;quot; is used to approximate the far field radiation pattern of a finite-sized array of radiators. The total radiation pattern can be expressed as the product of the array factor and the &amp;amp;quot;Element Pattern&amp;amp;quot;. The array factor captures the topology of the array lattice and depends on the number of elements along the X and Y directions as well as the element spacing along those directions. As for the choice of element pattern, you saw two extreme cases. In the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; option, you compute the radiation pattern of a single stand-alone radiator and completely ignore any coupling effects from the neighboring elements. This option is readily available in the Radiation Pattern Dialog of the Far Field observable. In the &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; option, you analyze a periodic version of the radiating element with periods equal to the element spacing. The computed radiation pattern of the periodic unit cell in this case captures the coupling effects from an infinite number of elements.&lt;br /&gt;
&lt;br /&gt;
The array factor approach works well when the inter-element coupling is negligible or when the array contains a very large number of elements. However, finite edge and corner effects cannot be modeled accurately using a simple array factor. A full-wave approach is needed where all the elements are discretized properly, and their interactions are incorporated into the final solution. EM.Cube's Planar MoM simulation engine lets you analyze finite-sized antenna arrays in a rigorous, full-wave manner. As you saw earlier, you can even introduce a source array with arbitrary (amplitude and phase) weights and realize a complex, non-uniformly excited, finite-sized antenna array. Note that if the array contains a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; . N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; elements, and each radiating element involves a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; vectorial basis functions, the numerical solution of the problem will produce a system of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;linear equations. As an example, consider a rectangular patch antenna element that involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. Now consider a not-so-large, 8 × 8 array of these patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. The resulting linear system will have an enormous size of N = 30,720. Keep in mind that, unlike the sparse matrices of the Finite Element Method (FEM), MoM linear systems are dense by nature and typically ill-conditioned. The inversion of dense matrices of such sizes or larger takes a significant amount of computation time even if you use fast iterative solvers.&lt;br /&gt;
&lt;br /&gt;
EMAG Technologies Inc. has recently developed a novel technique, called '''Numerically Constructed Characteristic Basis Functions (NCCBF)''', which generates physics-based entire-domain basis functions for the elements of a finite-sized array. These &amp;amp;quot;sophisticated&amp;amp;quot; basis functions are linear combinations of the &amp;amp;quot;'''Isolated Element'''&amp;amp;quot; solutions and &amp;amp;quot;'''Periodic Element'''&amp;amp;quot; solutions. Unlike the array factor method, which is a post-processing calculation of far-field data, the NCCBF method generate a full-wave MoM solution with entire-domain basis functions. Considering the same example of the patch antenna array discussed earlier, the NCCBF method generates a total of N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 4 entire-domain basis functions on each patch element: an isolated X-directed solution, a periodic X-directed solution, an isolated Y-directed solution, and a periodic Y-directed solution. The same approach applies equally well to triangular RWG basis functions and is not limited to rectangular cells. As a result, the new MoM linear system has a dimension of N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; = (4)(64) = 256. In other words, the NCCBF method compresses the original MoM matrix of size N = 30,720 to one of significantly reduced size N = 256 (i.e. a compression factor of 120x).&lt;br /&gt;
&lt;br /&gt;
=== Running a NCCBF Simulation ===&lt;br /&gt;
&lt;br /&gt;
In the current release of EM.Cube's [[Planar Module]], the NCCBF MoM solver works with any number of distinct, finite-sized arrays if they are excited with one of the following three source types:&lt;br /&gt;
&lt;br /&gt;
# Gap Sources&lt;br /&gt;
# Probe Sources&lt;br /&gt;
# Plane Wave Sources&lt;br /&gt;
&lt;br /&gt;
Note that you can have several coexisting finite arrays with different element spacings (or different periodicities). You can also have regular (aperiodic) objects coexisting with your collection of finite arrays. In that case, the NCCBF process will create entire-domain basis functions for the elements of the finite arrays, while the regular method of moments will apply to the aperiodic portions of your planar structure. This flexibility makes NCCBF a very versatile and powerful technique.&lt;br /&gt;
&lt;br /&gt;
There are a few rules that must be followed and observed when planning a NCCBF simulation. '''Each finite-sized array must be constructed using an EM.Cube &amp;amp;quot;Array Object&amp;amp;quot;. Additionally, each array object must stand alone in a dedicated trace or embedded object set of its own.''' In other words, if an array object belongs to a trace or embedded object set that contains other objects, it will be excluded from the NCCBF process and will get a regular MoM treatment. Keep in mind that [[Planar Module]] allows you to define different traces located at the same Z-plane, although the objects belonging to these separate traces cannot be connected to one another according to the planar meshing rules. Similarly, you can define two or more PEC via sets hosted by the same substrate layer. Therefore, if your planar structure contains finite arrays and aperiodic objects, you have to group them into separate traces or embedded object sets.&lt;br /&gt;
&lt;br /&gt;
To run an NCCBF simulation, open the '''Simulation Run Dialog''', and then open the'''Planar MoM Engine Settings Dialog'''. In the &amp;amp;quot;'''Finite Array Simulation'''&amp;amp;quot; section of the latter dialog, check the box labeled &amp;amp;quot;'''NCCBF Matrix Compression'''&amp;amp;quot;. This box is unchecked by default. Checking it enables the NCCBF Settings button. Click this button to open the NCCBF Settings Dialog. The dialog features a &amp;amp;quot;List of Unit Cells Used for NCCBF Matrix Compression&amp;amp;quot;. This list initially empty. To add unit cells to it, click the '''Add''' button of the dialog to open the &amp;amp;quot;'''Add Unit Cell Dialog'''&amp;amp;quot;. This dialog has two tables: Available Unit Cells on the left side and Associated Unit Cells on the right side. The left table shows a list of all the available, legitimate array objects in your project workspace. Remember that for an array object to be eligible for NCCBF compression, it has to stand alone on a dedicated trace or embedded object set, whichever applies. Select an array object from the left table and use the right arrow button (--&amp;amp;gt;) to move it to the right table to associate it with the new NCCBF unit cell. You can associate more than one array object with the same NCCBF unit cell. In this case, the parent elements of all the associated array objects collectively constitute the NCCBF unit cell. The NCCBF unit cell is the planar structure that is analyzed separately, first, as a stand-alone isolated element, and next, as a periodic unit cell, to generate the NCCBF entire-domain basis function solutions. It is therefore very important that the array objects be positioned carefully with respect to the origin of coordinated and relative to one another to form the correct NCCBF unit cell. Once you move one or more array object names to the &amp;amp;quot;Associated&amp;amp;quot; table on the right, you can move them back to the &amp;amp;quot;Available&amp;amp;quot; table on the left using the left arrow (&amp;amp;lt;--) button. You can also instruct EM.Cube to use only the isolated element solution by unchecking the box labeled &amp;amp;quot;'''Include Periodic Solution of Unit Cell'''&amp;amp;quot;. Once you are satisfied with the definition of your NCCBF unit cell, close the dialog to return to the NCCBF Settings dialog. Here you see the name of the newly added NCCBF unit cell in the list along with the Number of Solutions and the names of all the associated array objects for each NCCBF unit cell. You can modify each row using the '''Edit''' button or remove it from the list using the '''Delete''' button. Close the NCCBF Settings dialog to return to the Planar MoM Engine Settings dialog, and close the latter to return to the Simulation Run dialog, where you can now start the NCCBF simulation by clicking the '''Run''' button.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM163.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Planar MoM's NCCBF Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM162.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Planar MoM's &amp;amp;quot;Add Unit Cell&amp;amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
=== Symmetries, Array Objects &amp;amp;amp; Composite Arrays ===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[Planar Module]] treats array objects in a special way. That is why you need to use array objects with certain rules for NCCBF simulations. In general, if the mesh of your planar structure involves a total of N vectorial basis functions, the MoM matrix will contain a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; elements. Instead of computing the entire N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; basis interactions, the Planar MoM simulation engine takes advantage of the inherent symmetry properties of the dyadic Green's functions and camputes the diagonal elements of the matrix and all the elements below the diagonal. This amounts to N.(N+1)/2 basis interactions. In many cases, the MoM matrix is symmetric, and the elements above the diagonal are simply mirror-image of the below-diagonal elements. In planar structures that involve both metal and slot traces, there will be sign reversals for some interactions.&lt;br /&gt;
&lt;br /&gt;
In many cases, especially in the areas that contain sizable numbers of rectangular mesh cells, the basis functions are naturally grouped into distinct sets that are called domains. As you saw earlier in the discussion of planar mesh generation, uniform domains with identical rectangular cells bring significant savings during the matrix fill process. Using the concept of domains renders the MoM matrix as a block matrix, whose blocks represent the interactions among the domains. The diagonal blocks therefore correspond to self-domain interactions. By a similar argument, if your planar structure is made up of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; domains, then a total of N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;D&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) are computed. An EM.Cube array object consists of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical geometrical elements. If the array object belongs to a trace that has other objects in it, then by the planar mesh generator's rules, the elements of the array object are merged with the other objects on the same trace using the &amp;amp;quot;Union&amp;amp;quot; Boolean operation. If some array elements possibly have connections with other objects, such connections are taken care of in the meshing process. '''However, if an array object stands alone in a dedicated trace, then only the parent (first) element is meshed, and it mesh is copied and cloned for all the other elements of the array.''' This produces a total of N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; identical domains of vectorial basis functions. A direct consequence of this is identification of only N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; unique domain-pair interactions or matrix blocks. In the absence of these symmetries, a total of at least N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; +1)/2 domain interactions (or matrix blocks) must be computed. To better illustrate such matrix fill savings, let us consider the previous, not-so-large, 8 × 8 array of patch radiators, i.e. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 64. It was previously assumed that each rectangular patch antenna element involves 240 X-directed and 240 Y-directed rooftop basis functions, i.e. N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;= 480. The numerical solution of this structure produces a linear system of total size N = N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;. N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;= 30,720. The total number of complex-valued elements of this matrix is 9.44E+08. This is the total number of highly sophisticated multi-dimensional integrals that you need to compute during a brute-force matrix fill process. For the sake of generality of the argument, here we ignore the huge additional savings that rectangular cells offer, and we assume that each unique domain-pair interaction involves N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; = 230,400 elements, except for the self-domain interaction which requires N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 115,440 integral computations. This amounts to a total of (N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt; -1) . N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; . (N&amp;lt;sub&amp;gt;B&amp;lt;/sub&amp;gt; +1)/2 = 1.46E+07 integral computations, which is roughly N&amp;lt;sub&amp;gt;F&amp;lt;/sub&amp;gt;(64) times fewer and faster than a brute-force matrix fill process.&lt;br /&gt;
&lt;br /&gt;
To remedy the limitation that stand-alone array objects on dedicated traces cannot be connected to anything and therefore would severely limit the geometrical complexity of individual elements, EM.Cube allows you to build arrays of composite objects. A &amp;amp;quot;'''Composite Object'''&amp;amp;quot; in EM.Cube is a group of objects that are tied together only for the purpose of organization. As a result, the mesh of a composite object is the same as that of its constituent member objects (including any possible connections), had they not been grouped together. In a similar manner to simpler array objects, if a composite array stands alone in a dedicated trace or embedded object set, then only the parent composite object is meshed, and its mesh is copied and cloned for all the other composite elements of the array object. Furthermore, all the unique domain-pair interactions are identified during the matrix fill process, and lead to a major saving in computation time. '''Note that you can assign gap or probe sources to composite arrays in a similar way as you excite simpler array objects.''' If your planar structure involves a composite array, whose composite parent element has constituent members: Object1, Object2, ..., then the Gap Source dialog or Probe Source dialog will include the names of all the eligible constituent members (rectangle strips or PEC via objects) that can host the respective source types. '''Complex composite arrays hosting gap or probe source arrays or illuminated by plane wave sources are great candidates for NCCBF simulation.'''&lt;br /&gt;
&lt;br /&gt;
[[File:PMOM165.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Assigning gap sources to the elements of a composite array object.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=Main_Page"/>
				<updated>2013-06-14T13:51:59Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* What's Here? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to the EM.Cube Wiki!'''&lt;br /&gt;
&lt;br /&gt;
[[File:splash-emcube.jpg|thumb|500px]]&lt;br /&gt;
== What's Here? ==&lt;br /&gt;
Here are some links to help you get started:&lt;br /&gt;
* [[Getting_Started_with_EM.CUBE|EM.CUBE: Getting Started]]&lt;br /&gt;
* [[CubeCAD|CubeCAD: 3D CAD Modeling]]&lt;br /&gt;
* [[EM.Tempo|EM.Tempo: FDTD Module]]&lt;br /&gt;
* [[EM.Picasso|EM.Picasso: Planar Module]]&lt;br /&gt;
* [[EM.Libera|EM.Libera: MoM3D Module]]&lt;br /&gt;
* [[EM.Illumina|EM.Illumina: Physical Optics Module]]&lt;br /&gt;
* [[EM.Terrano|EM.Terrano: Propagation Module]]&lt;br /&gt;
* [[Hybrid Modeling using Multiple Simulation Engines|Hybrid Modeling]]&lt;br /&gt;
* [[Data Visualization and Processing]]&lt;br /&gt;
* [[Parametric Modeling, Sweep &amp;amp; Optimization]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  title=Most Popular Articles&lt;br /&gt;
  type=hot&lt;br /&gt;
  count=8&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;DynamicArticleList&amp;gt;&lt;br /&gt;
  title=Newest Articles&lt;br /&gt;
  type=new&lt;br /&gt;
  count=8&lt;br /&gt;
&amp;lt;/DynamicArticleList&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Illumina</id>
		<title>EM.Illumina</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Illumina"/>
				<updated>2013-06-13T18:48:48Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* General Huygens Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
== Methods Of Physical Optics ==&lt;br /&gt;
&lt;br /&gt;
=== Physical Optics As An Asymptotic Technique ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Asymptotic methods are usually valid at high frequencies as &amp;lt;math&amp;gt;k_0 R = 2\pi R/\lambda_0 &amp;gt;&amp;gt; 1&amp;lt;/math&amp;gt;, where R is the distance between the source and observation points, k&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt; is the free-space propagation constant and &amp;amp;lambda;&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt;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. The uniform theory of diffraction (UTD) is used to model the diffraction of rays at the edges of the structure.&lt;br /&gt;
&lt;br /&gt;
In the Physical Optics (PO) method, a scatterer surface is illuminated by an incident source, and it is modeled by equivalent electric and magnetic surface currents. This concept is based on the fundamental equivalence theorem of electromagnetics and the Huygens principle. The electric surface currents are denoted by '''J(r)''' and the magnetic surface currents are denoted by '''M(r)''', where '''r''' is the position vector. According to the Huygens principle, the equivalent electric and magnetic surface currents are derived from the tangential components of magnetic and electric fields on a given surface, respectively. This will be discussed in more detail in the next sections. In a classic PO analysis which involves only perfect electric conductors, only electric surface currents, related to the tangential magnetic fields, are considered.  &lt;br /&gt;
&lt;br /&gt;
=== Conventional Physical Optics (GO-PO) ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = (1+\alpha) \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -(1-\alpha) \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha = \frac{1-Z/\eta_0}{1+Z/\eta_0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi \; \Omega&amp;lt;/math&amp;gt; is the intrinsic impedance of the free space. Then, the electric and magnetic currents reduce to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = \frac{2\eta_0}{\eta_0 + Z} \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = - \frac{2Z}{\eta_0 + Z} \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Two limiting cases of an impedance surface are perfect electric conductor (PEC) and perfect magnetic conductor (PMC) surface. For a PEC surface, Z = 0,  &amp;amp;alpha; = 1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 2 \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO4.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while for a PMC surface, Z = 8,  &amp;amp;alpha; = -1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -2 \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another special case is a Huygens surface with equivalent electric and magnetic surface currents. In that case, Z =  &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, &amp;amp;alpha; = 0, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r) = \hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r) = -\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO10.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:po_manual_1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A diagram showing a scatterer lit by a source.&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0, and shadowed if '''n.k'''&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Near &amp;amp;amp; Far Fields In PO ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HM&amp;lt;/sub&amp;gt;''' 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 &amp;lt;math&amp;gt;\exp(-jk_0r)/(4\pi r)&amp;lt;/math&amp;gt; and the near fields reduce to: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; + 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; - 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt; R=|r-r'| \text{, } k_0 = \tfrac{2\pi}{\lambda_0} \text{ and } Z_0 = 1/Y_0 = \eta_0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;gt;&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{ff}(r)} = \frac{jk_0 e^{-jk_0 r}}{4\pi r} &lt;br /&gt;
\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' +&lt;br /&gt;
\mathbf{\hat{r}} \times \iint_{S_M} \mathbf{M(r')} e^{-jk_0 \mathbf{ \hat{r} \cdot r' } } ds' \right\}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \frac{1}{Z_0} \mathbf{\hat{r} \times E^{ff}(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Iterative Physical Optics (IPO) ===&lt;br /&gt;
&lt;br /&gt;
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;amp;amp; EFIE):&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{J(r)} = (1+\alpha)\mathbf{\hat{n}} \times&lt;br /&gt;
\left\lbrace &lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ H^{inc}(r) } - jk_0 \iint_{S_J} \left( 1 - \frac{j}{k_0 R} \right) &lt;br /&gt;
(\mathbf{ \hat{R} \times J(r') }) \frac{e^{-jk_0 R}}{4\pi R} \,ds' \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; -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')} -&lt;br /&gt;
\left( 1-\frac{3j}{k_0 R}-\frac{3}{(k_0 R)^2} \right) \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right]&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} \,ds'&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{M(r)} = -(1-\alpha)\mathbf{\hat{n}} \times&lt;br /&gt;
\left\lbrace &lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ E^{inc}(r) } + jk_0 \iint_{S_M} \left( 1 - \frac{j}{k_0 R} \right) &lt;br /&gt;
(\mathbf{ \hat{R} \times M(r') }) \frac{e^{-jk_0 R}}{4\pi R} \,ds' \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; -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')} -&lt;br /&gt;
\left( 1-\frac{3j}{k_0 R}-\frac{3}{(k_0 R)^2} \right) \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right]&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} \,ds'&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO9(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''R''' ='''r''' - '''r'''', R = |'''R'''|, and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ \hat{R} = \frac{R}{|R|} = \frac{r-r'}{|r-r'|} }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO11.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{J^{(0)}(r)} = (1+\alpha) \mathbf{ \hat{n} \times H^{inc}(r) } \\&lt;br /&gt;
&amp;amp; \mathbf{M^{(0)}(r)} = -(1-\alpha) \mathbf{ \hat{n} \times E^{inc}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO13.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0 is examined. In complex scatterer geometries, there are shadowed points in concave regions where '''n.k'''&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ \hat{n} \cdot \hat{R}} &amp;lt; 0 \quad \text{or} \quad \mathbf{\hat{n} \cdot (r-r')} &amp;lt; 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the subsequent iterations, the higher order PO currents are given by;&lt;br /&gt;
&lt;br /&gt;
[[File:PO14(1).png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== General Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ J(r) = \hat{n} \times H(r) } \\&lt;br /&gt;
&amp;amp; \mathbf{ M(r) = -\hat{n} \times E(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO10(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{inc}(r)} = -jk_0 \sum_j \iint_{\Delta_j} \, ds' \frac{e^{-jk_0 R}}{4\pi R}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; Z_0 \left[ 1 - \frac{j}{k_0 R} - \frac{1}{(k_0 R)^2} \right] \mathbf{J_j(r')} \\&lt;br /&gt;
&amp;amp; -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} } \\&lt;br /&gt;
&amp;amp; - \left[ 1 - \frac{j}{k_0 R} \right] \mathbf{ (\hat{R} \times M_j(r')) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{H^{inc}(r)} = -jk_0 \sum_j \iint_{\Delta_j} \, ds' \frac{e^{-jk_0 R}}{4\pi R}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; Y_0 \left[ 1 - \frac{j}{k_0 R} - \frac{1}{(k_0 R)^2} \right] \mathbf{M_j(r')} \\&lt;br /&gt;
&amp;amp; -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} } \\&lt;br /&gt;
&amp;amp; + \left[ 1 - \frac{j}{k_0 R} \right] \mathbf{ (\hat{R} \times J_j(r')) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO16.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the summation over index ''j'' is carried out for all the elementary cells &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; that make up the Huygens box. In EM.Cube Huygens surfaces are cubic and are discretized using a rectangular mesh. Therefore, &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; 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.     &lt;br /&gt;
&lt;br /&gt;
The far fields of the Huygens surface currents are calculated from the following relations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{ff}(r)} = \frac{jk_0}{4\pi} \frac{e^{-jk_0 r}}{r}&lt;br /&gt;
\sum_j \iint_{\Delta_j} \left[ Z_0 \, \mathbf{ \hat{r} \times \hat{r} \times J_j(r') } + &lt;br /&gt;
\mathbf{ \hat{r} \times M_j(r') } \right] e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{H^{ff}(r)} = \frac{1}{Z_0} \mathbf{\hat{r} \times E^{ff}(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO17(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Physical Structure &amp;amp;amp; Its Discretization ==&lt;br /&gt;
&lt;br /&gt;
=== Grouping Objects By Surface Type ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
# Perfect Electric Conductor (PEC) &lt;br /&gt;
# Perfect Magnetic Conductor (PMC) &lt;br /&gt;
# Generalized Impedance Surface&lt;br /&gt;
&lt;br /&gt;
[[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. &lt;br /&gt;
&lt;br /&gt;
[[File:PO18(1).png]] [[File:PO19.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PO20.png]] [[File:PO21.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Navigation Tree and its PEC, PMC and Impedance Surface dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Creating New Objects &amp;amp;amp; Moving Them Around ===&lt;br /&gt;
&lt;br /&gt;
The objects that you draw in EM.Cube's project workspace always belong to the &amp;amp;quot;Active&amp;amp;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. &lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any material group. Right click on the highlighted selection and select '''Move To &amp;amp;gt; Physical Optics &amp;amp;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 &amp;amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. &lt;br /&gt;
&lt;br /&gt;
{{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]].}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO22(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects between different surface groups in [[PO Module]].&lt;br /&gt;
&lt;br /&gt;
=== Generating &amp;amp;amp; Customizing PO Mesh ===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in [[PO Module]] involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
The objects of your physical structure are meshed based on a specified mesh density expressed in cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The default mesh density is 20 cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. To view the PO mesh, click on the [[File:mesh_tool_tn.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' to remove its check mark or simply click the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;Show Mesh&amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''3-D Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
To set the PO mesh properties, click on the [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== More On Triangular Surface Mesh ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Forcing mesh cells to be single-sided in a PO simulation.&lt;br /&gt;
&lt;br /&gt;
'''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 &amp;amp;quot;unioned&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO25.png|400px]] [[File:PO26.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Geometry and PO mesh of an overlapping sphere and ellipsoid.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Density &amp;amp;amp; Local Mesh Control ===&lt;br /&gt;
&lt;br /&gt;
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.       &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO31.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of a PEC group.&lt;br /&gt;
&lt;br /&gt;
[[File:PO32.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Triangular surface mesh of two PEC box objects with the orange PEC group having a locked mesh of higher density.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO30.png|thumb|300px|PO Module's Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
=== Importing Short Dipoles From MoM3D Module ===&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
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 &amp;amp;quot;MoM.IDI&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO36.png|800px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO29.png|thumb|300px|PO Module's Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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'''.&lt;br /&gt;
&lt;br /&gt;
=== Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys17.png|thumb|300px|PO Module's Huygens Source dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a full-wave simulation in the EM.Cube's FDTD, MoM3D, Planar or Physical Optics Modules, you can generate Huygens surface data. According to Huygens' principle, if one knows the tangential electric and magnetic field components on a closed surface, one can determine the total electric and magnetic fields everywhere inside and outside that closed surface. Huygens surfaces are defined around a structure for recording the tangential components of electric and magnetic fields at the end of full-wave simulation of the structure. The tangential electric and magnetic fields are saved into ASCII data files as magnetic and electric currents, respectively. These current can be used as excitation for other structures. In other words, the electric and magnetic currents associated with a Huygens source radiate energy and provide the excitation for the [[PO Module]]'s physical structure.&lt;br /&gt;
&lt;br /&gt;
In order to define a Huygens source, you need to have a Huygens data file of '''.HUY''' type. This file is generated as an output data file at the end of an FDTD, MoM3D, Planar or PO simulation, if you have defined a Huygens  Surface observable in one of those projects. When you define a Huygens source, you indeed import an existing Huygens surface into the project and set it as an excitation source.&lt;br /&gt;
&lt;br /&gt;
To create a new Huygens source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Huygens Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Import Huygens Source...''' from the contextual menu.&lt;br /&gt;
* The standard Windows Open Dialog opens up. The file type is set to '''.HUY''' by default. Browse your folders to find a Huygens surface data file with a '''.HUY''' file extension. Select the file and click the '''Open''' button of the dialog to import the data.&lt;br /&gt;
* Once imported, the Huygens source appears in the Project Workspace as a wire-frame box.&lt;br /&gt;
* You can open the property dialog of a Huygens source by right clicking on its name in the Navigation Tree and selecting '''Properties...''' From this dialog you can change the color of the Huygens source box as well as its location and orientation. You can enter new values for the X, Y, Z '''Center Coordinates''' and '''Rotation Angles''' of the Huygens box. You can also view the dimensions of the box.&lt;br /&gt;
* By default, the Huygens data are imported as a single Huygens source. You can create an arbitrary array of Huygens sources for your PO project. To do so, in the &amp;amp;quot;Create Array&amp;amp;quot; section of the Huygens source dialog, enter desired values for the '''Number of Elements''' and '''Element Spacing''' along the X, Y and Z directions. You will see an array of wire-frame box appear in the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PO34.png|400px]] [[File:PO35.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: (Left) A rotated imported Huygens source, and (Right) An array of imported Huygens sources defined to excite a PEC box.&lt;br /&gt;
&lt;br /&gt;
== Running PO Simulations ==&lt;br /&gt;
&lt;br /&gt;
=== Running A Basic PO Analysis ===&lt;br /&gt;
&lt;br /&gt;
To open [[PO Module]]'s Simulation Run dialog, click the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Run...'''or use the keyboard shortcut '''Ctrl+R'''. To start the simulation click the '''Run''' button of this dialog. Once the PO simulation starts, a new dialog called '''Output Window''' opens up that reports the various stages of PO simulation, displays the running time and shows the percentage of completion for certain tasks during the PO simulation process. A prompt announces the completion of the PO simulation. At this time, EM.Cube generates a number of output data files that contain all the computed simulation data. These include current distributions, near field data, far field radiation pattern data as well bi-static or mono-static radar cross sections (RCS) if the structure is excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
[[File:PO27.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Setting The Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
Before you run a PO simulation, you can change some of the PO simulation engine settings. While in the [[PO Module]]'s '''Simulation Run Dialog''', click the '''Settings''' button next to the '''Select Engine''' dropdown list. In the Physical Optics Engine Settings Dialog, there are two options for '''Solver Type''': '''Iterative''' and '''GOPO'''. The default option is Iterative. The GOPO solver is a zero-order PO simulator that uses Geometrical Optics (GO) to determine the lit and shadow cells in the structure's mesh. For the termination of the IPO solver, there are two options: '''Convergence Error''' and '''Maximum Number of Iterations'''. The default Termination Criterion is based on convergence error, which has a default value of 0.1 and can be changed to any desired accuracy. The convergence error is defined as the L2 norm of the normalized residual error in the combined '''J/M''' current solution of the entire discretized structure from one iteration to the next. Note that for this purpose, the magnetic currents are scaled by &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; in the residual error vector.&lt;br /&gt;
&lt;br /&gt;
You can also use higher- or lower-order integration schemes for the calculation of field integrals. EM.Cube's PO simulation engine uses triangular cells for the mesh of the physical surface structures and rectangular cells for discretization of Huygens sources and surfaces. For integration of triangular cells, you have three options: '''7-Point Quadrature''', '''3-Point Quadrature''' and '''Constant'''. For integration of rectangular cells, too, you have three options: '''9-Point Quadrature''', '''4-Point Quadrature''' and '''Constant'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO37.png|thumb|300px|PO Module's Current Distribution dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, EM.Cube's PO engine generates a number of output data files that contain all the computed simulation data. The main output data are the electric and magnetic current distributions. You can easily examine the 3D color-coded intensity plots of current distributions in the project workspace. Current distributions are visualized on the surface of the PO mesh cells, and the magnitude and phase of the electric and magnetic surface currents are plotted for all the objects. In order to view these currents, you must first define a current distribution observable before running the PO simulation. To do this, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. Accept the default settings and close the dialog. A new current distribution node is added to the Navigation Tree. Unlike the [[Planar Module]], in the [[PO Module]] you can define only one current distribution node in the Navigation Tree, which covers all the objects in the project workspace. After a PO simulation is completed, new plots are added under the current distribution node of the Navigation Tree. Separate plots are produced for the magnitude and phase of each of the electric and magnetic surface current components (X, Y and Z) as well as the total current magnitude. The magnitude maps are plotted on a normalized scale with the minimum and maximum values displayed in the legend box. The phase maps are plotted in radians between -p and p. Note that sometimes the current distribution plots may hide inside smooth and curved objects, and you cannot see them. You may have to freeze such objects or switch to the mesh view mode.&lt;br /&gt;
&lt;br /&gt;
[[File:PO38.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: The current distribution plot of a PEC sphere illuminated by an obliquely incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Near Field Visualization ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO42(4).png|thumb|300px|PO Module's Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to visualize the near fields at a specific field sensor plane. Calculation of near fields is a post-processing process and may take a considerable amount of time depending on the resolution that you specify. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name. you can also change the color of the field sensor plane using the '''Color''' button.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) on the XY plane. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z '''Center Coordinates'''. You can also change these coordinates using the spin buttons.&lt;br /&gt;
* The initial size of the sensor plane is 100 × 100 project units. You can change the dimensions of the sensor plane to any desired size. You can also set the '''Number of Samples''' along the different directions. These numbers determine the resolution of near field maps. Keep in mind that large numbers of samples may result in long computation times.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree. Once a PO simulation is finished, a total of 14 plots are added to every field sensor node in the Navigation Tree. These include the magnitude and phase of all three components of '''E''' and '''H''' fields and the total electric and magnetic field values. Click on any of these items and a color-coded intensity plot of it will be visualized on the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p.To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotate view, pan, zoom, etc.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that since Physical Optics is an asymptotic method, the field sensors must be placed at adequate distances (at least one or few wavelengths) away from the scatterers to produce acceptable results.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO43.png|400px]] [[File:PO44.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Near field plots of electric and magnetic fields on a sensor plane.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing 3D Radiation Patterns ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO45.png|thumb|300px|PO Module's Radiation Pattern dialog]]&lt;br /&gt;
&lt;br /&gt;
Unlike the FDTD method, Physical Optics is an open-boundary technique. You do not need a far field box to perform near-to-far-field transformations. Nonetheless, you still need to define a far field observable if you want to plot radiation patterns. A far field can be defined by right clicking on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and selecting '''Insert New Radiation Pattern...''' from the contextual menu. The Radiation Pattern dialog opens up. You can accept most of the default settings in this dialog. The Output Settings section allows you to change the '''Angle Increment''' in the degrees, which sets the resolution of far field calculations. The default value is 5 degrees. After closing the radiation pattern dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
After a PO simulation is finished, three radiation patterns plots are added to the far field node in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the total far field defines as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed by clicking on their name in the navigation tree. They are displayed in EM.Cube's project workspace and are overlaid on the project's structure. The view of a 3D radiation pattern plots can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the pattern, you can simply hide the whole structure or parts of it. The fields are always normalized to the maximum of the total far field. A legend box appears in the upper right corner of the 3D radiation plot, which can be moved around by clicking and dragging with the left mouse button. The calculated Directivity of the radiating structure is displayed at the bottom of the legend box. It is important to note that if the PO structure is excited by an incident plane wave, the radiation patterns indeed represent the far-zone scattered field data.&lt;br /&gt;
&lt;br /&gt;
[[File:PO46.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D radiation pattern of a parabolic dish reflector excited by a short dipole at its focal point.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO47.png|thumb|300px|PO Module's RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields. EM.Cube calculates the radar cross section (RCS) of a target, which is defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Three RCS quantities are computed: the &amp;amp;theta; and &amp;amp;phi; components of the radar cross section as well as the total radar cross section, which are dented by &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. In addition, EM.Cube's [[PO Module]] calculates two types of RCS for each structure: '''Bi-Static RCS''' and '''Mono-Static RCS'''. In bi-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at all &amp;amp;theta; and &amp;amp;phi; angles. In mono-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at the echo angles 180°-&amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. It is clear that in the case of mono-static RCS, the PO simulation engine runs an internal angular sweep, whereby the values of the plane wave incidence angles &amp;amp;theta; and &amp;amp;phi; are varied over the entire intervals [0°, 180°] and [0°, 360°], respectively, and the backscatter RCS is recorded.&lt;br /&gt;
&lt;br /&gt;
To calculate RCS, first you have to define an RCS observable instead of a radiation pattern. Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog. Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button. Select the type of RCS from the two radio buttons labeled '''Bi-Static RCS''' and '''Mono-Static RCS'''. The former is the default choice. The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees. At the end of a PO simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another azimuth angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the thee RCS plots &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; are added under the far field section of the Navigation Tree. These plots are very similar to the three 3D radiation pattern plots. You can view them by clicking on their names in the navigation tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. For visualization purposes, the 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box. Keep in mind that computing the 3D mono-static RCS may take an enormous amount of computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PO48.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: RCS of a PEC sphere illuminated by an laterally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Customizing 3D Plots ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's current distribution plots are interactive. When you move the mouse over a current plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the current data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the current value at that point. In other words, you can read the plot values using mouse-over. The legend of a current plot also shows the minimum and maximum current values, the current unit (A/m on metallic traces, V/m on slot traces and A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; on embedded objects) as well as the mean current and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys25_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading current values from a current distribution map by mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic current distributions: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the current amplitude and phase using colored triangular mesh cells. The second type is a vectorial plot showing cones (or arrows) directed along the visualized current component. In the case of the total electric current distribution, the cone plot shows the overall direction of the currents at any point on the surface of objects. To set the type of a current plot, open the current distribution plot's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the current distribution before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys26_tn.png|400px]] [[File:po_phys27_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A vectorial (cone-type) current distribution plot of the PEC sphere: (Left) overlaid on mesh and (Right) with the sphere object frozen.&lt;br /&gt;
&lt;br /&gt;
Current distribution maps are displayed with some default settings and options. You can customize the individual maps (total, magnitude, phase, etc.). To do so, open the '''Output Plot Settings Dialog''' by right clicking on the specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. Two '''scale''' options are available: '''Linear''' and '''dB'''. With the '''Linear''' (default) option selected, the current value is always normalized to the maximum total current in that plane, and the normalized scale is mapped between the minimum and maximum values. If the '''dB''' option is selected, the normalized current is converted to dB scale. The plot limits (bounds) can be set individually for every current distribution plot. In the '''Limits''' section of the plot's property dialog, you see four options: '''Default''', '''User Defined''', '''95% Conf.''' and '''95% Conf.'''. Select the user defined option and enter new values for the '''Lower''' and '''Upper''' limits. The last two options are used to remove the outlier data within the 95% and 99% confidence intervals, respectively. In other words, the lower and upper limits are set to ? ± 1.96? and ? ± 2.79? , respectively, assuming a normal distribution of the data. Three color maps are offered: '''Default''', '''Rainbow''' and '''Grayscale'''. You can hide the legend box by deselecting the box labeled '''Show Legend Box'''. You can also change the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The output plot settings dialog.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's field plots are interactive. When you move the mouse over a field plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the field data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the field value at that point. In other words, you can read the plot values using mouse-over. The legend of a field plot also shows the minimum and maximum field values, the field unit (V/m for electric and A/m for magnetic) as well as the mean field and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys33_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading field values form a 3-D sensor plot using mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic fields: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the field amplitude and phase using small colored pixels whose size is depends on the total size of the sensor plane and its number of samples. The second type is a vectorial plot showing cones (or arrows) directed along the visualized field component. In the case of the total electric and magnetic fields, the cone plots show the overall direction of the fields at any point on the sensor plane. To set the type of a field plot, open the field sensor's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the field sensor before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys34_tn.png|400px]] [[File:po_phys35_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Vectorial visualization of the electric and magnetic fields: (Left) E-field, (Right) H-field.&lt;br /&gt;
&lt;br /&gt;
Similar to current distribution plots, field plots (total, magnitude, phase, etc.) are displayed with some default settings and options, which can be further customized individually. To do so, open the '''Output Plot Settings''' dialog by right clicking on a specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. The settings are identical to those of current distribution plots. Two scale options, linear and dB, are available. You can also change the lower and upper limits of the individual field plots as well as their color map.&lt;br /&gt;
&lt;br /&gt;
=== 2D Radiation Pattern &amp;amp;amp; RCS Graphs ===&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes as well as an additional user defined phi plane cut are available for plotting on 2-D graphs. There are a total of eight 2-D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or select '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by clicking and highlighting its '''ID''' in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the theta and phi angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.CUBE, the axial ratio is always defined in the LCPz or RCPz sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2-D Cartesian graphs of the axial ratio as functions of the theta angle a generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of a PO sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In this case, either quantity needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
The 2D RCS graphs can be plotted from EM.CUBE's data manager exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. At the end of a sweep simulation, EM.CUBE calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys40.png]]&lt;br /&gt;
&lt;br /&gt;
The data manager dialog showing a list of 2-D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
The 2-D radiation patterns in the XY, YZ and ZX plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== PO Sweep Simulations ===&lt;br /&gt;
&lt;br /&gt;
You can run EM.Cube's PO simulation engine in the sweep mode, whereby a parameter like frequency, plane wave incident angles or a user defined variable is varied over a specified range at predetermined samples. The output data are saved into data files for visualization and plotting. EM.Cube's [[PO Module]] currently offers three types of sweep:&lt;br /&gt;
&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
To run a PO sweep, open the '''Simulation ''''''Run Dialog''' and select one of the above sweep types from the '''Simulation Mode''' dropdown list of this dialog. If you select either frequency or angular sweep, the '''Settings''' button located next to the simulation mode dropdown list becomes enabled. If you click this button, the Frequency Settings Dialog or Angle Settings Dialog opens up, respectively. In the frequency settings dialog, you can set the start and end frequencies as well as the number of frequency samples. The start and end frequency values are initially set based on the project's center frequency and bandwidth. During a frequency sweep, as the project's frequency changes, so does the wavelength. As a result, the mesh of the structure also changes at each frequency sample. The frequency settings dialog gives you three choices regarding the mesh of the project structure during a frequency sweep:&lt;br /&gt;
&lt;br /&gt;
# Fix mesh at the highest frequency.&lt;br /&gt;
# Fix mesh at the center frequency.&lt;br /&gt;
# Re-mesh at each frequency.&lt;br /&gt;
&lt;br /&gt;
You can run an angular sweep only if your project has a plane wave excitation. In this case, you have to define a plane wave source with the default settings. During an angular sweep, either the incident theta angle or incident phi angle is varied within the specified range. The other angle remains fixed at the value that is specified in the '''Plane Wave Dialog'''. You have to select either '''Theta''' or '''Phi''' as the '''Sweep Angle''' in the Angle Settings Dialog. You also need to set the start and end angles as well as the number of angle samples.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, one or more user defined [[variables]] are varied at the same time over their specified ranges. This creates a parametric space with the total number of samples equal to the product of the number of samples for each variable. The user defined [[variables]] are defined using EM.Cube's '''[[Variables]] Dialog'''. For a description of EM.Cube [[variables]], please refer to the &amp;amp;quot;Parametric Modeling, Sweep &amp;amp;amp; [[Optimization]]&amp;amp;quot; section of EM.Cube Manual or see the &amp;amp;quot;Parametric Sweep&amp;amp;quot; sections of the FDTD or [[Planar Module]] manuals.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys52.png]] [[File:po_phys54.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Frequency Settings and Angle Settings dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Animation Of PO Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a frequency sweep, angular sweep or parametric sweep simulation in EM.Cube's [[PO Module]], the output data are saved for visualization and plotting. In particular, if you have defined current distribution, field sensor or far field observables in your project, multiple 3D plots, as many as the total number of sweep samples, are added to the Navigation Tree. In a single simulation run, a total of 14 current distribution plots, 14 field sensor plot and 3 radiation pattern plots or 3 RCS plots are generated under every observable node defined in the Navigation Tree. However, after a sweep simulation, only one plot is saved for each sweep sample. This is done to keep the resulting plots manageable. Thus, only the total radiation pattern or total RCS are saved for each sweep sample. In the case of a current distribution observable, you have the choice to save either the magnitude of total electric current distribution '''|J&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''or the magnitude of total magnetic current distribution '''|M&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''. To change this, open the '''Current Distribution Dialog''' by right clicking on the observable's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Current Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''Electric Current (J)''' or '''Magnetic Current (M)'''. Similarly, in the case of a field sensor observable, you have the choice to save either the total E-field magnitude plot or the total H-field magnitude plot. To change this, open the '''Field Sensor Dialog''' by right clicking on a field sensor's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Field Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''E-Field''' or '''H-Field'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO39.png]] [[File:PO40.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the current or field types for sweep data visualization in [[PO Module]]'s Current Distribution and Field Sensor dialogs.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.CUBE consists of consecutive display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
The animation controls dialog and animation of the H-field plots of a PEC sphere after an angular sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Illumina</id>
		<title>EM.Illumina</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Illumina"/>
				<updated>2013-06-13T18:38:39Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* General Huygens Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
== Methods Of Physical Optics ==&lt;br /&gt;
&lt;br /&gt;
=== Physical Optics As An Asymptotic Technique ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Asymptotic methods are usually valid at high frequencies as &amp;lt;math&amp;gt;k_0 R = 2\pi R/\lambda_0 &amp;gt;&amp;gt; 1&amp;lt;/math&amp;gt;, where R is the distance between the source and observation points, k&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt; is the free-space propagation constant and &amp;amp;lambda;&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt;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. The uniform theory of diffraction (UTD) is used to model the diffraction of rays at the edges of the structure.&lt;br /&gt;
&lt;br /&gt;
In the Physical Optics (PO) method, a scatterer surface is illuminated by an incident source, and it is modeled by equivalent electric and magnetic surface currents. This concept is based on the fundamental equivalence theorem of electromagnetics and the Huygens principle. The electric surface currents are denoted by '''J(r)''' and the magnetic surface currents are denoted by '''M(r)''', where '''r''' is the position vector. According to the Huygens principle, the equivalent electric and magnetic surface currents are derived from the tangential components of magnetic and electric fields on a given surface, respectively. This will be discussed in more detail in the next sections. In a classic PO analysis which involves only perfect electric conductors, only electric surface currents, related to the tangential magnetic fields, are considered.  &lt;br /&gt;
&lt;br /&gt;
=== Conventional Physical Optics (GO-PO) ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = (1+\alpha) \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -(1-\alpha) \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha = \frac{1-Z/\eta_0}{1+Z/\eta_0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi \; \Omega&amp;lt;/math&amp;gt; is the intrinsic impedance of the free space. Then, the electric and magnetic currents reduce to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = \frac{2\eta_0}{\eta_0 + Z} \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = - \frac{2Z}{\eta_0 + Z} \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Two limiting cases of an impedance surface are perfect electric conductor (PEC) and perfect magnetic conductor (PMC) surface. For a PEC surface, Z = 0,  &amp;amp;alpha; = 1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 2 \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO4.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while for a PMC surface, Z = 8,  &amp;amp;alpha; = -1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -2 \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another special case is a Huygens surface with equivalent electric and magnetic surface currents. In that case, Z =  &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, &amp;amp;alpha; = 0, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r) = \hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r) = -\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO10.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:po_manual_1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A diagram showing a scatterer lit by a source.&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0, and shadowed if '''n.k'''&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Near &amp;amp;amp; Far Fields In PO ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HM&amp;lt;/sub&amp;gt;''' 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 &amp;lt;math&amp;gt;\exp(-jk_0r)/(4\pi r)&amp;lt;/math&amp;gt; and the near fields reduce to: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; + 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; - 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt; R=|r-r'| \text{, } k_0 = \tfrac{2\pi}{\lambda_0} \text{ and } Z_0 = 1/Y_0 = \eta_0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;gt;&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{ff}(r)} = \frac{jk_0 e^{-jk_0 r}}{4\pi r} &lt;br /&gt;
\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' +&lt;br /&gt;
\mathbf{\hat{r}} \times \iint_{S_M} \mathbf{M(r')} e^{-jk_0 \mathbf{ \hat{r} \cdot r' } } ds' \right\}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \frac{1}{Z_0} \mathbf{\hat{r} \times E^{ff}(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Iterative Physical Optics (IPO) ===&lt;br /&gt;
&lt;br /&gt;
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;amp;amp; EFIE):&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{J(r)} = (1+\alpha)\mathbf{\hat{n}} \times&lt;br /&gt;
\left\lbrace &lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ H^{inc}(r) } - jk_0 \iint_{S_J} \left( 1 - \frac{j}{k_0 R} \right) &lt;br /&gt;
(\mathbf{ \hat{R} \times J(r') }) \frac{e^{-jk_0 R}}{4\pi R} \,ds' \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; -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')} -&lt;br /&gt;
\left( 1-\frac{3j}{k_0 R}-\frac{3}{(k_0 R)^2} \right) \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right]&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} \,ds'&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{M(r)} = -(1-\alpha)\mathbf{\hat{n}} \times&lt;br /&gt;
\left\lbrace &lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ E^{inc}(r) } + jk_0 \iint_{S_M} \left( 1 - \frac{j}{k_0 R} \right) &lt;br /&gt;
(\mathbf{ \hat{R} \times M(r') }) \frac{e^{-jk_0 R}}{4\pi R} \,ds' \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; -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')} -&lt;br /&gt;
\left( 1-\frac{3j}{k_0 R}-\frac{3}{(k_0 R)^2} \right) \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right]&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} \,ds'&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO9(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''R''' ='''r''' - '''r'''', R = |'''R'''|, and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ \hat{R} = \frac{R}{|R|} = \frac{r-r'}{|r-r'|} }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO11.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{J^{(0)}(r)} = (1+\alpha) \mathbf{ \hat{n} \times H^{inc}(r) } \\&lt;br /&gt;
&amp;amp; \mathbf{M^{(0)}(r)} = -(1-\alpha) \mathbf{ \hat{n} \times E^{inc}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO13.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0 is examined. In complex scatterer geometries, there are shadowed points in concave regions where '''n.k'''&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ \hat{n} \cdot \hat{R}} &amp;lt; 0 \quad \text{or} \quad \mathbf{\hat{n} \cdot (r-r')} &amp;lt; 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the subsequent iterations, the higher order PO currents are given by;&lt;br /&gt;
&lt;br /&gt;
[[File:PO14(1).png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== General Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ J(r) = \hat{n} \times H(r) } \\&lt;br /&gt;
&amp;amp; \mathbf{ M(r) = -\hat{n} \times E(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO10(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{inc}(r)} = -jk_0 \sum_j \iint_{\Delta_j} \, ds' \frac{e^{-jk_0 R}}{4\pi R}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; Z_0 \left[ 1 - \frac{j}{k_0 R} - \frac{1}{(k_0 R)^2} \right] \mathbf{J_j(r')} \\&lt;br /&gt;
&amp;amp; -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} } \\&lt;br /&gt;
&amp;amp; - \left[ 1 - \frac{j}{k_0 R} \right] \mathbf{ (\hat{R} \times M_j(r')) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{H^{inc}(r)} = -jk_0 \sum_j \iint_{\Delta_j} \, ds' \frac{e^{-jk_0 R}}{4\pi R}&lt;br /&gt;
\left\lbrace&lt;br /&gt;
&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; Y_0 \left[ 1 - \frac{j}{k_0 R} - \frac{1}{(k_0 R)^2} \right] \mathbf{M_j(r')} \\&lt;br /&gt;
&amp;amp; -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} } \\&lt;br /&gt;
&amp;amp; - \left[ 1 - \frac{j}{k_0 R} \right] \mathbf{ (\hat{R} \times J_j(r')) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO16.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the summation over index ''j'' is carried out for all the elementary cells &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; that make up the Huygens box. In EM.Cube Huygens surfaces are cubic and are discretized using a rectangular mesh. Therefore, &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; 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.     &lt;br /&gt;
&lt;br /&gt;
The far fields of the Huygens surface currents are calculated from the following relations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{ff}(r)} = \frac{jk_0}{4\pi} \frac{e^{-jk_0 r}}{r}&lt;br /&gt;
\sum_j \iint_{\Delta_j} \left[ Z_0 \, \mathbf{ \hat{r} \times \hat{r} \times J_j(r') } + &lt;br /&gt;
\mathbf{ \hat{r} \times M_j(r') } \right] e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{H^{ff}(r)} = \frac{1}{Z_0} \mathbf{\hat{r} \times E^{ff}(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO17(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Physical Structure &amp;amp;amp; Its Discretization ==&lt;br /&gt;
&lt;br /&gt;
=== Grouping Objects By Surface Type ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
# Perfect Electric Conductor (PEC) &lt;br /&gt;
# Perfect Magnetic Conductor (PMC) &lt;br /&gt;
# Generalized Impedance Surface&lt;br /&gt;
&lt;br /&gt;
[[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. &lt;br /&gt;
&lt;br /&gt;
[[File:PO18(1).png]] [[File:PO19.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PO20.png]] [[File:PO21.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Navigation Tree and its PEC, PMC and Impedance Surface dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Creating New Objects &amp;amp;amp; Moving Them Around ===&lt;br /&gt;
&lt;br /&gt;
The objects that you draw in EM.Cube's project workspace always belong to the &amp;amp;quot;Active&amp;amp;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. &lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any material group. Right click on the highlighted selection and select '''Move To &amp;amp;gt; Physical Optics &amp;amp;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 &amp;amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. &lt;br /&gt;
&lt;br /&gt;
{{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]].}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO22(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects between different surface groups in [[PO Module]].&lt;br /&gt;
&lt;br /&gt;
=== Generating &amp;amp;amp; Customizing PO Mesh ===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in [[PO Module]] involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
The objects of your physical structure are meshed based on a specified mesh density expressed in cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The default mesh density is 20 cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. To view the PO mesh, click on the [[File:mesh_tool_tn.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' to remove its check mark or simply click the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;Show Mesh&amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''3-D Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
To set the PO mesh properties, click on the [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== More On Triangular Surface Mesh ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Forcing mesh cells to be single-sided in a PO simulation.&lt;br /&gt;
&lt;br /&gt;
'''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 &amp;amp;quot;unioned&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO25.png|400px]] [[File:PO26.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Geometry and PO mesh of an overlapping sphere and ellipsoid.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Density &amp;amp;amp; Local Mesh Control ===&lt;br /&gt;
&lt;br /&gt;
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.       &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO31.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of a PEC group.&lt;br /&gt;
&lt;br /&gt;
[[File:PO32.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Triangular surface mesh of two PEC box objects with the orange PEC group having a locked mesh of higher density.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO30.png|thumb|300px|PO Module's Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
=== Importing Short Dipoles From MoM3D Module ===&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
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 &amp;amp;quot;MoM.IDI&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO36.png|800px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO29.png|thumb|300px|PO Module's Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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'''.&lt;br /&gt;
&lt;br /&gt;
=== Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys17.png|thumb|300px|PO Module's Huygens Source dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a full-wave simulation in the EM.Cube's FDTD, MoM3D, Planar or Physical Optics Modules, you can generate Huygens surface data. According to Huygens' principle, if one knows the tangential electric and magnetic field components on a closed surface, one can determine the total electric and magnetic fields everywhere inside and outside that closed surface. Huygens surfaces are defined around a structure for recording the tangential components of electric and magnetic fields at the end of full-wave simulation of the structure. The tangential electric and magnetic fields are saved into ASCII data files as magnetic and electric currents, respectively. These current can be used as excitation for other structures. In other words, the electric and magnetic currents associated with a Huygens source radiate energy and provide the excitation for the [[PO Module]]'s physical structure.&lt;br /&gt;
&lt;br /&gt;
In order to define a Huygens source, you need to have a Huygens data file of '''.HUY''' type. This file is generated as an output data file at the end of an FDTD, MoM3D, Planar or PO simulation, if you have defined a Huygens  Surface observable in one of those projects. When you define a Huygens source, you indeed import an existing Huygens surface into the project and set it as an excitation source.&lt;br /&gt;
&lt;br /&gt;
To create a new Huygens source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Huygens Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Import Huygens Source...''' from the contextual menu.&lt;br /&gt;
* The standard Windows Open Dialog opens up. The file type is set to '''.HUY''' by default. Browse your folders to find a Huygens surface data file with a '''.HUY''' file extension. Select the file and click the '''Open''' button of the dialog to import the data.&lt;br /&gt;
* Once imported, the Huygens source appears in the Project Workspace as a wire-frame box.&lt;br /&gt;
* You can open the property dialog of a Huygens source by right clicking on its name in the Navigation Tree and selecting '''Properties...''' From this dialog you can change the color of the Huygens source box as well as its location and orientation. You can enter new values for the X, Y, Z '''Center Coordinates''' and '''Rotation Angles''' of the Huygens box. You can also view the dimensions of the box.&lt;br /&gt;
* By default, the Huygens data are imported as a single Huygens source. You can create an arbitrary array of Huygens sources for your PO project. To do so, in the &amp;amp;quot;Create Array&amp;amp;quot; section of the Huygens source dialog, enter desired values for the '''Number of Elements''' and '''Element Spacing''' along the X, Y and Z directions. You will see an array of wire-frame box appear in the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PO34.png|400px]] [[File:PO35.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: (Left) A rotated imported Huygens source, and (Right) An array of imported Huygens sources defined to excite a PEC box.&lt;br /&gt;
&lt;br /&gt;
== Running PO Simulations ==&lt;br /&gt;
&lt;br /&gt;
=== Running A Basic PO Analysis ===&lt;br /&gt;
&lt;br /&gt;
To open [[PO Module]]'s Simulation Run dialog, click the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Run...'''or use the keyboard shortcut '''Ctrl+R'''. To start the simulation click the '''Run''' button of this dialog. Once the PO simulation starts, a new dialog called '''Output Window''' opens up that reports the various stages of PO simulation, displays the running time and shows the percentage of completion for certain tasks during the PO simulation process. A prompt announces the completion of the PO simulation. At this time, EM.Cube generates a number of output data files that contain all the computed simulation data. These include current distributions, near field data, far field radiation pattern data as well bi-static or mono-static radar cross sections (RCS) if the structure is excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
[[File:PO27.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Setting The Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
Before you run a PO simulation, you can change some of the PO simulation engine settings. While in the [[PO Module]]'s '''Simulation Run Dialog''', click the '''Settings''' button next to the '''Select Engine''' dropdown list. In the Physical Optics Engine Settings Dialog, there are two options for '''Solver Type''': '''Iterative''' and '''GOPO'''. The default option is Iterative. The GOPO solver is a zero-order PO simulator that uses Geometrical Optics (GO) to determine the lit and shadow cells in the structure's mesh. For the termination of the IPO solver, there are two options: '''Convergence Error''' and '''Maximum Number of Iterations'''. The default Termination Criterion is based on convergence error, which has a default value of 0.1 and can be changed to any desired accuracy. The convergence error is defined as the L2 norm of the normalized residual error in the combined '''J/M''' current solution of the entire discretized structure from one iteration to the next. Note that for this purpose, the magnetic currents are scaled by &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; in the residual error vector.&lt;br /&gt;
&lt;br /&gt;
You can also use higher- or lower-order integration schemes for the calculation of field integrals. EM.Cube's PO simulation engine uses triangular cells for the mesh of the physical surface structures and rectangular cells for discretization of Huygens sources and surfaces. For integration of triangular cells, you have three options: '''7-Point Quadrature''', '''3-Point Quadrature''' and '''Constant'''. For integration of rectangular cells, too, you have three options: '''9-Point Quadrature''', '''4-Point Quadrature''' and '''Constant'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO37.png|thumb|300px|PO Module's Current Distribution dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, EM.Cube's PO engine generates a number of output data files that contain all the computed simulation data. The main output data are the electric and magnetic current distributions. You can easily examine the 3D color-coded intensity plots of current distributions in the project workspace. Current distributions are visualized on the surface of the PO mesh cells, and the magnitude and phase of the electric and magnetic surface currents are plotted for all the objects. In order to view these currents, you must first define a current distribution observable before running the PO simulation. To do this, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. Accept the default settings and close the dialog. A new current distribution node is added to the Navigation Tree. Unlike the [[Planar Module]], in the [[PO Module]] you can define only one current distribution node in the Navigation Tree, which covers all the objects in the project workspace. After a PO simulation is completed, new plots are added under the current distribution node of the Navigation Tree. Separate plots are produced for the magnitude and phase of each of the electric and magnetic surface current components (X, Y and Z) as well as the total current magnitude. The magnitude maps are plotted on a normalized scale with the minimum and maximum values displayed in the legend box. The phase maps are plotted in radians between -p and p. Note that sometimes the current distribution plots may hide inside smooth and curved objects, and you cannot see them. You may have to freeze such objects or switch to the mesh view mode.&lt;br /&gt;
&lt;br /&gt;
[[File:PO38.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: The current distribution plot of a PEC sphere illuminated by an obliquely incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Near Field Visualization ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO42(4).png|thumb|300px|PO Module's Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to visualize the near fields at a specific field sensor plane. Calculation of near fields is a post-processing process and may take a considerable amount of time depending on the resolution that you specify. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name. you can also change the color of the field sensor plane using the '''Color''' button.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) on the XY plane. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z '''Center Coordinates'''. You can also change these coordinates using the spin buttons.&lt;br /&gt;
* The initial size of the sensor plane is 100 × 100 project units. You can change the dimensions of the sensor plane to any desired size. You can also set the '''Number of Samples''' along the different directions. These numbers determine the resolution of near field maps. Keep in mind that large numbers of samples may result in long computation times.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree. Once a PO simulation is finished, a total of 14 plots are added to every field sensor node in the Navigation Tree. These include the magnitude and phase of all three components of '''E''' and '''H''' fields and the total electric and magnetic field values. Click on any of these items and a color-coded intensity plot of it will be visualized on the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p.To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotate view, pan, zoom, etc.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that since Physical Optics is an asymptotic method, the field sensors must be placed at adequate distances (at least one or few wavelengths) away from the scatterers to produce acceptable results.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO43.png|400px]] [[File:PO44.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Near field plots of electric and magnetic fields on a sensor plane.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing 3D Radiation Patterns ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO45.png|thumb|300px|PO Module's Radiation Pattern dialog]]&lt;br /&gt;
&lt;br /&gt;
Unlike the FDTD method, Physical Optics is an open-boundary technique. You do not need a far field box to perform near-to-far-field transformations. Nonetheless, you still need to define a far field observable if you want to plot radiation patterns. A far field can be defined by right clicking on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and selecting '''Insert New Radiation Pattern...''' from the contextual menu. The Radiation Pattern dialog opens up. You can accept most of the default settings in this dialog. The Output Settings section allows you to change the '''Angle Increment''' in the degrees, which sets the resolution of far field calculations. The default value is 5 degrees. After closing the radiation pattern dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
After a PO simulation is finished, three radiation patterns plots are added to the far field node in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the total far field defines as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed by clicking on their name in the navigation tree. They are displayed in EM.Cube's project workspace and are overlaid on the project's structure. The view of a 3D radiation pattern plots can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the pattern, you can simply hide the whole structure or parts of it. The fields are always normalized to the maximum of the total far field. A legend box appears in the upper right corner of the 3D radiation plot, which can be moved around by clicking and dragging with the left mouse button. The calculated Directivity of the radiating structure is displayed at the bottom of the legend box. It is important to note that if the PO structure is excited by an incident plane wave, the radiation patterns indeed represent the far-zone scattered field data.&lt;br /&gt;
&lt;br /&gt;
[[File:PO46.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D radiation pattern of a parabolic dish reflector excited by a short dipole at its focal point.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO47.png|thumb|300px|PO Module's RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields. EM.Cube calculates the radar cross section (RCS) of a target, which is defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Three RCS quantities are computed: the &amp;amp;theta; and &amp;amp;phi; components of the radar cross section as well as the total radar cross section, which are dented by &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. In addition, EM.Cube's [[PO Module]] calculates two types of RCS for each structure: '''Bi-Static RCS''' and '''Mono-Static RCS'''. In bi-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at all &amp;amp;theta; and &amp;amp;phi; angles. In mono-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at the echo angles 180°-&amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. It is clear that in the case of mono-static RCS, the PO simulation engine runs an internal angular sweep, whereby the values of the plane wave incidence angles &amp;amp;theta; and &amp;amp;phi; are varied over the entire intervals [0°, 180°] and [0°, 360°], respectively, and the backscatter RCS is recorded.&lt;br /&gt;
&lt;br /&gt;
To calculate RCS, first you have to define an RCS observable instead of a radiation pattern. Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog. Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button. Select the type of RCS from the two radio buttons labeled '''Bi-Static RCS''' and '''Mono-Static RCS'''. The former is the default choice. The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees. At the end of a PO simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another azimuth angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the thee RCS plots &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; are added under the far field section of the Navigation Tree. These plots are very similar to the three 3D radiation pattern plots. You can view them by clicking on their names in the navigation tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. For visualization purposes, the 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box. Keep in mind that computing the 3D mono-static RCS may take an enormous amount of computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PO48.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: RCS of a PEC sphere illuminated by an laterally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Customizing 3D Plots ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's current distribution plots are interactive. When you move the mouse over a current plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the current data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the current value at that point. In other words, you can read the plot values using mouse-over. The legend of a current plot also shows the minimum and maximum current values, the current unit (A/m on metallic traces, V/m on slot traces and A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; on embedded objects) as well as the mean current and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys25_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading current values from a current distribution map by mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic current distributions: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the current amplitude and phase using colored triangular mesh cells. The second type is a vectorial plot showing cones (or arrows) directed along the visualized current component. In the case of the total electric current distribution, the cone plot shows the overall direction of the currents at any point on the surface of objects. To set the type of a current plot, open the current distribution plot's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the current distribution before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys26_tn.png|400px]] [[File:po_phys27_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A vectorial (cone-type) current distribution plot of the PEC sphere: (Left) overlaid on mesh and (Right) with the sphere object frozen.&lt;br /&gt;
&lt;br /&gt;
Current distribution maps are displayed with some default settings and options. You can customize the individual maps (total, magnitude, phase, etc.). To do so, open the '''Output Plot Settings Dialog''' by right clicking on the specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. Two '''scale''' options are available: '''Linear''' and '''dB'''. With the '''Linear''' (default) option selected, the current value is always normalized to the maximum total current in that plane, and the normalized scale is mapped between the minimum and maximum values. If the '''dB''' option is selected, the normalized current is converted to dB scale. The plot limits (bounds) can be set individually for every current distribution plot. In the '''Limits''' section of the plot's property dialog, you see four options: '''Default''', '''User Defined''', '''95% Conf.''' and '''95% Conf.'''. Select the user defined option and enter new values for the '''Lower''' and '''Upper''' limits. The last two options are used to remove the outlier data within the 95% and 99% confidence intervals, respectively. In other words, the lower and upper limits are set to ? ± 1.96? and ? ± 2.79? , respectively, assuming a normal distribution of the data. Three color maps are offered: '''Default''', '''Rainbow''' and '''Grayscale'''. You can hide the legend box by deselecting the box labeled '''Show Legend Box'''. You can also change the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The output plot settings dialog.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's field plots are interactive. When you move the mouse over a field plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the field data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the field value at that point. In other words, you can read the plot values using mouse-over. The legend of a field plot also shows the minimum and maximum field values, the field unit (V/m for electric and A/m for magnetic) as well as the mean field and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys33_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading field values form a 3-D sensor plot using mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic fields: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the field amplitude and phase using small colored pixels whose size is depends on the total size of the sensor plane and its number of samples. The second type is a vectorial plot showing cones (or arrows) directed along the visualized field component. In the case of the total electric and magnetic fields, the cone plots show the overall direction of the fields at any point on the sensor plane. To set the type of a field plot, open the field sensor's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the field sensor before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys34_tn.png|400px]] [[File:po_phys35_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Vectorial visualization of the electric and magnetic fields: (Left) E-field, (Right) H-field.&lt;br /&gt;
&lt;br /&gt;
Similar to current distribution plots, field plots (total, magnitude, phase, etc.) are displayed with some default settings and options, which can be further customized individually. To do so, open the '''Output Plot Settings''' dialog by right clicking on a specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. The settings are identical to those of current distribution plots. Two scale options, linear and dB, are available. You can also change the lower and upper limits of the individual field plots as well as their color map.&lt;br /&gt;
&lt;br /&gt;
=== 2D Radiation Pattern &amp;amp;amp; RCS Graphs ===&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes as well as an additional user defined phi plane cut are available for plotting on 2-D graphs. There are a total of eight 2-D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or select '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by clicking and highlighting its '''ID''' in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the theta and phi angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.CUBE, the axial ratio is always defined in the LCPz or RCPz sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2-D Cartesian graphs of the axial ratio as functions of the theta angle a generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of a PO sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In this case, either quantity needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
The 2D RCS graphs can be plotted from EM.CUBE's data manager exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. At the end of a sweep simulation, EM.CUBE calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys40.png]]&lt;br /&gt;
&lt;br /&gt;
The data manager dialog showing a list of 2-D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
The 2-D radiation patterns in the XY, YZ and ZX plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== PO Sweep Simulations ===&lt;br /&gt;
&lt;br /&gt;
You can run EM.Cube's PO simulation engine in the sweep mode, whereby a parameter like frequency, plane wave incident angles or a user defined variable is varied over a specified range at predetermined samples. The output data are saved into data files for visualization and plotting. EM.Cube's [[PO Module]] currently offers three types of sweep:&lt;br /&gt;
&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
To run a PO sweep, open the '''Simulation ''''''Run Dialog''' and select one of the above sweep types from the '''Simulation Mode''' dropdown list of this dialog. If you select either frequency or angular sweep, the '''Settings''' button located next to the simulation mode dropdown list becomes enabled. If you click this button, the Frequency Settings Dialog or Angle Settings Dialog opens up, respectively. In the frequency settings dialog, you can set the start and end frequencies as well as the number of frequency samples. The start and end frequency values are initially set based on the project's center frequency and bandwidth. During a frequency sweep, as the project's frequency changes, so does the wavelength. As a result, the mesh of the structure also changes at each frequency sample. The frequency settings dialog gives you three choices regarding the mesh of the project structure during a frequency sweep:&lt;br /&gt;
&lt;br /&gt;
# Fix mesh at the highest frequency.&lt;br /&gt;
# Fix mesh at the center frequency.&lt;br /&gt;
# Re-mesh at each frequency.&lt;br /&gt;
&lt;br /&gt;
You can run an angular sweep only if your project has a plane wave excitation. In this case, you have to define a plane wave source with the default settings. During an angular sweep, either the incident theta angle or incident phi angle is varied within the specified range. The other angle remains fixed at the value that is specified in the '''Plane Wave Dialog'''. You have to select either '''Theta''' or '''Phi''' as the '''Sweep Angle''' in the Angle Settings Dialog. You also need to set the start and end angles as well as the number of angle samples.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, one or more user defined [[variables]] are varied at the same time over their specified ranges. This creates a parametric space with the total number of samples equal to the product of the number of samples for each variable. The user defined [[variables]] are defined using EM.Cube's '''[[Variables]] Dialog'''. For a description of EM.Cube [[variables]], please refer to the &amp;amp;quot;Parametric Modeling, Sweep &amp;amp;amp; [[Optimization]]&amp;amp;quot; section of EM.Cube Manual or see the &amp;amp;quot;Parametric Sweep&amp;amp;quot; sections of the FDTD or [[Planar Module]] manuals.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys52.png]] [[File:po_phys54.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Frequency Settings and Angle Settings dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Animation Of PO Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a frequency sweep, angular sweep or parametric sweep simulation in EM.Cube's [[PO Module]], the output data are saved for visualization and plotting. In particular, if you have defined current distribution, field sensor or far field observables in your project, multiple 3D plots, as many as the total number of sweep samples, are added to the Navigation Tree. In a single simulation run, a total of 14 current distribution plots, 14 field sensor plot and 3 radiation pattern plots or 3 RCS plots are generated under every observable node defined in the Navigation Tree. However, after a sweep simulation, only one plot is saved for each sweep sample. This is done to keep the resulting plots manageable. Thus, only the total radiation pattern or total RCS are saved for each sweep sample. In the case of a current distribution observable, you have the choice to save either the magnitude of total electric current distribution '''|J&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''or the magnitude of total magnetic current distribution '''|M&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''. To change this, open the '''Current Distribution Dialog''' by right clicking on the observable's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Current Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''Electric Current (J)''' or '''Magnetic Current (M)'''. Similarly, in the case of a field sensor observable, you have the choice to save either the total E-field magnitude plot or the total H-field magnitude plot. To change this, open the '''Field Sensor Dialog''' by right clicking on a field sensor's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Field Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''E-Field''' or '''H-Field'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO39.png]] [[File:PO40.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the current or field types for sweep data visualization in [[PO Module]]'s Current Distribution and Field Sensor dialogs.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.CUBE consists of consecutive display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
The animation controls dialog and animation of the H-field plots of a PEC sphere after an angular sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Illumina</id>
		<title>EM.Illumina</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Illumina"/>
				<updated>2013-06-13T18:18:03Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* General Huygens Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
== Methods Of Physical Optics ==&lt;br /&gt;
&lt;br /&gt;
=== Physical Optics As An Asymptotic Technique ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Asymptotic methods are usually valid at high frequencies as &amp;lt;math&amp;gt;k_0 R = 2\pi R/\lambda_0 &amp;gt;&amp;gt; 1&amp;lt;/math&amp;gt;, where R is the distance between the source and observation points, k&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt; is the free-space propagation constant and &amp;amp;lambda;&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt;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. The uniform theory of diffraction (UTD) is used to model the diffraction of rays at the edges of the structure.&lt;br /&gt;
&lt;br /&gt;
In the Physical Optics (PO) method, a scatterer surface is illuminated by an incident source, and it is modeled by equivalent electric and magnetic surface currents. This concept is based on the fundamental equivalence theorem of electromagnetics and the Huygens principle. The electric surface currents are denoted by '''J(r)''' and the magnetic surface currents are denoted by '''M(r)''', where '''r''' is the position vector. According to the Huygens principle, the equivalent electric and magnetic surface currents are derived from the tangential components of magnetic and electric fields on a given surface, respectively. This will be discussed in more detail in the next sections. In a classic PO analysis which involves only perfect electric conductors, only electric surface currents, related to the tangential magnetic fields, are considered.  &lt;br /&gt;
&lt;br /&gt;
=== Conventional Physical Optics (GO-PO) ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = (1+\alpha) \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -(1-\alpha) \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha = \frac{1-Z/\eta_0}{1+Z/\eta_0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi \; \Omega&amp;lt;/math&amp;gt; is the intrinsic impedance of the free space. Then, the electric and magnetic currents reduce to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = \frac{2\eta_0}{\eta_0 + Z} \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = - \frac{2Z}{\eta_0 + Z} \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Two limiting cases of an impedance surface are perfect electric conductor (PEC) and perfect magnetic conductor (PMC) surface. For a PEC surface, Z = 0,  &amp;amp;alpha; = 1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 2 \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO4.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while for a PMC surface, Z = 8,  &amp;amp;alpha; = -1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -2 \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another special case is a Huygens surface with equivalent electric and magnetic surface currents. In that case, Z =  &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, &amp;amp;alpha; = 0, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r) = \hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r) = -\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO10.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:po_manual_1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A diagram showing a scatterer lit by a source.&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0, and shadowed if '''n.k'''&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Near &amp;amp;amp; Far Fields In PO ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HM&amp;lt;/sub&amp;gt;''' 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 &amp;lt;math&amp;gt;\exp(-jk_0r)/(4\pi r)&amp;lt;/math&amp;gt; and the near fields reduce to: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; + 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; - 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt; R=|r-r'| \text{, } k_0 = \tfrac{2\pi}{\lambda_0} \text{ and } Z_0 = 1/Y_0 = \eta_0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;gt;&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{ff}(r)} = \frac{jk_0 e^{-jk_0 r}}{4\pi r} &lt;br /&gt;
\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' +&lt;br /&gt;
\mathbf{\hat{r}} \times \iint_{S_M} \mathbf{M(r')} e^{-jk_0 \mathbf{ \hat{r} \cdot r' } } ds' \right\}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \frac{1}{Z_0} \mathbf{\hat{r} \times E^{ff}(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Iterative Physical Optics (IPO) ===&lt;br /&gt;
&lt;br /&gt;
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;amp;amp; EFIE):&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{J(r)} = (1+\alpha)\mathbf{\hat{n}} \times&lt;br /&gt;
\left\lbrace &lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ H^{inc}(r) } - jk_0 \iint_{S_J} \left( 1 - \frac{j}{k_0 R} \right) &lt;br /&gt;
(\mathbf{ \hat{R} \times J(r') }) \frac{e^{-jk_0 R}}{4\pi R} \,ds' \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; -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')} -&lt;br /&gt;
\left( 1-\frac{3j}{k_0 R}-\frac{3}{(k_0 R)^2} \right) \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right]&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} \,ds'&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{M(r)} = -(1-\alpha)\mathbf{\hat{n}} \times&lt;br /&gt;
\left\lbrace &lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ E^{inc}(r) } + jk_0 \iint_{S_M} \left( 1 - \frac{j}{k_0 R} \right) &lt;br /&gt;
(\mathbf{ \hat{R} \times M(r') }) \frac{e^{-jk_0 R}}{4\pi R} \,ds' \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; -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')} -&lt;br /&gt;
\left( 1-\frac{3j}{k_0 R}-\frac{3}{(k_0 R)^2} \right) \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right]&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} \,ds'&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO9(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''R''' ='''r''' - '''r'''', R = |'''R'''|, and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ \hat{R} = \frac{R}{|R|} = \frac{r-r'}{|r-r'|} }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO11.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{J^{(0)}(r)} = (1+\alpha) \mathbf{ \hat{n} \times H^{inc}(r) } \\&lt;br /&gt;
&amp;amp; \mathbf{M^{(0)}(r)} = -(1-\alpha) \mathbf{ \hat{n} \times E^{inc}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO13.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0 is examined. In complex scatterer geometries, there are shadowed points in concave regions where '''n.k'''&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ \hat{n} \cdot \hat{R}} &amp;lt; 0 \quad \text{or} \quad \mathbf{\hat{n} \cdot (r-r')} &amp;lt; 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the subsequent iterations, the higher order PO currents are given by;&lt;br /&gt;
&lt;br /&gt;
[[File:PO14(1).png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== General Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ J(r) = \hat{n} \times H(r) } \\&lt;br /&gt;
&amp;amp; \mathbf{ M(r) = -\hat{n} \times E(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO10(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
[[File:PO16.png]]&lt;br /&gt;
&lt;br /&gt;
where the summation over index ''j'' is carried out for all the elementary cells &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; that make up the Huygens box. In EM.Cube Huygens surfaces are cubic and are discretized using a rectangular mesh. Therefore, &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; 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.     &lt;br /&gt;
&lt;br /&gt;
The far fields of the Huygens surface currents are calculated from the following relations:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{ff}(r)} = \frac{jk_0}{4\pi} \frac{e^{-jk_0 r}}{r}&lt;br /&gt;
\sum_j \iint_{\Delta_j} \left[ Z_0 \, \mathbf{ \hat{r} \times \hat{r} \times J_j(r') } + &lt;br /&gt;
\mathbf{ \hat{r} \times M_j(r') } \right] e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{H^{ff}(r)} = \frac{1}{Z_0} \mathbf{\hat{r} \times E^{ff}(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO17(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Physical Structure &amp;amp;amp; Its Discretization ==&lt;br /&gt;
&lt;br /&gt;
=== Grouping Objects By Surface Type ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
# Perfect Electric Conductor (PEC) &lt;br /&gt;
# Perfect Magnetic Conductor (PMC) &lt;br /&gt;
# Generalized Impedance Surface&lt;br /&gt;
&lt;br /&gt;
[[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. &lt;br /&gt;
&lt;br /&gt;
[[File:PO18(1).png]] [[File:PO19.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PO20.png]] [[File:PO21.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Navigation Tree and its PEC, PMC and Impedance Surface dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Creating New Objects &amp;amp;amp; Moving Them Around ===&lt;br /&gt;
&lt;br /&gt;
The objects that you draw in EM.Cube's project workspace always belong to the &amp;amp;quot;Active&amp;amp;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. &lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any material group. Right click on the highlighted selection and select '''Move To &amp;amp;gt; Physical Optics &amp;amp;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 &amp;amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. &lt;br /&gt;
&lt;br /&gt;
{{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]].}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO22(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects between different surface groups in [[PO Module]].&lt;br /&gt;
&lt;br /&gt;
=== Generating &amp;amp;amp; Customizing PO Mesh ===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in [[PO Module]] involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
The objects of your physical structure are meshed based on a specified mesh density expressed in cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The default mesh density is 20 cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. To view the PO mesh, click on the [[File:mesh_tool_tn.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' to remove its check mark or simply click the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;Show Mesh&amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''3-D Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
To set the PO mesh properties, click on the [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== More On Triangular Surface Mesh ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Forcing mesh cells to be single-sided in a PO simulation.&lt;br /&gt;
&lt;br /&gt;
'''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 &amp;amp;quot;unioned&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO25.png|400px]] [[File:PO26.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Geometry and PO mesh of an overlapping sphere and ellipsoid.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Density &amp;amp;amp; Local Mesh Control ===&lt;br /&gt;
&lt;br /&gt;
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.       &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO31.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of a PEC group.&lt;br /&gt;
&lt;br /&gt;
[[File:PO32.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Triangular surface mesh of two PEC box objects with the orange PEC group having a locked mesh of higher density.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO30.png|thumb|300px|PO Module's Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
=== Importing Short Dipoles From MoM3D Module ===&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
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 &amp;amp;quot;MoM.IDI&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO36.png|800px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO29.png|thumb|300px|PO Module's Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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'''.&lt;br /&gt;
&lt;br /&gt;
=== Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys17.png|thumb|300px|PO Module's Huygens Source dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a full-wave simulation in the EM.Cube's FDTD, MoM3D, Planar or Physical Optics Modules, you can generate Huygens surface data. According to Huygens' principle, if one knows the tangential electric and magnetic field components on a closed surface, one can determine the total electric and magnetic fields everywhere inside and outside that closed surface. Huygens surfaces are defined around a structure for recording the tangential components of electric and magnetic fields at the end of full-wave simulation of the structure. The tangential electric and magnetic fields are saved into ASCII data files as magnetic and electric currents, respectively. These current can be used as excitation for other structures. In other words, the electric and magnetic currents associated with a Huygens source radiate energy and provide the excitation for the [[PO Module]]'s physical structure.&lt;br /&gt;
&lt;br /&gt;
In order to define a Huygens source, you need to have a Huygens data file of '''.HUY''' type. This file is generated as an output data file at the end of an FDTD, MoM3D, Planar or PO simulation, if you have defined a Huygens  Surface observable in one of those projects. When you define a Huygens source, you indeed import an existing Huygens surface into the project and set it as an excitation source.&lt;br /&gt;
&lt;br /&gt;
To create a new Huygens source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Huygens Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Import Huygens Source...''' from the contextual menu.&lt;br /&gt;
* The standard Windows Open Dialog opens up. The file type is set to '''.HUY''' by default. Browse your folders to find a Huygens surface data file with a '''.HUY''' file extension. Select the file and click the '''Open''' button of the dialog to import the data.&lt;br /&gt;
* Once imported, the Huygens source appears in the Project Workspace as a wire-frame box.&lt;br /&gt;
* You can open the property dialog of a Huygens source by right clicking on its name in the Navigation Tree and selecting '''Properties...''' From this dialog you can change the color of the Huygens source box as well as its location and orientation. You can enter new values for the X, Y, Z '''Center Coordinates''' and '''Rotation Angles''' of the Huygens box. You can also view the dimensions of the box.&lt;br /&gt;
* By default, the Huygens data are imported as a single Huygens source. You can create an arbitrary array of Huygens sources for your PO project. To do so, in the &amp;amp;quot;Create Array&amp;amp;quot; section of the Huygens source dialog, enter desired values for the '''Number of Elements''' and '''Element Spacing''' along the X, Y and Z directions. You will see an array of wire-frame box appear in the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PO34.png|400px]] [[File:PO35.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: (Left) A rotated imported Huygens source, and (Right) An array of imported Huygens sources defined to excite a PEC box.&lt;br /&gt;
&lt;br /&gt;
== Running PO Simulations ==&lt;br /&gt;
&lt;br /&gt;
=== Running A Basic PO Analysis ===&lt;br /&gt;
&lt;br /&gt;
To open [[PO Module]]'s Simulation Run dialog, click the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Run...'''or use the keyboard shortcut '''Ctrl+R'''. To start the simulation click the '''Run''' button of this dialog. Once the PO simulation starts, a new dialog called '''Output Window''' opens up that reports the various stages of PO simulation, displays the running time and shows the percentage of completion for certain tasks during the PO simulation process. A prompt announces the completion of the PO simulation. At this time, EM.Cube generates a number of output data files that contain all the computed simulation data. These include current distributions, near field data, far field radiation pattern data as well bi-static or mono-static radar cross sections (RCS) if the structure is excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
[[File:PO27.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Setting The Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
Before you run a PO simulation, you can change some of the PO simulation engine settings. While in the [[PO Module]]'s '''Simulation Run Dialog''', click the '''Settings''' button next to the '''Select Engine''' dropdown list. In the Physical Optics Engine Settings Dialog, there are two options for '''Solver Type''': '''Iterative''' and '''GOPO'''. The default option is Iterative. The GOPO solver is a zero-order PO simulator that uses Geometrical Optics (GO) to determine the lit and shadow cells in the structure's mesh. For the termination of the IPO solver, there are two options: '''Convergence Error''' and '''Maximum Number of Iterations'''. The default Termination Criterion is based on convergence error, which has a default value of 0.1 and can be changed to any desired accuracy. The convergence error is defined as the L2 norm of the normalized residual error in the combined '''J/M''' current solution of the entire discretized structure from one iteration to the next. Note that for this purpose, the magnetic currents are scaled by &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; in the residual error vector.&lt;br /&gt;
&lt;br /&gt;
You can also use higher- or lower-order integration schemes for the calculation of field integrals. EM.Cube's PO simulation engine uses triangular cells for the mesh of the physical surface structures and rectangular cells for discretization of Huygens sources and surfaces. For integration of triangular cells, you have three options: '''7-Point Quadrature''', '''3-Point Quadrature''' and '''Constant'''. For integration of rectangular cells, too, you have three options: '''9-Point Quadrature''', '''4-Point Quadrature''' and '''Constant'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO37.png|thumb|300px|PO Module's Current Distribution dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, EM.Cube's PO engine generates a number of output data files that contain all the computed simulation data. The main output data are the electric and magnetic current distributions. You can easily examine the 3D color-coded intensity plots of current distributions in the project workspace. Current distributions are visualized on the surface of the PO mesh cells, and the magnitude and phase of the electric and magnetic surface currents are plotted for all the objects. In order to view these currents, you must first define a current distribution observable before running the PO simulation. To do this, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. Accept the default settings and close the dialog. A new current distribution node is added to the Navigation Tree. Unlike the [[Planar Module]], in the [[PO Module]] you can define only one current distribution node in the Navigation Tree, which covers all the objects in the project workspace. After a PO simulation is completed, new plots are added under the current distribution node of the Navigation Tree. Separate plots are produced for the magnitude and phase of each of the electric and magnetic surface current components (X, Y and Z) as well as the total current magnitude. The magnitude maps are plotted on a normalized scale with the minimum and maximum values displayed in the legend box. The phase maps are plotted in radians between -p and p. Note that sometimes the current distribution plots may hide inside smooth and curved objects, and you cannot see them. You may have to freeze such objects or switch to the mesh view mode.&lt;br /&gt;
&lt;br /&gt;
[[File:PO38.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: The current distribution plot of a PEC sphere illuminated by an obliquely incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Near Field Visualization ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO42(4).png|thumb|300px|PO Module's Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to visualize the near fields at a specific field sensor plane. Calculation of near fields is a post-processing process and may take a considerable amount of time depending on the resolution that you specify. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name. you can also change the color of the field sensor plane using the '''Color''' button.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) on the XY plane. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z '''Center Coordinates'''. You can also change these coordinates using the spin buttons.&lt;br /&gt;
* The initial size of the sensor plane is 100 × 100 project units. You can change the dimensions of the sensor plane to any desired size. You can also set the '''Number of Samples''' along the different directions. These numbers determine the resolution of near field maps. Keep in mind that large numbers of samples may result in long computation times.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree. Once a PO simulation is finished, a total of 14 plots are added to every field sensor node in the Navigation Tree. These include the magnitude and phase of all three components of '''E''' and '''H''' fields and the total electric and magnetic field values. Click on any of these items and a color-coded intensity plot of it will be visualized on the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p.To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotate view, pan, zoom, etc.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that since Physical Optics is an asymptotic method, the field sensors must be placed at adequate distances (at least one or few wavelengths) away from the scatterers to produce acceptable results.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO43.png|400px]] [[File:PO44.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Near field plots of electric and magnetic fields on a sensor plane.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing 3D Radiation Patterns ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO45.png|thumb|300px|PO Module's Radiation Pattern dialog]]&lt;br /&gt;
&lt;br /&gt;
Unlike the FDTD method, Physical Optics is an open-boundary technique. You do not need a far field box to perform near-to-far-field transformations. Nonetheless, you still need to define a far field observable if you want to plot radiation patterns. A far field can be defined by right clicking on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and selecting '''Insert New Radiation Pattern...''' from the contextual menu. The Radiation Pattern dialog opens up. You can accept most of the default settings in this dialog. The Output Settings section allows you to change the '''Angle Increment''' in the degrees, which sets the resolution of far field calculations. The default value is 5 degrees. After closing the radiation pattern dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
After a PO simulation is finished, three radiation patterns plots are added to the far field node in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the total far field defines as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed by clicking on their name in the navigation tree. They are displayed in EM.Cube's project workspace and are overlaid on the project's structure. The view of a 3D radiation pattern plots can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the pattern, you can simply hide the whole structure or parts of it. The fields are always normalized to the maximum of the total far field. A legend box appears in the upper right corner of the 3D radiation plot, which can be moved around by clicking and dragging with the left mouse button. The calculated Directivity of the radiating structure is displayed at the bottom of the legend box. It is important to note that if the PO structure is excited by an incident plane wave, the radiation patterns indeed represent the far-zone scattered field data.&lt;br /&gt;
&lt;br /&gt;
[[File:PO46.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D radiation pattern of a parabolic dish reflector excited by a short dipole at its focal point.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO47.png|thumb|300px|PO Module's RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields. EM.Cube calculates the radar cross section (RCS) of a target, which is defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Three RCS quantities are computed: the &amp;amp;theta; and &amp;amp;phi; components of the radar cross section as well as the total radar cross section, which are dented by &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. In addition, EM.Cube's [[PO Module]] calculates two types of RCS for each structure: '''Bi-Static RCS''' and '''Mono-Static RCS'''. In bi-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at all &amp;amp;theta; and &amp;amp;phi; angles. In mono-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at the echo angles 180°-&amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. It is clear that in the case of mono-static RCS, the PO simulation engine runs an internal angular sweep, whereby the values of the plane wave incidence angles &amp;amp;theta; and &amp;amp;phi; are varied over the entire intervals [0°, 180°] and [0°, 360°], respectively, and the backscatter RCS is recorded.&lt;br /&gt;
&lt;br /&gt;
To calculate RCS, first you have to define an RCS observable instead of a radiation pattern. Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog. Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button. Select the type of RCS from the two radio buttons labeled '''Bi-Static RCS''' and '''Mono-Static RCS'''. The former is the default choice. The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees. At the end of a PO simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another azimuth angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the thee RCS plots &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; are added under the far field section of the Navigation Tree. These plots are very similar to the three 3D radiation pattern plots. You can view them by clicking on their names in the navigation tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. For visualization purposes, the 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box. Keep in mind that computing the 3D mono-static RCS may take an enormous amount of computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PO48.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: RCS of a PEC sphere illuminated by an laterally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Customizing 3D Plots ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's current distribution plots are interactive. When you move the mouse over a current plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the current data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the current value at that point. In other words, you can read the plot values using mouse-over. The legend of a current plot also shows the minimum and maximum current values, the current unit (A/m on metallic traces, V/m on slot traces and A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; on embedded objects) as well as the mean current and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys25_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading current values from a current distribution map by mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic current distributions: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the current amplitude and phase using colored triangular mesh cells. The second type is a vectorial plot showing cones (or arrows) directed along the visualized current component. In the case of the total electric current distribution, the cone plot shows the overall direction of the currents at any point on the surface of objects. To set the type of a current plot, open the current distribution plot's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the current distribution before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys26_tn.png|400px]] [[File:po_phys27_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A vectorial (cone-type) current distribution plot of the PEC sphere: (Left) overlaid on mesh and (Right) with the sphere object frozen.&lt;br /&gt;
&lt;br /&gt;
Current distribution maps are displayed with some default settings and options. You can customize the individual maps (total, magnitude, phase, etc.). To do so, open the '''Output Plot Settings Dialog''' by right clicking on the specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. Two '''scale''' options are available: '''Linear''' and '''dB'''. With the '''Linear''' (default) option selected, the current value is always normalized to the maximum total current in that plane, and the normalized scale is mapped between the minimum and maximum values. If the '''dB''' option is selected, the normalized current is converted to dB scale. The plot limits (bounds) can be set individually for every current distribution plot. In the '''Limits''' section of the plot's property dialog, you see four options: '''Default''', '''User Defined''', '''95% Conf.''' and '''95% Conf.'''. Select the user defined option and enter new values for the '''Lower''' and '''Upper''' limits. The last two options are used to remove the outlier data within the 95% and 99% confidence intervals, respectively. In other words, the lower and upper limits are set to ? ± 1.96? and ? ± 2.79? , respectively, assuming a normal distribution of the data. Three color maps are offered: '''Default''', '''Rainbow''' and '''Grayscale'''. You can hide the legend box by deselecting the box labeled '''Show Legend Box'''. You can also change the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The output plot settings dialog.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's field plots are interactive. When you move the mouse over a field plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the field data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the field value at that point. In other words, you can read the plot values using mouse-over. The legend of a field plot also shows the minimum and maximum field values, the field unit (V/m for electric and A/m for magnetic) as well as the mean field and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys33_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading field values form a 3-D sensor plot using mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic fields: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the field amplitude and phase using small colored pixels whose size is depends on the total size of the sensor plane and its number of samples. The second type is a vectorial plot showing cones (or arrows) directed along the visualized field component. In the case of the total electric and magnetic fields, the cone plots show the overall direction of the fields at any point on the sensor plane. To set the type of a field plot, open the field sensor's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the field sensor before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys34_tn.png|400px]] [[File:po_phys35_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Vectorial visualization of the electric and magnetic fields: (Left) E-field, (Right) H-field.&lt;br /&gt;
&lt;br /&gt;
Similar to current distribution plots, field plots (total, magnitude, phase, etc.) are displayed with some default settings and options, which can be further customized individually. To do so, open the '''Output Plot Settings''' dialog by right clicking on a specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. The settings are identical to those of current distribution plots. Two scale options, linear and dB, are available. You can also change the lower and upper limits of the individual field plots as well as their color map.&lt;br /&gt;
&lt;br /&gt;
=== 2D Radiation Pattern &amp;amp;amp; RCS Graphs ===&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes as well as an additional user defined phi plane cut are available for plotting on 2-D graphs. There are a total of eight 2-D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or select '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by clicking and highlighting its '''ID''' in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the theta and phi angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.CUBE, the axial ratio is always defined in the LCPz or RCPz sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2-D Cartesian graphs of the axial ratio as functions of the theta angle a generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of a PO sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In this case, either quantity needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
The 2D RCS graphs can be plotted from EM.CUBE's data manager exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. At the end of a sweep simulation, EM.CUBE calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys40.png]]&lt;br /&gt;
&lt;br /&gt;
The data manager dialog showing a list of 2-D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
The 2-D radiation patterns in the XY, YZ and ZX plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== PO Sweep Simulations ===&lt;br /&gt;
&lt;br /&gt;
You can run EM.Cube's PO simulation engine in the sweep mode, whereby a parameter like frequency, plane wave incident angles or a user defined variable is varied over a specified range at predetermined samples. The output data are saved into data files for visualization and plotting. EM.Cube's [[PO Module]] currently offers three types of sweep:&lt;br /&gt;
&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
To run a PO sweep, open the '''Simulation ''''''Run Dialog''' and select one of the above sweep types from the '''Simulation Mode''' dropdown list of this dialog. If you select either frequency or angular sweep, the '''Settings''' button located next to the simulation mode dropdown list becomes enabled. If you click this button, the Frequency Settings Dialog or Angle Settings Dialog opens up, respectively. In the frequency settings dialog, you can set the start and end frequencies as well as the number of frequency samples. The start and end frequency values are initially set based on the project's center frequency and bandwidth. During a frequency sweep, as the project's frequency changes, so does the wavelength. As a result, the mesh of the structure also changes at each frequency sample. The frequency settings dialog gives you three choices regarding the mesh of the project structure during a frequency sweep:&lt;br /&gt;
&lt;br /&gt;
# Fix mesh at the highest frequency.&lt;br /&gt;
# Fix mesh at the center frequency.&lt;br /&gt;
# Re-mesh at each frequency.&lt;br /&gt;
&lt;br /&gt;
You can run an angular sweep only if your project has a plane wave excitation. In this case, you have to define a plane wave source with the default settings. During an angular sweep, either the incident theta angle or incident phi angle is varied within the specified range. The other angle remains fixed at the value that is specified in the '''Plane Wave Dialog'''. You have to select either '''Theta''' or '''Phi''' as the '''Sweep Angle''' in the Angle Settings Dialog. You also need to set the start and end angles as well as the number of angle samples.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, one or more user defined [[variables]] are varied at the same time over their specified ranges. This creates a parametric space with the total number of samples equal to the product of the number of samples for each variable. The user defined [[variables]] are defined using EM.Cube's '''[[Variables]] Dialog'''. For a description of EM.Cube [[variables]], please refer to the &amp;amp;quot;Parametric Modeling, Sweep &amp;amp;amp; [[Optimization]]&amp;amp;quot; section of EM.Cube Manual or see the &amp;amp;quot;Parametric Sweep&amp;amp;quot; sections of the FDTD or [[Planar Module]] manuals.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys52.png]] [[File:po_phys54.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Frequency Settings and Angle Settings dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Animation Of PO Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a frequency sweep, angular sweep or parametric sweep simulation in EM.Cube's [[PO Module]], the output data are saved for visualization and plotting. In particular, if you have defined current distribution, field sensor or far field observables in your project, multiple 3D plots, as many as the total number of sweep samples, are added to the Navigation Tree. In a single simulation run, a total of 14 current distribution plots, 14 field sensor plot and 3 radiation pattern plots or 3 RCS plots are generated under every observable node defined in the Navigation Tree. However, after a sweep simulation, only one plot is saved for each sweep sample. This is done to keep the resulting plots manageable. Thus, only the total radiation pattern or total RCS are saved for each sweep sample. In the case of a current distribution observable, you have the choice to save either the magnitude of total electric current distribution '''|J&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''or the magnitude of total magnetic current distribution '''|M&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''. To change this, open the '''Current Distribution Dialog''' by right clicking on the observable's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Current Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''Electric Current (J)''' or '''Magnetic Current (M)'''. Similarly, in the case of a field sensor observable, you have the choice to save either the total E-field magnitude plot or the total H-field magnitude plot. To change this, open the '''Field Sensor Dialog''' by right clicking on a field sensor's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Field Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''E-Field''' or '''H-Field'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO39.png]] [[File:PO40.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the current or field types for sweep data visualization in [[PO Module]]'s Current Distribution and Field Sensor dialogs.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.CUBE consists of consecutive display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
The animation controls dialog and animation of the H-field plots of a PEC sphere after an angular sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Illumina</id>
		<title>EM.Illumina</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Illumina"/>
				<updated>2013-06-13T18:10:49Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Iterative Physical Optics (IPO) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
== Methods Of Physical Optics ==&lt;br /&gt;
&lt;br /&gt;
=== Physical Optics As An Asymptotic Technique ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Asymptotic methods are usually valid at high frequencies as &amp;lt;math&amp;gt;k_0 R = 2\pi R/\lambda_0 &amp;gt;&amp;gt; 1&amp;lt;/math&amp;gt;, where R is the distance between the source and observation points, k&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt; is the free-space propagation constant and &amp;amp;lambda;&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt;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. The uniform theory of diffraction (UTD) is used to model the diffraction of rays at the edges of the structure.&lt;br /&gt;
&lt;br /&gt;
In the Physical Optics (PO) method, a scatterer surface is illuminated by an incident source, and it is modeled by equivalent electric and magnetic surface currents. This concept is based on the fundamental equivalence theorem of electromagnetics and the Huygens principle. The electric surface currents are denoted by '''J(r)''' and the magnetic surface currents are denoted by '''M(r)''', where '''r''' is the position vector. According to the Huygens principle, the equivalent electric and magnetic surface currents are derived from the tangential components of magnetic and electric fields on a given surface, respectively. This will be discussed in more detail in the next sections. In a classic PO analysis which involves only perfect electric conductors, only electric surface currents, related to the tangential magnetic fields, are considered.  &lt;br /&gt;
&lt;br /&gt;
=== Conventional Physical Optics (GO-PO) ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = (1+\alpha) \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -(1-\alpha) \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha = \frac{1-Z/\eta_0}{1+Z/\eta_0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi \; \Omega&amp;lt;/math&amp;gt; is the intrinsic impedance of the free space. Then, the electric and magnetic currents reduce to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = \frac{2\eta_0}{\eta_0 + Z} \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = - \frac{2Z}{\eta_0 + Z} \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Two limiting cases of an impedance surface are perfect electric conductor (PEC) and perfect magnetic conductor (PMC) surface. For a PEC surface, Z = 0,  &amp;amp;alpha; = 1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 2 \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO4.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while for a PMC surface, Z = 8,  &amp;amp;alpha; = -1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -2 \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another special case is a Huygens surface with equivalent electric and magnetic surface currents. In that case, Z =  &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, &amp;amp;alpha; = 0, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r) = \hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r) = -\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO10.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:po_manual_1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A diagram showing a scatterer lit by a source.&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0, and shadowed if '''n.k'''&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Near &amp;amp;amp; Far Fields In PO ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HM&amp;lt;/sub&amp;gt;''' 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 &amp;lt;math&amp;gt;\exp(-jk_0r)/(4\pi r)&amp;lt;/math&amp;gt; and the near fields reduce to: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; + 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; - 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt; R=|r-r'| \text{, } k_0 = \tfrac{2\pi}{\lambda_0} \text{ and } Z_0 = 1/Y_0 = \eta_0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;gt;&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{ff}(r)} = \frac{jk_0 e^{-jk_0 r}}{4\pi r} &lt;br /&gt;
\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' +&lt;br /&gt;
\mathbf{\hat{r}} \times \iint_{S_M} \mathbf{M(r')} e^{-jk_0 \mathbf{ \hat{r} \cdot r' } } ds' \right\}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \frac{1}{Z_0} \mathbf{\hat{r} \times E^{ff}(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Iterative Physical Optics (IPO) ===&lt;br /&gt;
&lt;br /&gt;
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;amp;amp; EFIE):&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{J(r)} = (1+\alpha)\mathbf{\hat{n}} \times&lt;br /&gt;
\left\lbrace &lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ H^{inc}(r) } - jk_0 \iint_{S_J} \left( 1 - \frac{j}{k_0 R} \right) &lt;br /&gt;
(\mathbf{ \hat{R} \times J(r') }) \frac{e^{-jk_0 R}}{4\pi R} \,ds' \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; -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')} -&lt;br /&gt;
\left( 1-\frac{3j}{k_0 R}-\frac{3}{(k_0 R)^2} \right) \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right]&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} \,ds'&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{M(r)} = -(1-\alpha)\mathbf{\hat{n}} \times&lt;br /&gt;
\left\lbrace &lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ E^{inc}(r) } + jk_0 \iint_{S_M} \left( 1 - \frac{j}{k_0 R} \right) &lt;br /&gt;
(\mathbf{ \hat{R} \times M(r') }) \frac{e^{-jk_0 R}}{4\pi R} \,ds' \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; -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')} -&lt;br /&gt;
\left( 1-\frac{3j}{k_0 R}-\frac{3}{(k_0 R)^2} \right) \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right]&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} \,ds'&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO9(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''R''' ='''r''' - '''r'''', R = |'''R'''|, and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ \hat{R} = \frac{R}{|R|} = \frac{r-r'}{|r-r'|} }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO11.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{J^{(0)}(r)} = (1+\alpha) \mathbf{ \hat{n} \times H^{inc}(r) } \\&lt;br /&gt;
&amp;amp; \mathbf{M^{(0)}(r)} = -(1-\alpha) \mathbf{ \hat{n} \times E^{inc}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO13.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0 is examined. In complex scatterer geometries, there are shadowed points in concave regions where '''n.k'''&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ \hat{n} \cdot \hat{R}} &amp;lt; 0 \quad \text{or} \quad \mathbf{\hat{n} \cdot (r-r')} &amp;lt; 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the subsequent iterations, the higher order PO currents are given by;&lt;br /&gt;
&lt;br /&gt;
[[File:PO14(1).png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== General Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
[[File:PO10(1).png]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
[[File:PO16.png]]&lt;br /&gt;
&lt;br /&gt;
where the summation over index ''j'' is carried out for all the elementary cells &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; that make up the Huygens box. In EM.Cube Huygens surfaces are cubic and are discretized using a rectangular mesh. Therefore, &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; 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.     &lt;br /&gt;
&lt;br /&gt;
The far fields of the Huygens surface currents are calculated from the following relations:&lt;br /&gt;
&lt;br /&gt;
[[File:PO17(1).png]]&lt;br /&gt;
&lt;br /&gt;
== Physical Structure &amp;amp;amp; Its Discretization ==&lt;br /&gt;
&lt;br /&gt;
=== Grouping Objects By Surface Type ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
# Perfect Electric Conductor (PEC) &lt;br /&gt;
# Perfect Magnetic Conductor (PMC) &lt;br /&gt;
# Generalized Impedance Surface&lt;br /&gt;
&lt;br /&gt;
[[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. &lt;br /&gt;
&lt;br /&gt;
[[File:PO18(1).png]] [[File:PO19.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PO20.png]] [[File:PO21.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Navigation Tree and its PEC, PMC and Impedance Surface dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Creating New Objects &amp;amp;amp; Moving Them Around ===&lt;br /&gt;
&lt;br /&gt;
The objects that you draw in EM.Cube's project workspace always belong to the &amp;amp;quot;Active&amp;amp;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. &lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any material group. Right click on the highlighted selection and select '''Move To &amp;amp;gt; Physical Optics &amp;amp;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 &amp;amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. &lt;br /&gt;
&lt;br /&gt;
{{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]].}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO22(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects between different surface groups in [[PO Module]].&lt;br /&gt;
&lt;br /&gt;
=== Generating &amp;amp;amp; Customizing PO Mesh ===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in [[PO Module]] involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
The objects of your physical structure are meshed based on a specified mesh density expressed in cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The default mesh density is 20 cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. To view the PO mesh, click on the [[File:mesh_tool_tn.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' to remove its check mark or simply click the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;Show Mesh&amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''3-D Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
To set the PO mesh properties, click on the [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== More On Triangular Surface Mesh ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Forcing mesh cells to be single-sided in a PO simulation.&lt;br /&gt;
&lt;br /&gt;
'''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 &amp;amp;quot;unioned&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO25.png|400px]] [[File:PO26.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Geometry and PO mesh of an overlapping sphere and ellipsoid.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Density &amp;amp;amp; Local Mesh Control ===&lt;br /&gt;
&lt;br /&gt;
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.       &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO31.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of a PEC group.&lt;br /&gt;
&lt;br /&gt;
[[File:PO32.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Triangular surface mesh of two PEC box objects with the orange PEC group having a locked mesh of higher density.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO30.png|thumb|300px|PO Module's Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
=== Importing Short Dipoles From MoM3D Module ===&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
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 &amp;amp;quot;MoM.IDI&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO36.png|800px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO29.png|thumb|300px|PO Module's Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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'''.&lt;br /&gt;
&lt;br /&gt;
=== Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys17.png|thumb|300px|PO Module's Huygens Source dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a full-wave simulation in the EM.Cube's FDTD, MoM3D, Planar or Physical Optics Modules, you can generate Huygens surface data. According to Huygens' principle, if one knows the tangential electric and magnetic field components on a closed surface, one can determine the total electric and magnetic fields everywhere inside and outside that closed surface. Huygens surfaces are defined around a structure for recording the tangential components of electric and magnetic fields at the end of full-wave simulation of the structure. The tangential electric and magnetic fields are saved into ASCII data files as magnetic and electric currents, respectively. These current can be used as excitation for other structures. In other words, the electric and magnetic currents associated with a Huygens source radiate energy and provide the excitation for the [[PO Module]]'s physical structure.&lt;br /&gt;
&lt;br /&gt;
In order to define a Huygens source, you need to have a Huygens data file of '''.HUY''' type. This file is generated as an output data file at the end of an FDTD, MoM3D, Planar or PO simulation, if you have defined a Huygens  Surface observable in one of those projects. When you define a Huygens source, you indeed import an existing Huygens surface into the project and set it as an excitation source.&lt;br /&gt;
&lt;br /&gt;
To create a new Huygens source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Huygens Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Import Huygens Source...''' from the contextual menu.&lt;br /&gt;
* The standard Windows Open Dialog opens up. The file type is set to '''.HUY''' by default. Browse your folders to find a Huygens surface data file with a '''.HUY''' file extension. Select the file and click the '''Open''' button of the dialog to import the data.&lt;br /&gt;
* Once imported, the Huygens source appears in the Project Workspace as a wire-frame box.&lt;br /&gt;
* You can open the property dialog of a Huygens source by right clicking on its name in the Navigation Tree and selecting '''Properties...''' From this dialog you can change the color of the Huygens source box as well as its location and orientation. You can enter new values for the X, Y, Z '''Center Coordinates''' and '''Rotation Angles''' of the Huygens box. You can also view the dimensions of the box.&lt;br /&gt;
* By default, the Huygens data are imported as a single Huygens source. You can create an arbitrary array of Huygens sources for your PO project. To do so, in the &amp;amp;quot;Create Array&amp;amp;quot; section of the Huygens source dialog, enter desired values for the '''Number of Elements''' and '''Element Spacing''' along the X, Y and Z directions. You will see an array of wire-frame box appear in the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PO34.png|400px]] [[File:PO35.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: (Left) A rotated imported Huygens source, and (Right) An array of imported Huygens sources defined to excite a PEC box.&lt;br /&gt;
&lt;br /&gt;
== Running PO Simulations ==&lt;br /&gt;
&lt;br /&gt;
=== Running A Basic PO Analysis ===&lt;br /&gt;
&lt;br /&gt;
To open [[PO Module]]'s Simulation Run dialog, click the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Run...'''or use the keyboard shortcut '''Ctrl+R'''. To start the simulation click the '''Run''' button of this dialog. Once the PO simulation starts, a new dialog called '''Output Window''' opens up that reports the various stages of PO simulation, displays the running time and shows the percentage of completion for certain tasks during the PO simulation process. A prompt announces the completion of the PO simulation. At this time, EM.Cube generates a number of output data files that contain all the computed simulation data. These include current distributions, near field data, far field radiation pattern data as well bi-static or mono-static radar cross sections (RCS) if the structure is excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
[[File:PO27.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Setting The Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
Before you run a PO simulation, you can change some of the PO simulation engine settings. While in the [[PO Module]]'s '''Simulation Run Dialog''', click the '''Settings''' button next to the '''Select Engine''' dropdown list. In the Physical Optics Engine Settings Dialog, there are two options for '''Solver Type''': '''Iterative''' and '''GOPO'''. The default option is Iterative. The GOPO solver is a zero-order PO simulator that uses Geometrical Optics (GO) to determine the lit and shadow cells in the structure's mesh. For the termination of the IPO solver, there are two options: '''Convergence Error''' and '''Maximum Number of Iterations'''. The default Termination Criterion is based on convergence error, which has a default value of 0.1 and can be changed to any desired accuracy. The convergence error is defined as the L2 norm of the normalized residual error in the combined '''J/M''' current solution of the entire discretized structure from one iteration to the next. Note that for this purpose, the magnetic currents are scaled by &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; in the residual error vector.&lt;br /&gt;
&lt;br /&gt;
You can also use higher- or lower-order integration schemes for the calculation of field integrals. EM.Cube's PO simulation engine uses triangular cells for the mesh of the physical surface structures and rectangular cells for discretization of Huygens sources and surfaces. For integration of triangular cells, you have three options: '''7-Point Quadrature''', '''3-Point Quadrature''' and '''Constant'''. For integration of rectangular cells, too, you have three options: '''9-Point Quadrature''', '''4-Point Quadrature''' and '''Constant'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO37.png|thumb|300px|PO Module's Current Distribution dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, EM.Cube's PO engine generates a number of output data files that contain all the computed simulation data. The main output data are the electric and magnetic current distributions. You can easily examine the 3D color-coded intensity plots of current distributions in the project workspace. Current distributions are visualized on the surface of the PO mesh cells, and the magnitude and phase of the electric and magnetic surface currents are plotted for all the objects. In order to view these currents, you must first define a current distribution observable before running the PO simulation. To do this, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. Accept the default settings and close the dialog. A new current distribution node is added to the Navigation Tree. Unlike the [[Planar Module]], in the [[PO Module]] you can define only one current distribution node in the Navigation Tree, which covers all the objects in the project workspace. After a PO simulation is completed, new plots are added under the current distribution node of the Navigation Tree. Separate plots are produced for the magnitude and phase of each of the electric and magnetic surface current components (X, Y and Z) as well as the total current magnitude. The magnitude maps are plotted on a normalized scale with the minimum and maximum values displayed in the legend box. The phase maps are plotted in radians between -p and p. Note that sometimes the current distribution plots may hide inside smooth and curved objects, and you cannot see them. You may have to freeze such objects or switch to the mesh view mode.&lt;br /&gt;
&lt;br /&gt;
[[File:PO38.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: The current distribution plot of a PEC sphere illuminated by an obliquely incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Near Field Visualization ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO42(4).png|thumb|300px|PO Module's Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to visualize the near fields at a specific field sensor plane. Calculation of near fields is a post-processing process and may take a considerable amount of time depending on the resolution that you specify. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name. you can also change the color of the field sensor plane using the '''Color''' button.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) on the XY plane. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z '''Center Coordinates'''. You can also change these coordinates using the spin buttons.&lt;br /&gt;
* The initial size of the sensor plane is 100 × 100 project units. You can change the dimensions of the sensor plane to any desired size. You can also set the '''Number of Samples''' along the different directions. These numbers determine the resolution of near field maps. Keep in mind that large numbers of samples may result in long computation times.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree. Once a PO simulation is finished, a total of 14 plots are added to every field sensor node in the Navigation Tree. These include the magnitude and phase of all three components of '''E''' and '''H''' fields and the total electric and magnetic field values. Click on any of these items and a color-coded intensity plot of it will be visualized on the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p.To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotate view, pan, zoom, etc.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that since Physical Optics is an asymptotic method, the field sensors must be placed at adequate distances (at least one or few wavelengths) away from the scatterers to produce acceptable results.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO43.png|400px]] [[File:PO44.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Near field plots of electric and magnetic fields on a sensor plane.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing 3D Radiation Patterns ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO45.png|thumb|300px|PO Module's Radiation Pattern dialog]]&lt;br /&gt;
&lt;br /&gt;
Unlike the FDTD method, Physical Optics is an open-boundary technique. You do not need a far field box to perform near-to-far-field transformations. Nonetheless, you still need to define a far field observable if you want to plot radiation patterns. A far field can be defined by right clicking on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and selecting '''Insert New Radiation Pattern...''' from the contextual menu. The Radiation Pattern dialog opens up. You can accept most of the default settings in this dialog. The Output Settings section allows you to change the '''Angle Increment''' in the degrees, which sets the resolution of far field calculations. The default value is 5 degrees. After closing the radiation pattern dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
After a PO simulation is finished, three radiation patterns plots are added to the far field node in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the total far field defines as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed by clicking on their name in the navigation tree. They are displayed in EM.Cube's project workspace and are overlaid on the project's structure. The view of a 3D radiation pattern plots can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the pattern, you can simply hide the whole structure or parts of it. The fields are always normalized to the maximum of the total far field. A legend box appears in the upper right corner of the 3D radiation plot, which can be moved around by clicking and dragging with the left mouse button. The calculated Directivity of the radiating structure is displayed at the bottom of the legend box. It is important to note that if the PO structure is excited by an incident plane wave, the radiation patterns indeed represent the far-zone scattered field data.&lt;br /&gt;
&lt;br /&gt;
[[File:PO46.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D radiation pattern of a parabolic dish reflector excited by a short dipole at its focal point.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO47.png|thumb|300px|PO Module's RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields. EM.Cube calculates the radar cross section (RCS) of a target, which is defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Three RCS quantities are computed: the &amp;amp;theta; and &amp;amp;phi; components of the radar cross section as well as the total radar cross section, which are dented by &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. In addition, EM.Cube's [[PO Module]] calculates two types of RCS for each structure: '''Bi-Static RCS''' and '''Mono-Static RCS'''. In bi-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at all &amp;amp;theta; and &amp;amp;phi; angles. In mono-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at the echo angles 180°-&amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. It is clear that in the case of mono-static RCS, the PO simulation engine runs an internal angular sweep, whereby the values of the plane wave incidence angles &amp;amp;theta; and &amp;amp;phi; are varied over the entire intervals [0°, 180°] and [0°, 360°], respectively, and the backscatter RCS is recorded.&lt;br /&gt;
&lt;br /&gt;
To calculate RCS, first you have to define an RCS observable instead of a radiation pattern. Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog. Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button. Select the type of RCS from the two radio buttons labeled '''Bi-Static RCS''' and '''Mono-Static RCS'''. The former is the default choice. The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees. At the end of a PO simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another azimuth angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the thee RCS plots &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; are added under the far field section of the Navigation Tree. These plots are very similar to the three 3D radiation pattern plots. You can view them by clicking on their names in the navigation tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. For visualization purposes, the 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box. Keep in mind that computing the 3D mono-static RCS may take an enormous amount of computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PO48.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: RCS of a PEC sphere illuminated by an laterally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Customizing 3D Plots ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's current distribution plots are interactive. When you move the mouse over a current plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the current data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the current value at that point. In other words, you can read the plot values using mouse-over. The legend of a current plot also shows the minimum and maximum current values, the current unit (A/m on metallic traces, V/m on slot traces and A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; on embedded objects) as well as the mean current and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys25_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading current values from a current distribution map by mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic current distributions: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the current amplitude and phase using colored triangular mesh cells. The second type is a vectorial plot showing cones (or arrows) directed along the visualized current component. In the case of the total electric current distribution, the cone plot shows the overall direction of the currents at any point on the surface of objects. To set the type of a current plot, open the current distribution plot's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the current distribution before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys26_tn.png|400px]] [[File:po_phys27_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A vectorial (cone-type) current distribution plot of the PEC sphere: (Left) overlaid on mesh and (Right) with the sphere object frozen.&lt;br /&gt;
&lt;br /&gt;
Current distribution maps are displayed with some default settings and options. You can customize the individual maps (total, magnitude, phase, etc.). To do so, open the '''Output Plot Settings Dialog''' by right clicking on the specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. Two '''scale''' options are available: '''Linear''' and '''dB'''. With the '''Linear''' (default) option selected, the current value is always normalized to the maximum total current in that plane, and the normalized scale is mapped between the minimum and maximum values. If the '''dB''' option is selected, the normalized current is converted to dB scale. The plot limits (bounds) can be set individually for every current distribution plot. In the '''Limits''' section of the plot's property dialog, you see four options: '''Default''', '''User Defined''', '''95% Conf.''' and '''95% Conf.'''. Select the user defined option and enter new values for the '''Lower''' and '''Upper''' limits. The last two options are used to remove the outlier data within the 95% and 99% confidence intervals, respectively. In other words, the lower and upper limits are set to ? ± 1.96? and ? ± 2.79? , respectively, assuming a normal distribution of the data. Three color maps are offered: '''Default''', '''Rainbow''' and '''Grayscale'''. You can hide the legend box by deselecting the box labeled '''Show Legend Box'''. You can also change the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The output plot settings dialog.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's field plots are interactive. When you move the mouse over a field plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the field data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the field value at that point. In other words, you can read the plot values using mouse-over. The legend of a field plot also shows the minimum and maximum field values, the field unit (V/m for electric and A/m for magnetic) as well as the mean field and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys33_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading field values form a 3-D sensor plot using mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic fields: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the field amplitude and phase using small colored pixels whose size is depends on the total size of the sensor plane and its number of samples. The second type is a vectorial plot showing cones (or arrows) directed along the visualized field component. In the case of the total electric and magnetic fields, the cone plots show the overall direction of the fields at any point on the sensor plane. To set the type of a field plot, open the field sensor's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the field sensor before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys34_tn.png|400px]] [[File:po_phys35_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Vectorial visualization of the electric and magnetic fields: (Left) E-field, (Right) H-field.&lt;br /&gt;
&lt;br /&gt;
Similar to current distribution plots, field plots (total, magnitude, phase, etc.) are displayed with some default settings and options, which can be further customized individually. To do so, open the '''Output Plot Settings''' dialog by right clicking on a specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. The settings are identical to those of current distribution plots. Two scale options, linear and dB, are available. You can also change the lower and upper limits of the individual field plots as well as their color map.&lt;br /&gt;
&lt;br /&gt;
=== 2D Radiation Pattern &amp;amp;amp; RCS Graphs ===&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes as well as an additional user defined phi plane cut are available for plotting on 2-D graphs. There are a total of eight 2-D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or select '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by clicking and highlighting its '''ID''' in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the theta and phi angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.CUBE, the axial ratio is always defined in the LCPz or RCPz sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2-D Cartesian graphs of the axial ratio as functions of the theta angle a generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of a PO sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In this case, either quantity needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
The 2D RCS graphs can be plotted from EM.CUBE's data manager exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. At the end of a sweep simulation, EM.CUBE calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys40.png]]&lt;br /&gt;
&lt;br /&gt;
The data manager dialog showing a list of 2-D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
The 2-D radiation patterns in the XY, YZ and ZX plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== PO Sweep Simulations ===&lt;br /&gt;
&lt;br /&gt;
You can run EM.Cube's PO simulation engine in the sweep mode, whereby a parameter like frequency, plane wave incident angles or a user defined variable is varied over a specified range at predetermined samples. The output data are saved into data files for visualization and plotting. EM.Cube's [[PO Module]] currently offers three types of sweep:&lt;br /&gt;
&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
To run a PO sweep, open the '''Simulation ''''''Run Dialog''' and select one of the above sweep types from the '''Simulation Mode''' dropdown list of this dialog. If you select either frequency or angular sweep, the '''Settings''' button located next to the simulation mode dropdown list becomes enabled. If you click this button, the Frequency Settings Dialog or Angle Settings Dialog opens up, respectively. In the frequency settings dialog, you can set the start and end frequencies as well as the number of frequency samples. The start and end frequency values are initially set based on the project's center frequency and bandwidth. During a frequency sweep, as the project's frequency changes, so does the wavelength. As a result, the mesh of the structure also changes at each frequency sample. The frequency settings dialog gives you three choices regarding the mesh of the project structure during a frequency sweep:&lt;br /&gt;
&lt;br /&gt;
# Fix mesh at the highest frequency.&lt;br /&gt;
# Fix mesh at the center frequency.&lt;br /&gt;
# Re-mesh at each frequency.&lt;br /&gt;
&lt;br /&gt;
You can run an angular sweep only if your project has a plane wave excitation. In this case, you have to define a plane wave source with the default settings. During an angular sweep, either the incident theta angle or incident phi angle is varied within the specified range. The other angle remains fixed at the value that is specified in the '''Plane Wave Dialog'''. You have to select either '''Theta''' or '''Phi''' as the '''Sweep Angle''' in the Angle Settings Dialog. You also need to set the start and end angles as well as the number of angle samples.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, one or more user defined [[variables]] are varied at the same time over their specified ranges. This creates a parametric space with the total number of samples equal to the product of the number of samples for each variable. The user defined [[variables]] are defined using EM.Cube's '''[[Variables]] Dialog'''. For a description of EM.Cube [[variables]], please refer to the &amp;amp;quot;Parametric Modeling, Sweep &amp;amp;amp; [[Optimization]]&amp;amp;quot; section of EM.Cube Manual or see the &amp;amp;quot;Parametric Sweep&amp;amp;quot; sections of the FDTD or [[Planar Module]] manuals.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys52.png]] [[File:po_phys54.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Frequency Settings and Angle Settings dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Animation Of PO Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a frequency sweep, angular sweep or parametric sweep simulation in EM.Cube's [[PO Module]], the output data are saved for visualization and plotting. In particular, if you have defined current distribution, field sensor or far field observables in your project, multiple 3D plots, as many as the total number of sweep samples, are added to the Navigation Tree. In a single simulation run, a total of 14 current distribution plots, 14 field sensor plot and 3 radiation pattern plots or 3 RCS plots are generated under every observable node defined in the Navigation Tree. However, after a sweep simulation, only one plot is saved for each sweep sample. This is done to keep the resulting plots manageable. Thus, only the total radiation pattern or total RCS are saved for each sweep sample. In the case of a current distribution observable, you have the choice to save either the magnitude of total electric current distribution '''|J&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''or the magnitude of total magnetic current distribution '''|M&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''. To change this, open the '''Current Distribution Dialog''' by right clicking on the observable's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Current Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''Electric Current (J)''' or '''Magnetic Current (M)'''. Similarly, in the case of a field sensor observable, you have the choice to save either the total E-field magnitude plot or the total H-field magnitude plot. To change this, open the '''Field Sensor Dialog''' by right clicking on a field sensor's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Field Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''E-Field''' or '''H-Field'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO39.png]] [[File:PO40.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the current or field types for sweep data visualization in [[PO Module]]'s Current Distribution and Field Sensor dialogs.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.CUBE consists of consecutive display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
The animation controls dialog and animation of the H-field plots of a PEC sphere after an angular sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Illumina</id>
		<title>EM.Illumina</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Illumina"/>
				<updated>2013-06-13T18:10:32Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Iterative Physical Optics (IPO) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
== Methods Of Physical Optics ==&lt;br /&gt;
&lt;br /&gt;
=== Physical Optics As An Asymptotic Technique ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Asymptotic methods are usually valid at high frequencies as &amp;lt;math&amp;gt;k_0 R = 2\pi R/\lambda_0 &amp;gt;&amp;gt; 1&amp;lt;/math&amp;gt;, where R is the distance between the source and observation points, k&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt; is the free-space propagation constant and &amp;amp;lambda;&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt;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. The uniform theory of diffraction (UTD) is used to model the diffraction of rays at the edges of the structure.&lt;br /&gt;
&lt;br /&gt;
In the Physical Optics (PO) method, a scatterer surface is illuminated by an incident source, and it is modeled by equivalent electric and magnetic surface currents. This concept is based on the fundamental equivalence theorem of electromagnetics and the Huygens principle. The electric surface currents are denoted by '''J(r)''' and the magnetic surface currents are denoted by '''M(r)''', where '''r''' is the position vector. According to the Huygens principle, the equivalent electric and magnetic surface currents are derived from the tangential components of magnetic and electric fields on a given surface, respectively. This will be discussed in more detail in the next sections. In a classic PO analysis which involves only perfect electric conductors, only electric surface currents, related to the tangential magnetic fields, are considered.  &lt;br /&gt;
&lt;br /&gt;
=== Conventional Physical Optics (GO-PO) ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = (1+\alpha) \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -(1-\alpha) \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha = \frac{1-Z/\eta_0}{1+Z/\eta_0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi \; \Omega&amp;lt;/math&amp;gt; is the intrinsic impedance of the free space. Then, the electric and magnetic currents reduce to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = \frac{2\eta_0}{\eta_0 + Z} \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = - \frac{2Z}{\eta_0 + Z} \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Two limiting cases of an impedance surface are perfect electric conductor (PEC) and perfect magnetic conductor (PMC) surface. For a PEC surface, Z = 0,  &amp;amp;alpha; = 1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 2 \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO4.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while for a PMC surface, Z = 8,  &amp;amp;alpha; = -1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -2 \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another special case is a Huygens surface with equivalent electric and magnetic surface currents. In that case, Z =  &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, &amp;amp;alpha; = 0, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r) = \hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r) = -\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO10.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:po_manual_1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A diagram showing a scatterer lit by a source.&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0, and shadowed if '''n.k'''&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Near &amp;amp;amp; Far Fields In PO ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HM&amp;lt;/sub&amp;gt;''' 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 &amp;lt;math&amp;gt;\exp(-jk_0r)/(4\pi r)&amp;lt;/math&amp;gt; and the near fields reduce to: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; + 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; - 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt; R=|r-r'| \text{, } k_0 = \tfrac{2\pi}{\lambda_0} \text{ and } Z_0 = 1/Y_0 = \eta_0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;gt;&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{ff}(r)} = \frac{jk_0 e^{-jk_0 r}}{4\pi r} &lt;br /&gt;
\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' +&lt;br /&gt;
\mathbf{\hat{r}} \times \iint_{S_M} \mathbf{M(r')} e^{-jk_0 \mathbf{ \hat{r} \cdot r' } } ds' \right\}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \frac{1}{Z_0} \mathbf{\hat{r} \times E^{ff}(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Iterative Physical Optics (IPO) ===&lt;br /&gt;
&lt;br /&gt;
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;amp;amp; EFIE):&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{J(r)} = (1+\alpha)\mathbf{\hat{n}} \times&lt;br /&gt;
\left\lbrace &lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ H^{inc}(r) } - jk_0 \iint_{S_J} \left( 1 - \frac{j}{k_0 R} \right) &lt;br /&gt;
(\mathbf{ \hat{R} \times J(r') }) \frac{e^{-jk_0 R}}{4\pi R} \,ds' \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; -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')} -&lt;br /&gt;
\left( 1-\frac{3j}{k_0 R}-\frac{3}{(k_0 R)^2} \right) \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right]&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} \,ds'&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{M(r)} = -(1-\alpha)\mathbf{\hat{n}} \times&lt;br /&gt;
\left\lbrace &lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{ E^{inc}(r) } + jk_0 \iint_{S_M} \left( 1 - \frac{j}{k_0 R} \right) &lt;br /&gt;
(\mathbf{ \hat{R} \times M(r') }) \frac{e^{-jk_0 R}}{4\pi R} \,ds' \\&lt;br /&gt;
&lt;br /&gt;
&amp;amp; -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')} -&lt;br /&gt;
\left( 1-\frac{3j}{k_0 R}-\frac{3}{(k_0 R)^2} \right) \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right]&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} \,ds'&lt;br /&gt;
\end{align}&lt;br /&gt;
\right\rbrace&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO9(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''R''' ='''r''' - '''r'''', R = |'''R'''|, and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ \hat{R} = \frac{R}{|R|} = \frac{r-r'}{|r-r'|} }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO11.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{J^{(0)}(r)} = (1+\alpha) \mathbf{ \hat{n} \times H^{inc}(r) } \\&lt;br /&gt;
\mathbf{M^{(0)}(r)} = -(1-\alpha) \mathbf{ \hat{n} \times E^{inc}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO13.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0 is examined. In complex scatterer geometries, there are shadowed points in concave regions where '''n.k'''&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ \hat{n} \cdot \hat{R}} &amp;lt; 0 \quad \text{or} \quad \mathbf{\hat{n} \cdot (r-r')} &amp;lt; 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO12.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the subsequent iterations, the higher order PO currents are given by;&lt;br /&gt;
&lt;br /&gt;
[[File:PO14(1).png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== General Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
[[File:PO10(1).png]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
[[File:PO16.png]]&lt;br /&gt;
&lt;br /&gt;
where the summation over index ''j'' is carried out for all the elementary cells &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; that make up the Huygens box. In EM.Cube Huygens surfaces are cubic and are discretized using a rectangular mesh. Therefore, &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; 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.     &lt;br /&gt;
&lt;br /&gt;
The far fields of the Huygens surface currents are calculated from the following relations:&lt;br /&gt;
&lt;br /&gt;
[[File:PO17(1).png]]&lt;br /&gt;
&lt;br /&gt;
== Physical Structure &amp;amp;amp; Its Discretization ==&lt;br /&gt;
&lt;br /&gt;
=== Grouping Objects By Surface Type ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
# Perfect Electric Conductor (PEC) &lt;br /&gt;
# Perfect Magnetic Conductor (PMC) &lt;br /&gt;
# Generalized Impedance Surface&lt;br /&gt;
&lt;br /&gt;
[[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. &lt;br /&gt;
&lt;br /&gt;
[[File:PO18(1).png]] [[File:PO19.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PO20.png]] [[File:PO21.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Navigation Tree and its PEC, PMC and Impedance Surface dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Creating New Objects &amp;amp;amp; Moving Them Around ===&lt;br /&gt;
&lt;br /&gt;
The objects that you draw in EM.Cube's project workspace always belong to the &amp;amp;quot;Active&amp;amp;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. &lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any material group. Right click on the highlighted selection and select '''Move To &amp;amp;gt; Physical Optics &amp;amp;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 &amp;amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. &lt;br /&gt;
&lt;br /&gt;
{{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]].}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO22(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects between different surface groups in [[PO Module]].&lt;br /&gt;
&lt;br /&gt;
=== Generating &amp;amp;amp; Customizing PO Mesh ===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in [[PO Module]] involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
The objects of your physical structure are meshed based on a specified mesh density expressed in cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The default mesh density is 20 cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. To view the PO mesh, click on the [[File:mesh_tool_tn.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' to remove its check mark or simply click the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;Show Mesh&amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''3-D Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
To set the PO mesh properties, click on the [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== More On Triangular Surface Mesh ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Forcing mesh cells to be single-sided in a PO simulation.&lt;br /&gt;
&lt;br /&gt;
'''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 &amp;amp;quot;unioned&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO25.png|400px]] [[File:PO26.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Geometry and PO mesh of an overlapping sphere and ellipsoid.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Density &amp;amp;amp; Local Mesh Control ===&lt;br /&gt;
&lt;br /&gt;
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.       &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO31.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of a PEC group.&lt;br /&gt;
&lt;br /&gt;
[[File:PO32.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Triangular surface mesh of two PEC box objects with the orange PEC group having a locked mesh of higher density.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO30.png|thumb|300px|PO Module's Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
=== Importing Short Dipoles From MoM3D Module ===&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
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 &amp;amp;quot;MoM.IDI&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO36.png|800px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO29.png|thumb|300px|PO Module's Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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'''.&lt;br /&gt;
&lt;br /&gt;
=== Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys17.png|thumb|300px|PO Module's Huygens Source dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a full-wave simulation in the EM.Cube's FDTD, MoM3D, Planar or Physical Optics Modules, you can generate Huygens surface data. According to Huygens' principle, if one knows the tangential electric and magnetic field components on a closed surface, one can determine the total electric and magnetic fields everywhere inside and outside that closed surface. Huygens surfaces are defined around a structure for recording the tangential components of electric and magnetic fields at the end of full-wave simulation of the structure. The tangential electric and magnetic fields are saved into ASCII data files as magnetic and electric currents, respectively. These current can be used as excitation for other structures. In other words, the electric and magnetic currents associated with a Huygens source radiate energy and provide the excitation for the [[PO Module]]'s physical structure.&lt;br /&gt;
&lt;br /&gt;
In order to define a Huygens source, you need to have a Huygens data file of '''.HUY''' type. This file is generated as an output data file at the end of an FDTD, MoM3D, Planar or PO simulation, if you have defined a Huygens  Surface observable in one of those projects. When you define a Huygens source, you indeed import an existing Huygens surface into the project and set it as an excitation source.&lt;br /&gt;
&lt;br /&gt;
To create a new Huygens source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Huygens Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Import Huygens Source...''' from the contextual menu.&lt;br /&gt;
* The standard Windows Open Dialog opens up. The file type is set to '''.HUY''' by default. Browse your folders to find a Huygens surface data file with a '''.HUY''' file extension. Select the file and click the '''Open''' button of the dialog to import the data.&lt;br /&gt;
* Once imported, the Huygens source appears in the Project Workspace as a wire-frame box.&lt;br /&gt;
* You can open the property dialog of a Huygens source by right clicking on its name in the Navigation Tree and selecting '''Properties...''' From this dialog you can change the color of the Huygens source box as well as its location and orientation. You can enter new values for the X, Y, Z '''Center Coordinates''' and '''Rotation Angles''' of the Huygens box. You can also view the dimensions of the box.&lt;br /&gt;
* By default, the Huygens data are imported as a single Huygens source. You can create an arbitrary array of Huygens sources for your PO project. To do so, in the &amp;amp;quot;Create Array&amp;amp;quot; section of the Huygens source dialog, enter desired values for the '''Number of Elements''' and '''Element Spacing''' along the X, Y and Z directions. You will see an array of wire-frame box appear in the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PO34.png|400px]] [[File:PO35.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: (Left) A rotated imported Huygens source, and (Right) An array of imported Huygens sources defined to excite a PEC box.&lt;br /&gt;
&lt;br /&gt;
== Running PO Simulations ==&lt;br /&gt;
&lt;br /&gt;
=== Running A Basic PO Analysis ===&lt;br /&gt;
&lt;br /&gt;
To open [[PO Module]]'s Simulation Run dialog, click the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Run...'''or use the keyboard shortcut '''Ctrl+R'''. To start the simulation click the '''Run''' button of this dialog. Once the PO simulation starts, a new dialog called '''Output Window''' opens up that reports the various stages of PO simulation, displays the running time and shows the percentage of completion for certain tasks during the PO simulation process. A prompt announces the completion of the PO simulation. At this time, EM.Cube generates a number of output data files that contain all the computed simulation data. These include current distributions, near field data, far field radiation pattern data as well bi-static or mono-static radar cross sections (RCS) if the structure is excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
[[File:PO27.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Setting The Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
Before you run a PO simulation, you can change some of the PO simulation engine settings. While in the [[PO Module]]'s '''Simulation Run Dialog''', click the '''Settings''' button next to the '''Select Engine''' dropdown list. In the Physical Optics Engine Settings Dialog, there are two options for '''Solver Type''': '''Iterative''' and '''GOPO'''. The default option is Iterative. The GOPO solver is a zero-order PO simulator that uses Geometrical Optics (GO) to determine the lit and shadow cells in the structure's mesh. For the termination of the IPO solver, there are two options: '''Convergence Error''' and '''Maximum Number of Iterations'''. The default Termination Criterion is based on convergence error, which has a default value of 0.1 and can be changed to any desired accuracy. The convergence error is defined as the L2 norm of the normalized residual error in the combined '''J/M''' current solution of the entire discretized structure from one iteration to the next. Note that for this purpose, the magnetic currents are scaled by &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; in the residual error vector.&lt;br /&gt;
&lt;br /&gt;
You can also use higher- or lower-order integration schemes for the calculation of field integrals. EM.Cube's PO simulation engine uses triangular cells for the mesh of the physical surface structures and rectangular cells for discretization of Huygens sources and surfaces. For integration of triangular cells, you have three options: '''7-Point Quadrature''', '''3-Point Quadrature''' and '''Constant'''. For integration of rectangular cells, too, you have three options: '''9-Point Quadrature''', '''4-Point Quadrature''' and '''Constant'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO37.png|thumb|300px|PO Module's Current Distribution dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, EM.Cube's PO engine generates a number of output data files that contain all the computed simulation data. The main output data are the electric and magnetic current distributions. You can easily examine the 3D color-coded intensity plots of current distributions in the project workspace. Current distributions are visualized on the surface of the PO mesh cells, and the magnitude and phase of the electric and magnetic surface currents are plotted for all the objects. In order to view these currents, you must first define a current distribution observable before running the PO simulation. To do this, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. Accept the default settings and close the dialog. A new current distribution node is added to the Navigation Tree. Unlike the [[Planar Module]], in the [[PO Module]] you can define only one current distribution node in the Navigation Tree, which covers all the objects in the project workspace. After a PO simulation is completed, new plots are added under the current distribution node of the Navigation Tree. Separate plots are produced for the magnitude and phase of each of the electric and magnetic surface current components (X, Y and Z) as well as the total current magnitude. The magnitude maps are plotted on a normalized scale with the minimum and maximum values displayed in the legend box. The phase maps are plotted in radians between -p and p. Note that sometimes the current distribution plots may hide inside smooth and curved objects, and you cannot see them. You may have to freeze such objects or switch to the mesh view mode.&lt;br /&gt;
&lt;br /&gt;
[[File:PO38.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: The current distribution plot of a PEC sphere illuminated by an obliquely incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Near Field Visualization ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO42(4).png|thumb|300px|PO Module's Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to visualize the near fields at a specific field sensor plane. Calculation of near fields is a post-processing process and may take a considerable amount of time depending on the resolution that you specify. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name. you can also change the color of the field sensor plane using the '''Color''' button.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) on the XY plane. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z '''Center Coordinates'''. You can also change these coordinates using the spin buttons.&lt;br /&gt;
* The initial size of the sensor plane is 100 × 100 project units. You can change the dimensions of the sensor plane to any desired size. You can also set the '''Number of Samples''' along the different directions. These numbers determine the resolution of near field maps. Keep in mind that large numbers of samples may result in long computation times.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree. Once a PO simulation is finished, a total of 14 plots are added to every field sensor node in the Navigation Tree. These include the magnitude and phase of all three components of '''E''' and '''H''' fields and the total electric and magnetic field values. Click on any of these items and a color-coded intensity plot of it will be visualized on the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p.To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotate view, pan, zoom, etc.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that since Physical Optics is an asymptotic method, the field sensors must be placed at adequate distances (at least one or few wavelengths) away from the scatterers to produce acceptable results.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO43.png|400px]] [[File:PO44.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Near field plots of electric and magnetic fields on a sensor plane.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing 3D Radiation Patterns ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO45.png|thumb|300px|PO Module's Radiation Pattern dialog]]&lt;br /&gt;
&lt;br /&gt;
Unlike the FDTD method, Physical Optics is an open-boundary technique. You do not need a far field box to perform near-to-far-field transformations. Nonetheless, you still need to define a far field observable if you want to plot radiation patterns. A far field can be defined by right clicking on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and selecting '''Insert New Radiation Pattern...''' from the contextual menu. The Radiation Pattern dialog opens up. You can accept most of the default settings in this dialog. The Output Settings section allows you to change the '''Angle Increment''' in the degrees, which sets the resolution of far field calculations. The default value is 5 degrees. After closing the radiation pattern dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
After a PO simulation is finished, three radiation patterns plots are added to the far field node in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the total far field defines as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed by clicking on their name in the navigation tree. They are displayed in EM.Cube's project workspace and are overlaid on the project's structure. The view of a 3D radiation pattern plots can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the pattern, you can simply hide the whole structure or parts of it. The fields are always normalized to the maximum of the total far field. A legend box appears in the upper right corner of the 3D radiation plot, which can be moved around by clicking and dragging with the left mouse button. The calculated Directivity of the radiating structure is displayed at the bottom of the legend box. It is important to note that if the PO structure is excited by an incident plane wave, the radiation patterns indeed represent the far-zone scattered field data.&lt;br /&gt;
&lt;br /&gt;
[[File:PO46.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D radiation pattern of a parabolic dish reflector excited by a short dipole at its focal point.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO47.png|thumb|300px|PO Module's RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields. EM.Cube calculates the radar cross section (RCS) of a target, which is defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Three RCS quantities are computed: the &amp;amp;theta; and &amp;amp;phi; components of the radar cross section as well as the total radar cross section, which are dented by &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. In addition, EM.Cube's [[PO Module]] calculates two types of RCS for each structure: '''Bi-Static RCS''' and '''Mono-Static RCS'''. In bi-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at all &amp;amp;theta; and &amp;amp;phi; angles. In mono-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at the echo angles 180°-&amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. It is clear that in the case of mono-static RCS, the PO simulation engine runs an internal angular sweep, whereby the values of the plane wave incidence angles &amp;amp;theta; and &amp;amp;phi; are varied over the entire intervals [0°, 180°] and [0°, 360°], respectively, and the backscatter RCS is recorded.&lt;br /&gt;
&lt;br /&gt;
To calculate RCS, first you have to define an RCS observable instead of a radiation pattern. Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog. Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button. Select the type of RCS from the two radio buttons labeled '''Bi-Static RCS''' and '''Mono-Static RCS'''. The former is the default choice. The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees. At the end of a PO simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another azimuth angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the thee RCS plots &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; are added under the far field section of the Navigation Tree. These plots are very similar to the three 3D radiation pattern plots. You can view them by clicking on their names in the navigation tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. For visualization purposes, the 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box. Keep in mind that computing the 3D mono-static RCS may take an enormous amount of computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PO48.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: RCS of a PEC sphere illuminated by an laterally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Customizing 3D Plots ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's current distribution plots are interactive. When you move the mouse over a current plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the current data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the current value at that point. In other words, you can read the plot values using mouse-over. The legend of a current plot also shows the minimum and maximum current values, the current unit (A/m on metallic traces, V/m on slot traces and A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; on embedded objects) as well as the mean current and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys25_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading current values from a current distribution map by mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic current distributions: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the current amplitude and phase using colored triangular mesh cells. The second type is a vectorial plot showing cones (or arrows) directed along the visualized current component. In the case of the total electric current distribution, the cone plot shows the overall direction of the currents at any point on the surface of objects. To set the type of a current plot, open the current distribution plot's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the current distribution before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys26_tn.png|400px]] [[File:po_phys27_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A vectorial (cone-type) current distribution plot of the PEC sphere: (Left) overlaid on mesh and (Right) with the sphere object frozen.&lt;br /&gt;
&lt;br /&gt;
Current distribution maps are displayed with some default settings and options. You can customize the individual maps (total, magnitude, phase, etc.). To do so, open the '''Output Plot Settings Dialog''' by right clicking on the specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. Two '''scale''' options are available: '''Linear''' and '''dB'''. With the '''Linear''' (default) option selected, the current value is always normalized to the maximum total current in that plane, and the normalized scale is mapped between the minimum and maximum values. If the '''dB''' option is selected, the normalized current is converted to dB scale. The plot limits (bounds) can be set individually for every current distribution plot. In the '''Limits''' section of the plot's property dialog, you see four options: '''Default''', '''User Defined''', '''95% Conf.''' and '''95% Conf.'''. Select the user defined option and enter new values for the '''Lower''' and '''Upper''' limits. The last two options are used to remove the outlier data within the 95% and 99% confidence intervals, respectively. In other words, the lower and upper limits are set to ? ± 1.96? and ? ± 2.79? , respectively, assuming a normal distribution of the data. Three color maps are offered: '''Default''', '''Rainbow''' and '''Grayscale'''. You can hide the legend box by deselecting the box labeled '''Show Legend Box'''. You can also change the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The output plot settings dialog.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's field plots are interactive. When you move the mouse over a field plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the field data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the field value at that point. In other words, you can read the plot values using mouse-over. The legend of a field plot also shows the minimum and maximum field values, the field unit (V/m for electric and A/m for magnetic) as well as the mean field and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys33_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading field values form a 3-D sensor plot using mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic fields: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the field amplitude and phase using small colored pixels whose size is depends on the total size of the sensor plane and its number of samples. The second type is a vectorial plot showing cones (or arrows) directed along the visualized field component. In the case of the total electric and magnetic fields, the cone plots show the overall direction of the fields at any point on the sensor plane. To set the type of a field plot, open the field sensor's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the field sensor before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys34_tn.png|400px]] [[File:po_phys35_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Vectorial visualization of the electric and magnetic fields: (Left) E-field, (Right) H-field.&lt;br /&gt;
&lt;br /&gt;
Similar to current distribution plots, field plots (total, magnitude, phase, etc.) are displayed with some default settings and options, which can be further customized individually. To do so, open the '''Output Plot Settings''' dialog by right clicking on a specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. The settings are identical to those of current distribution plots. Two scale options, linear and dB, are available. You can also change the lower and upper limits of the individual field plots as well as their color map.&lt;br /&gt;
&lt;br /&gt;
=== 2D Radiation Pattern &amp;amp;amp; RCS Graphs ===&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes as well as an additional user defined phi plane cut are available for plotting on 2-D graphs. There are a total of eight 2-D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or select '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by clicking and highlighting its '''ID''' in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the theta and phi angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.CUBE, the axial ratio is always defined in the LCPz or RCPz sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2-D Cartesian graphs of the axial ratio as functions of the theta angle a generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of a PO sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In this case, either quantity needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
The 2D RCS graphs can be plotted from EM.CUBE's data manager exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. At the end of a sweep simulation, EM.CUBE calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys40.png]]&lt;br /&gt;
&lt;br /&gt;
The data manager dialog showing a list of 2-D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
The 2-D radiation patterns in the XY, YZ and ZX plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== PO Sweep Simulations ===&lt;br /&gt;
&lt;br /&gt;
You can run EM.Cube's PO simulation engine in the sweep mode, whereby a parameter like frequency, plane wave incident angles or a user defined variable is varied over a specified range at predetermined samples. The output data are saved into data files for visualization and plotting. EM.Cube's [[PO Module]] currently offers three types of sweep:&lt;br /&gt;
&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
To run a PO sweep, open the '''Simulation ''''''Run Dialog''' and select one of the above sweep types from the '''Simulation Mode''' dropdown list of this dialog. If you select either frequency or angular sweep, the '''Settings''' button located next to the simulation mode dropdown list becomes enabled. If you click this button, the Frequency Settings Dialog or Angle Settings Dialog opens up, respectively. In the frequency settings dialog, you can set the start and end frequencies as well as the number of frequency samples. The start and end frequency values are initially set based on the project's center frequency and bandwidth. During a frequency sweep, as the project's frequency changes, so does the wavelength. As a result, the mesh of the structure also changes at each frequency sample. The frequency settings dialog gives you three choices regarding the mesh of the project structure during a frequency sweep:&lt;br /&gt;
&lt;br /&gt;
# Fix mesh at the highest frequency.&lt;br /&gt;
# Fix mesh at the center frequency.&lt;br /&gt;
# Re-mesh at each frequency.&lt;br /&gt;
&lt;br /&gt;
You can run an angular sweep only if your project has a plane wave excitation. In this case, you have to define a plane wave source with the default settings. During an angular sweep, either the incident theta angle or incident phi angle is varied within the specified range. The other angle remains fixed at the value that is specified in the '''Plane Wave Dialog'''. You have to select either '''Theta''' or '''Phi''' as the '''Sweep Angle''' in the Angle Settings Dialog. You also need to set the start and end angles as well as the number of angle samples.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, one or more user defined [[variables]] are varied at the same time over their specified ranges. This creates a parametric space with the total number of samples equal to the product of the number of samples for each variable. The user defined [[variables]] are defined using EM.Cube's '''[[Variables]] Dialog'''. For a description of EM.Cube [[variables]], please refer to the &amp;amp;quot;Parametric Modeling, Sweep &amp;amp;amp; [[Optimization]]&amp;amp;quot; section of EM.Cube Manual or see the &amp;amp;quot;Parametric Sweep&amp;amp;quot; sections of the FDTD or [[Planar Module]] manuals.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys52.png]] [[File:po_phys54.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Frequency Settings and Angle Settings dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Animation Of PO Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a frequency sweep, angular sweep or parametric sweep simulation in EM.Cube's [[PO Module]], the output data are saved for visualization and plotting. In particular, if you have defined current distribution, field sensor or far field observables in your project, multiple 3D plots, as many as the total number of sweep samples, are added to the Navigation Tree. In a single simulation run, a total of 14 current distribution plots, 14 field sensor plot and 3 radiation pattern plots or 3 RCS plots are generated under every observable node defined in the Navigation Tree. However, after a sweep simulation, only one plot is saved for each sweep sample. This is done to keep the resulting plots manageable. Thus, only the total radiation pattern or total RCS are saved for each sweep sample. In the case of a current distribution observable, you have the choice to save either the magnitude of total electric current distribution '''|J&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''or the magnitude of total magnetic current distribution '''|M&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''. To change this, open the '''Current Distribution Dialog''' by right clicking on the observable's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Current Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''Electric Current (J)''' or '''Magnetic Current (M)'''. Similarly, in the case of a field sensor observable, you have the choice to save either the total E-field magnitude plot or the total H-field magnitude plot. To change this, open the '''Field Sensor Dialog''' by right clicking on a field sensor's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Field Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''E-Field''' or '''H-Field'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO39.png]] [[File:PO40.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the current or field types for sweep data visualization in [[PO Module]]'s Current Distribution and Field Sensor dialogs.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.CUBE consists of consecutive display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
The animation controls dialog and animation of the H-field plots of a PEC sphere after an angular sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Illumina</id>
		<title>EM.Illumina</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Illumina"/>
				<updated>2013-06-13T17:35:03Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Visualizing 3D Radiation Patterns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
== Methods Of Physical Optics ==&lt;br /&gt;
&lt;br /&gt;
=== Physical Optics As An Asymptotic Technique ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Asymptotic methods are usually valid at high frequencies as &amp;lt;math&amp;gt;k_0 R = 2\pi R/\lambda_0 &amp;gt;&amp;gt; 1&amp;lt;/math&amp;gt;, where R is the distance between the source and observation points, k&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt; is the free-space propagation constant and &amp;amp;lambda;&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt;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. The uniform theory of diffraction (UTD) is used to model the diffraction of rays at the edges of the structure.&lt;br /&gt;
&lt;br /&gt;
In the Physical Optics (PO) method, a scatterer surface is illuminated by an incident source, and it is modeled by equivalent electric and magnetic surface currents. This concept is based on the fundamental equivalence theorem of electromagnetics and the Huygens principle. The electric surface currents are denoted by '''J(r)''' and the magnetic surface currents are denoted by '''M(r)''', where '''r''' is the position vector. According to the Huygens principle, the equivalent electric and magnetic surface currents are derived from the tangential components of magnetic and electric fields on a given surface, respectively. This will be discussed in more detail in the next sections. In a classic PO analysis which involves only perfect electric conductors, only electric surface currents, related to the tangential magnetic fields, are considered.  &lt;br /&gt;
&lt;br /&gt;
=== Conventional Physical Optics (GO-PO) ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = (1+\alpha) \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -(1-\alpha) \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha = \frac{1-Z/\eta_0}{1+Z/\eta_0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi \; \Omega&amp;lt;/math&amp;gt; is the intrinsic impedance of the free space. Then, the electric and magnetic currents reduce to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = \frac{2\eta_0}{\eta_0 + Z} \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = - \frac{2Z}{\eta_0 + Z} \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Two limiting cases of an impedance surface are perfect electric conductor (PEC) and perfect magnetic conductor (PMC) surface. For a PEC surface, Z = 0,  &amp;amp;alpha; = 1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 2 \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO4.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while for a PMC surface, Z = 8,  &amp;amp;alpha; = -1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -2 \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another special case is a Huygens surface with equivalent electric and magnetic surface currents. In that case, Z =  &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, &amp;amp;alpha; = 0, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r) = \hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r) = -\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO10.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:po_manual_1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A diagram showing a scatterer lit by a source.&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0, and shadowed if '''n.k'''&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Near &amp;amp;amp; Far Fields In PO ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HM&amp;lt;/sub&amp;gt;''' 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 &amp;lt;math&amp;gt;\exp(-jk_0r)/(4\pi r)&amp;lt;/math&amp;gt; and the near fields reduce to: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; + 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; - 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt; R=|r-r'| \text{, } k_0 = \tfrac{2\pi}{\lambda_0} \text{ and } Z_0 = 1/Y_0 = \eta_0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;gt;&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{ff}(r)} = \frac{jk_0 e^{-jk_0 r}}{4\pi r} &lt;br /&gt;
\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' +&lt;br /&gt;
\mathbf{\hat{r}} \times \iint_{S_M} \mathbf{M(r')} e^{-jk_0 \mathbf{ \hat{r} \cdot r' } } ds' \right\}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \frac{1}{Z_0} \mathbf{\hat{r} \times E^{ff}(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Iterative Physical Optics (IPO) ===&lt;br /&gt;
&lt;br /&gt;
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;amp;amp; EFIE):&lt;br /&gt;
&lt;br /&gt;
[[File:PO9(1).png]]&lt;br /&gt;
&lt;br /&gt;
where '''R''' ='''r''' - '''r'''', R = |'''R'''|, and&lt;br /&gt;
&lt;br /&gt;
[[File:PO11.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
[[File:PO13.png]]&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0 is examined. In complex scatterer geometries, there are shadowed points in concave regions where '''n.k'''&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
[[File:PO12.png]]&lt;br /&gt;
&lt;br /&gt;
At the subsequent iterations, the higher order PO currents are given by;&lt;br /&gt;
&lt;br /&gt;
[[File:PO14(1).png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== General Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
[[File:PO10(1).png]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
[[File:PO16.png]]&lt;br /&gt;
&lt;br /&gt;
where the summation over index ''j'' is carried out for all the elementary cells &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; that make up the Huygens box. In EM.Cube Huygens surfaces are cubic and are discretized using a rectangular mesh. Therefore, &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; 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.     &lt;br /&gt;
&lt;br /&gt;
The far fields of the Huygens surface currents are calculated from the following relations:&lt;br /&gt;
&lt;br /&gt;
[[File:PO17(1).png]]&lt;br /&gt;
&lt;br /&gt;
== Physical Structure &amp;amp;amp; Its Discretization ==&lt;br /&gt;
&lt;br /&gt;
=== Grouping Objects By Surface Type ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
# Perfect Electric Conductor (PEC) &lt;br /&gt;
# Perfect Magnetic Conductor (PMC) &lt;br /&gt;
# Generalized Impedance Surface&lt;br /&gt;
&lt;br /&gt;
[[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. &lt;br /&gt;
&lt;br /&gt;
[[File:PO18(1).png]] [[File:PO19.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PO20.png]] [[File:PO21.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Navigation Tree and its PEC, PMC and Impedance Surface dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Creating New Objects &amp;amp;amp; Moving Them Around ===&lt;br /&gt;
&lt;br /&gt;
The objects that you draw in EM.Cube's project workspace always belong to the &amp;amp;quot;Active&amp;amp;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. &lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any material group. Right click on the highlighted selection and select '''Move To &amp;amp;gt; Physical Optics &amp;amp;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 &amp;amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. &lt;br /&gt;
&lt;br /&gt;
{{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]].}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO22(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects between different surface groups in [[PO Module]].&lt;br /&gt;
&lt;br /&gt;
=== Generating &amp;amp;amp; Customizing PO Mesh ===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in [[PO Module]] involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
The objects of your physical structure are meshed based on a specified mesh density expressed in cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The default mesh density is 20 cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. To view the PO mesh, click on the [[File:mesh_tool_tn.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' to remove its check mark or simply click the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;Show Mesh&amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''3-D Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
To set the PO mesh properties, click on the [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== More On Triangular Surface Mesh ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Forcing mesh cells to be single-sided in a PO simulation.&lt;br /&gt;
&lt;br /&gt;
'''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 &amp;amp;quot;unioned&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO25.png|400px]] [[File:PO26.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Geometry and PO mesh of an overlapping sphere and ellipsoid.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Density &amp;amp;amp; Local Mesh Control ===&lt;br /&gt;
&lt;br /&gt;
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.       &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO31.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of a PEC group.&lt;br /&gt;
&lt;br /&gt;
[[File:PO32.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Triangular surface mesh of two PEC box objects with the orange PEC group having a locked mesh of higher density.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO30.png|thumb|300px|PO Module's Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
=== Importing Short Dipoles From MoM3D Module ===&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
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 &amp;amp;quot;MoM.IDI&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO36.png|800px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO29.png|thumb|300px|PO Module's Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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'''.&lt;br /&gt;
&lt;br /&gt;
=== Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys17.png|thumb|300px|PO Module's Huygens Source dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a full-wave simulation in the EM.Cube's FDTD, MoM3D, Planar or Physical Optics Modules, you can generate Huygens surface data. According to Huygens' principle, if one knows the tangential electric and magnetic field components on a closed surface, one can determine the total electric and magnetic fields everywhere inside and outside that closed surface. Huygens surfaces are defined around a structure for recording the tangential components of electric and magnetic fields at the end of full-wave simulation of the structure. The tangential electric and magnetic fields are saved into ASCII data files as magnetic and electric currents, respectively. These current can be used as excitation for other structures. In other words, the electric and magnetic currents associated with a Huygens source radiate energy and provide the excitation for the [[PO Module]]'s physical structure.&lt;br /&gt;
&lt;br /&gt;
In order to define a Huygens source, you need to have a Huygens data file of '''.HUY''' type. This file is generated as an output data file at the end of an FDTD, MoM3D, Planar or PO simulation, if you have defined a Huygens  Surface observable in one of those projects. When you define a Huygens source, you indeed import an existing Huygens surface into the project and set it as an excitation source.&lt;br /&gt;
&lt;br /&gt;
To create a new Huygens source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Huygens Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Import Huygens Source...''' from the contextual menu.&lt;br /&gt;
* The standard Windows Open Dialog opens up. The file type is set to '''.HUY''' by default. Browse your folders to find a Huygens surface data file with a '''.HUY''' file extension. Select the file and click the '''Open''' button of the dialog to import the data.&lt;br /&gt;
* Once imported, the Huygens source appears in the Project Workspace as a wire-frame box.&lt;br /&gt;
* You can open the property dialog of a Huygens source by right clicking on its name in the Navigation Tree and selecting '''Properties...''' From this dialog you can change the color of the Huygens source box as well as its location and orientation. You can enter new values for the X, Y, Z '''Center Coordinates''' and '''Rotation Angles''' of the Huygens box. You can also view the dimensions of the box.&lt;br /&gt;
* By default, the Huygens data are imported as a single Huygens source. You can create an arbitrary array of Huygens sources for your PO project. To do so, in the &amp;amp;quot;Create Array&amp;amp;quot; section of the Huygens source dialog, enter desired values for the '''Number of Elements''' and '''Element Spacing''' along the X, Y and Z directions. You will see an array of wire-frame box appear in the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PO34.png|400px]] [[File:PO35.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: (Left) A rotated imported Huygens source, and (Right) An array of imported Huygens sources defined to excite a PEC box.&lt;br /&gt;
&lt;br /&gt;
== Running PO Simulations ==&lt;br /&gt;
&lt;br /&gt;
=== Running A Basic PO Analysis ===&lt;br /&gt;
&lt;br /&gt;
To open [[PO Module]]'s Simulation Run dialog, click the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Run...'''or use the keyboard shortcut '''Ctrl+R'''. To start the simulation click the '''Run''' button of this dialog. Once the PO simulation starts, a new dialog called '''Output Window''' opens up that reports the various stages of PO simulation, displays the running time and shows the percentage of completion for certain tasks during the PO simulation process. A prompt announces the completion of the PO simulation. At this time, EM.Cube generates a number of output data files that contain all the computed simulation data. These include current distributions, near field data, far field radiation pattern data as well bi-static or mono-static radar cross sections (RCS) if the structure is excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
[[File:PO27.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Setting The Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
Before you run a PO simulation, you can change some of the PO simulation engine settings. While in the [[PO Module]]'s '''Simulation Run Dialog''', click the '''Settings''' button next to the '''Select Engine''' dropdown list. In the Physical Optics Engine Settings Dialog, there are two options for '''Solver Type''': '''Iterative''' and '''GOPO'''. The default option is Iterative. The GOPO solver is a zero-order PO simulator that uses Geometrical Optics (GO) to determine the lit and shadow cells in the structure's mesh. For the termination of the IPO solver, there are two options: '''Convergence Error''' and '''Maximum Number of Iterations'''. The default Termination Criterion is based on convergence error, which has a default value of 0.1 and can be changed to any desired accuracy. The convergence error is defined as the L2 norm of the normalized residual error in the combined '''J/M''' current solution of the entire discretized structure from one iteration to the next. Note that for this purpose, the magnetic currents are scaled by &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; in the residual error vector.&lt;br /&gt;
&lt;br /&gt;
You can also use higher- or lower-order integration schemes for the calculation of field integrals. EM.Cube's PO simulation engine uses triangular cells for the mesh of the physical surface structures and rectangular cells for discretization of Huygens sources and surfaces. For integration of triangular cells, you have three options: '''7-Point Quadrature''', '''3-Point Quadrature''' and '''Constant'''. For integration of rectangular cells, too, you have three options: '''9-Point Quadrature''', '''4-Point Quadrature''' and '''Constant'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO37.png|thumb|300px|PO Module's Current Distribution dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, EM.Cube's PO engine generates a number of output data files that contain all the computed simulation data. The main output data are the electric and magnetic current distributions. You can easily examine the 3D color-coded intensity plots of current distributions in the project workspace. Current distributions are visualized on the surface of the PO mesh cells, and the magnitude and phase of the electric and magnetic surface currents are plotted for all the objects. In order to view these currents, you must first define a current distribution observable before running the PO simulation. To do this, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. Accept the default settings and close the dialog. A new current distribution node is added to the Navigation Tree. Unlike the [[Planar Module]], in the [[PO Module]] you can define only one current distribution node in the Navigation Tree, which covers all the objects in the project workspace. After a PO simulation is completed, new plots are added under the current distribution node of the Navigation Tree. Separate plots are produced for the magnitude and phase of each of the electric and magnetic surface current components (X, Y and Z) as well as the total current magnitude. The magnitude maps are plotted on a normalized scale with the minimum and maximum values displayed in the legend box. The phase maps are plotted in radians between -p and p. Note that sometimes the current distribution plots may hide inside smooth and curved objects, and you cannot see them. You may have to freeze such objects or switch to the mesh view mode.&lt;br /&gt;
&lt;br /&gt;
[[File:PO38.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: The current distribution plot of a PEC sphere illuminated by an obliquely incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Near Field Visualization ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO42(4).png|thumb|300px|PO Module's Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to visualize the near fields at a specific field sensor plane. Calculation of near fields is a post-processing process and may take a considerable amount of time depending on the resolution that you specify. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name. you can also change the color of the field sensor plane using the '''Color''' button.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) on the XY plane. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z '''Center Coordinates'''. You can also change these coordinates using the spin buttons.&lt;br /&gt;
* The initial size of the sensor plane is 100 × 100 project units. You can change the dimensions of the sensor plane to any desired size. You can also set the '''Number of Samples''' along the different directions. These numbers determine the resolution of near field maps. Keep in mind that large numbers of samples may result in long computation times.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree. Once a PO simulation is finished, a total of 14 plots are added to every field sensor node in the Navigation Tree. These include the magnitude and phase of all three components of '''E''' and '''H''' fields and the total electric and magnetic field values. Click on any of these items and a color-coded intensity plot of it will be visualized on the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p.To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotate view, pan, zoom, etc.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that since Physical Optics is an asymptotic method, the field sensors must be placed at adequate distances (at least one or few wavelengths) away from the scatterers to produce acceptable results.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO43.png|400px]] [[File:PO44.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Near field plots of electric and magnetic fields on a sensor plane.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing 3D Radiation Patterns ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO45.png|thumb|300px|PO Module's Radiation Pattern dialog]]&lt;br /&gt;
&lt;br /&gt;
Unlike the FDTD method, Physical Optics is an open-boundary technique. You do not need a far field box to perform near-to-far-field transformations. Nonetheless, you still need to define a far field observable if you want to plot radiation patterns. A far field can be defined by right clicking on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and selecting '''Insert New Radiation Pattern...''' from the contextual menu. The Radiation Pattern dialog opens up. You can accept most of the default settings in this dialog. The Output Settings section allows you to change the '''Angle Increment''' in the degrees, which sets the resolution of far field calculations. The default value is 5 degrees. After closing the radiation pattern dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
After a PO simulation is finished, three radiation patterns plots are added to the far field node in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the total far field defines as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{ |E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed by clicking on their name in the navigation tree. They are displayed in EM.Cube's project workspace and are overlaid on the project's structure. The view of a 3D radiation pattern plots can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the pattern, you can simply hide the whole structure or parts of it. The fields are always normalized to the maximum of the total far field. A legend box appears in the upper right corner of the 3D radiation plot, which can be moved around by clicking and dragging with the left mouse button. The calculated Directivity of the radiating structure is displayed at the bottom of the legend box. It is important to note that if the PO structure is excited by an incident plane wave, the radiation patterns indeed represent the far-zone scattered field data.&lt;br /&gt;
&lt;br /&gt;
[[File:PO46.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D radiation pattern of a parabolic dish reflector excited by a short dipole at its focal point.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO47.png|thumb|300px|PO Module's RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields. EM.Cube calculates the radar cross section (RCS) of a target, which is defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Three RCS quantities are computed: the &amp;amp;theta; and &amp;amp;phi; components of the radar cross section as well as the total radar cross section, which are dented by &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. In addition, EM.Cube's [[PO Module]] calculates two types of RCS for each structure: '''Bi-Static RCS''' and '''Mono-Static RCS'''. In bi-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at all &amp;amp;theta; and &amp;amp;phi; angles. In mono-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at the echo angles 180°-&amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. It is clear that in the case of mono-static RCS, the PO simulation engine runs an internal angular sweep, whereby the values of the plane wave incidence angles &amp;amp;theta; and &amp;amp;phi; are varied over the entire intervals [0°, 180°] and [0°, 360°], respectively, and the backscatter RCS is recorded.&lt;br /&gt;
&lt;br /&gt;
To calculate RCS, first you have to define an RCS observable instead of a radiation pattern. Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog. Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button. Select the type of RCS from the two radio buttons labeled '''Bi-Static RCS''' and '''Mono-Static RCS'''. The former is the default choice. The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees. At the end of a PO simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another azimuth angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the thee RCS plots &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; are added under the far field section of the Navigation Tree. These plots are very similar to the three 3D radiation pattern plots. You can view them by clicking on their names in the navigation tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. For visualization purposes, the 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box. Keep in mind that computing the 3D mono-static RCS may take an enormous amount of computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PO48.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: RCS of a PEC sphere illuminated by an laterally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Customizing 3D Plots ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's current distribution plots are interactive. When you move the mouse over a current plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the current data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the current value at that point. In other words, you can read the plot values using mouse-over. The legend of a current plot also shows the minimum and maximum current values, the current unit (A/m on metallic traces, V/m on slot traces and A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; on embedded objects) as well as the mean current and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys25_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading current values from a current distribution map by mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic current distributions: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the current amplitude and phase using colored triangular mesh cells. The second type is a vectorial plot showing cones (or arrows) directed along the visualized current component. In the case of the total electric current distribution, the cone plot shows the overall direction of the currents at any point on the surface of objects. To set the type of a current plot, open the current distribution plot's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the current distribution before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys26_tn.png|400px]] [[File:po_phys27_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A vectorial (cone-type) current distribution plot of the PEC sphere: (Left) overlaid on mesh and (Right) with the sphere object frozen.&lt;br /&gt;
&lt;br /&gt;
Current distribution maps are displayed with some default settings and options. You can customize the individual maps (total, magnitude, phase, etc.). To do so, open the '''Output Plot Settings Dialog''' by right clicking on the specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. Two '''scale''' options are available: '''Linear''' and '''dB'''. With the '''Linear''' (default) option selected, the current value is always normalized to the maximum total current in that plane, and the normalized scale is mapped between the minimum and maximum values. If the '''dB''' option is selected, the normalized current is converted to dB scale. The plot limits (bounds) can be set individually for every current distribution plot. In the '''Limits''' section of the plot's property dialog, you see four options: '''Default''', '''User Defined''', '''95% Conf.''' and '''95% Conf.'''. Select the user defined option and enter new values for the '''Lower''' and '''Upper''' limits. The last two options are used to remove the outlier data within the 95% and 99% confidence intervals, respectively. In other words, the lower and upper limits are set to ? ± 1.96? and ? ± 2.79? , respectively, assuming a normal distribution of the data. Three color maps are offered: '''Default''', '''Rainbow''' and '''Grayscale'''. You can hide the legend box by deselecting the box labeled '''Show Legend Box'''. You can also change the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The output plot settings dialog.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's field plots are interactive. When you move the mouse over a field plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the field data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the field value at that point. In other words, you can read the plot values using mouse-over. The legend of a field plot also shows the minimum and maximum field values, the field unit (V/m for electric and A/m for magnetic) as well as the mean field and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys33_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading field values form a 3-D sensor plot using mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic fields: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the field amplitude and phase using small colored pixels whose size is depends on the total size of the sensor plane and its number of samples. The second type is a vectorial plot showing cones (or arrows) directed along the visualized field component. In the case of the total electric and magnetic fields, the cone plots show the overall direction of the fields at any point on the sensor plane. To set the type of a field plot, open the field sensor's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the field sensor before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys34_tn.png|400px]] [[File:po_phys35_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Vectorial visualization of the electric and magnetic fields: (Left) E-field, (Right) H-field.&lt;br /&gt;
&lt;br /&gt;
Similar to current distribution plots, field plots (total, magnitude, phase, etc.) are displayed with some default settings and options, which can be further customized individually. To do so, open the '''Output Plot Settings''' dialog by right clicking on a specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. The settings are identical to those of current distribution plots. Two scale options, linear and dB, are available. You can also change the lower and upper limits of the individual field plots as well as their color map.&lt;br /&gt;
&lt;br /&gt;
=== 2D Radiation Pattern &amp;amp;amp; RCS Graphs ===&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes as well as an additional user defined phi plane cut are available for plotting on 2-D graphs. There are a total of eight 2-D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or select '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by clicking and highlighting its '''ID''' in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the theta and phi angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.CUBE, the axial ratio is always defined in the LCPz or RCPz sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2-D Cartesian graphs of the axial ratio as functions of the theta angle a generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of a PO sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In this case, either quantity needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
The 2D RCS graphs can be plotted from EM.CUBE's data manager exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. At the end of a sweep simulation, EM.CUBE calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys40.png]]&lt;br /&gt;
&lt;br /&gt;
The data manager dialog showing a list of 2-D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
The 2-D radiation patterns in the XY, YZ and ZX plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== PO Sweep Simulations ===&lt;br /&gt;
&lt;br /&gt;
You can run EM.Cube's PO simulation engine in the sweep mode, whereby a parameter like frequency, plane wave incident angles or a user defined variable is varied over a specified range at predetermined samples. The output data are saved into data files for visualization and plotting. EM.Cube's [[PO Module]] currently offers three types of sweep:&lt;br /&gt;
&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
To run a PO sweep, open the '''Simulation ''''''Run Dialog''' and select one of the above sweep types from the '''Simulation Mode''' dropdown list of this dialog. If you select either frequency or angular sweep, the '''Settings''' button located next to the simulation mode dropdown list becomes enabled. If you click this button, the Frequency Settings Dialog or Angle Settings Dialog opens up, respectively. In the frequency settings dialog, you can set the start and end frequencies as well as the number of frequency samples. The start and end frequency values are initially set based on the project's center frequency and bandwidth. During a frequency sweep, as the project's frequency changes, so does the wavelength. As a result, the mesh of the structure also changes at each frequency sample. The frequency settings dialog gives you three choices regarding the mesh of the project structure during a frequency sweep:&lt;br /&gt;
&lt;br /&gt;
# Fix mesh at the highest frequency.&lt;br /&gt;
# Fix mesh at the center frequency.&lt;br /&gt;
# Re-mesh at each frequency.&lt;br /&gt;
&lt;br /&gt;
You can run an angular sweep only if your project has a plane wave excitation. In this case, you have to define a plane wave source with the default settings. During an angular sweep, either the incident theta angle or incident phi angle is varied within the specified range. The other angle remains fixed at the value that is specified in the '''Plane Wave Dialog'''. You have to select either '''Theta''' or '''Phi''' as the '''Sweep Angle''' in the Angle Settings Dialog. You also need to set the start and end angles as well as the number of angle samples.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, one or more user defined [[variables]] are varied at the same time over their specified ranges. This creates a parametric space with the total number of samples equal to the product of the number of samples for each variable. The user defined [[variables]] are defined using EM.Cube's '''[[Variables]] Dialog'''. For a description of EM.Cube [[variables]], please refer to the &amp;amp;quot;Parametric Modeling, Sweep &amp;amp;amp; [[Optimization]]&amp;amp;quot; section of EM.Cube Manual or see the &amp;amp;quot;Parametric Sweep&amp;amp;quot; sections of the FDTD or [[Planar Module]] manuals.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys52.png]] [[File:po_phys54.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Frequency Settings and Angle Settings dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Animation Of PO Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a frequency sweep, angular sweep or parametric sweep simulation in EM.Cube's [[PO Module]], the output data are saved for visualization and plotting. In particular, if you have defined current distribution, field sensor or far field observables in your project, multiple 3D plots, as many as the total number of sweep samples, are added to the Navigation Tree. In a single simulation run, a total of 14 current distribution plots, 14 field sensor plot and 3 radiation pattern plots or 3 RCS plots are generated under every observable node defined in the Navigation Tree. However, after a sweep simulation, only one plot is saved for each sweep sample. This is done to keep the resulting plots manageable. Thus, only the total radiation pattern or total RCS are saved for each sweep sample. In the case of a current distribution observable, you have the choice to save either the magnitude of total electric current distribution '''|J&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''or the magnitude of total magnetic current distribution '''|M&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''. To change this, open the '''Current Distribution Dialog''' by right clicking on the observable's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Current Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''Electric Current (J)''' or '''Magnetic Current (M)'''. Similarly, in the case of a field sensor observable, you have the choice to save either the total E-field magnitude plot or the total H-field magnitude plot. To change this, open the '''Field Sensor Dialog''' by right clicking on a field sensor's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Field Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''E-Field''' or '''H-Field'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO39.png]] [[File:PO40.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the current or field types for sweep data visualization in [[PO Module]]'s Current Distribution and Field Sensor dialogs.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.CUBE consists of consecutive display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
The animation controls dialog and animation of the H-field plots of a PEC sphere after an angular sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Illumina</id>
		<title>EM.Illumina</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Illumina"/>
				<updated>2013-06-13T17:33:01Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Radar Cross Section */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
== Methods Of Physical Optics ==&lt;br /&gt;
&lt;br /&gt;
=== Physical Optics As An Asymptotic Technique ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Asymptotic methods are usually valid at high frequencies as &amp;lt;math&amp;gt;k_0 R = 2\pi R/\lambda_0 &amp;gt;&amp;gt; 1&amp;lt;/math&amp;gt;, where R is the distance between the source and observation points, k&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt; is the free-space propagation constant and &amp;amp;lambda;&amp;lt;sub&amp;gt;0 &amp;lt;/sub&amp;gt;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. The uniform theory of diffraction (UTD) is used to model the diffraction of rays at the edges of the structure.&lt;br /&gt;
&lt;br /&gt;
In the Physical Optics (PO) method, a scatterer surface is illuminated by an incident source, and it is modeled by equivalent electric and magnetic surface currents. This concept is based on the fundamental equivalence theorem of electromagnetics and the Huygens principle. The electric surface currents are denoted by '''J(r)''' and the magnetic surface currents are denoted by '''M(r)''', where '''r''' is the position vector. According to the Huygens principle, the equivalent electric and magnetic surface currents are derived from the tangential components of magnetic and electric fields on a given surface, respectively. This will be discussed in more detail in the next sections. In a classic PO analysis which involves only perfect electric conductors, only electric surface currents, related to the tangential magnetic fields, are considered.  &lt;br /&gt;
&lt;br /&gt;
=== Conventional Physical Optics (GO-PO) ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = (1+\alpha) \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -(1-\alpha) \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO1(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha = \frac{1-Z/\eta_0}{1+Z/\eta_0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO2.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\eta_0 = 120\pi \; \Omega&amp;lt;/math&amp;gt; is the intrinsic impedance of the free space. Then, the electric and magnetic currents reduce to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = \frac{2\eta_0}{\eta_0 + Z} \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = - \frac{2Z}{\eta_0 + Z} \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO3.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Two limiting cases of an impedance surface are perfect electric conductor (PEC) and perfect magnetic conductor (PMC) surface. For a PEC surface, Z = 0,  &amp;amp;alpha; = 1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 2 \mathbf{\hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO4.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while for a PMC surface, Z = 8,  &amp;amp;alpha; = -1, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r)} = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r)} = -2 \mathbf{\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO5.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another special case is a Huygens surface with equivalent electric and magnetic surface currents. In that case, Z =  &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, &amp;amp;alpha; = 0, and one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{J(r) = \hat{n} \times H(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{M(r) = -\hat{n} \times E(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO10.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:po_manual_1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A diagram showing a scatterer lit by a source.&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0, and shadowed if '''n.k'''&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
=== Calculating Near &amp;amp;amp; Far Fields In PO ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{EM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } + &lt;br /&gt;
\iint_{S_J} \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') } ds' + &lt;br /&gt;
\iint_{S_M} \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot M(r') } ds'&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO6.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''G&amp;lt;sub&amp;gt;EJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;EM&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HJ&amp;lt;/sub&amp;gt;''', '''G&amp;lt;sub&amp;gt;HM&amp;lt;/sub&amp;gt;''' 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 &amp;lt;math&amp;gt;\exp(-jk_0r)/(4\pi r)&amp;lt;/math&amp;gt; and the near fields reduce to: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ E(r) = E^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; + 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
\mathbf{ H(r) = H^{inc}(r) } &lt;br /&gt;
&amp;amp; - 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')} - &lt;br /&gt;
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right\}&lt;br /&gt;
\frac{e^{-jk_0 R}}{4\pi R} ds' \\&lt;br /&gt;
&amp;amp; - 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'&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO7.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt; R=|r-r'| \text{, } k_0 = \tfrac{2\pi}{\lambda_0} \text{ and } Z_0 = 1/Y_0 = \eta_0 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r &amp;amp;gt;&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{E^{ff}(r)} = \frac{jk_0 e^{-jk_0 r}}{4\pi r} &lt;br /&gt;
\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' +&lt;br /&gt;
\mathbf{\hat{r}} \times \iint_{S_M} \mathbf{M(r')} e^{-jk_0 \mathbf{ \hat{r} \cdot r' } } ds' \right\}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{H^{ff}(r)} = \frac{1}{Z_0} \mathbf{\hat{r} \times E^{ff}(r)} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:PO8.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Iterative Physical Optics (IPO) ===&lt;br /&gt;
&lt;br /&gt;
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;amp;amp; EFIE):&lt;br /&gt;
&lt;br /&gt;
[[File:PO9(1).png]]&lt;br /&gt;
&lt;br /&gt;
where '''R''' ='''r''' - '''r'''', R = |'''R'''|, and&lt;br /&gt;
&lt;br /&gt;
[[File:PO11.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
[[File:PO13.png]]&lt;br /&gt;
&lt;br /&gt;
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'''&amp;amp;lt; 0 is examined. In complex scatterer geometries, there are shadowed points in concave regions where '''n.k'''&amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
[[File:PO12.png]]&lt;br /&gt;
&lt;br /&gt;
At the subsequent iterations, the higher order PO currents are given by;&lt;br /&gt;
&lt;br /&gt;
[[File:PO14(1).png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== General Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
[[File:PO10(1).png]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
[[File:PO16.png]]&lt;br /&gt;
&lt;br /&gt;
where the summation over index ''j'' is carried out for all the elementary cells &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; that make up the Huygens box. In EM.Cube Huygens surfaces are cubic and are discretized using a rectangular mesh. Therefore, &amp;amp;Delta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; 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.     &lt;br /&gt;
&lt;br /&gt;
The far fields of the Huygens surface currents are calculated from the following relations:&lt;br /&gt;
&lt;br /&gt;
[[File:PO17(1).png]]&lt;br /&gt;
&lt;br /&gt;
== Physical Structure &amp;amp;amp; Its Discretization ==&lt;br /&gt;
&lt;br /&gt;
=== Grouping Objects By Surface Type ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
# Perfect Electric Conductor (PEC) &lt;br /&gt;
# Perfect Magnetic Conductor (PMC) &lt;br /&gt;
# Generalized Impedance Surface&lt;br /&gt;
&lt;br /&gt;
[[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. &lt;br /&gt;
&lt;br /&gt;
[[File:PO18(1).png]] [[File:PO19.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PO20.png]] [[File:PO21.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Navigation Tree and its PEC, PMC and Impedance Surface dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Creating New Objects &amp;amp;amp; Moving Them Around ===&lt;br /&gt;
&lt;br /&gt;
The objects that you draw in EM.Cube's project workspace always belong to the &amp;amp;quot;Active&amp;amp;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. &lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any material group. Right click on the highlighted selection and select '''Move To &amp;amp;gt; Physical Optics &amp;amp;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 &amp;amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. &lt;br /&gt;
&lt;br /&gt;
{{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]].}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO22(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects between different surface groups in [[PO Module]].&lt;br /&gt;
&lt;br /&gt;
=== Generating &amp;amp;amp; Customizing PO Mesh ===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in [[PO Module]] involves three steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh properties.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
The objects of your physical structure are meshed based on a specified mesh density expressed in cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The default mesh density is 20 cells/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. To view the PO mesh, click on the [[File:mesh_tool_tn.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Show Mesh''' to remove its check mark or simply click the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;Show Mesh&amp;amp;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 &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;gt; Regenerate Mesh''' or by right clicking on the '''3-D Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
To set the PO mesh properties, click on the [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Discretization &amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO23.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== More On Triangular Surface Mesh ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Forcing mesh cells to be single-sided in a PO simulation.&lt;br /&gt;
&lt;br /&gt;
'''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 &amp;amp;quot;unioned&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO25.png|400px]] [[File:PO26.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Geometry and PO mesh of an overlapping sphere and ellipsoid.&lt;br /&gt;
&lt;br /&gt;
=== Mesh Density &amp;amp;amp; Local Mesh Control ===&lt;br /&gt;
&lt;br /&gt;
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.       &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO31.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Locking the mesh density of a PEC group.&lt;br /&gt;
&lt;br /&gt;
[[File:PO32.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Triangular surface mesh of two PEC box objects with the orange PEC group having a locked mesh of higher density.&lt;br /&gt;
&lt;br /&gt;
== Excitation Sources ==&lt;br /&gt;
&lt;br /&gt;
=== Hertzian Dipole Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO30.png|thumb|300px|PO Module's Short Dipole Source dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
=== Importing Short Dipoles From MoM3D Module ===&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
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 &amp;amp;quot;MoM.IDI&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
[[File:PO36.png|800px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Plane Wave Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO29.png|thumb|300px|PO Module's Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* TMz&lt;br /&gt;
* TEz&lt;br /&gt;
* Custom Linear&lt;br /&gt;
* LCPz&lt;br /&gt;
* RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
To define a plane wave source follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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'''.&lt;br /&gt;
&lt;br /&gt;
=== Huygens Sources ===&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys17.png|thumb|300px|PO Module's Huygens Source dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a full-wave simulation in the EM.Cube's FDTD, MoM3D, Planar or Physical Optics Modules, you can generate Huygens surface data. According to Huygens' principle, if one knows the tangential electric and magnetic field components on a closed surface, one can determine the total electric and magnetic fields everywhere inside and outside that closed surface. Huygens surfaces are defined around a structure for recording the tangential components of electric and magnetic fields at the end of full-wave simulation of the structure. The tangential electric and magnetic fields are saved into ASCII data files as magnetic and electric currents, respectively. These current can be used as excitation for other structures. In other words, the electric and magnetic currents associated with a Huygens source radiate energy and provide the excitation for the [[PO Module]]'s physical structure.&lt;br /&gt;
&lt;br /&gt;
In order to define a Huygens source, you need to have a Huygens data file of '''.HUY''' type. This file is generated as an output data file at the end of an FDTD, MoM3D, Planar or PO simulation, if you have defined a Huygens  Surface observable in one of those projects. When you define a Huygens source, you indeed import an existing Huygens surface into the project and set it as an excitation source.&lt;br /&gt;
&lt;br /&gt;
To create a new Huygens source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Huygens Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Import Huygens Source...''' from the contextual menu.&lt;br /&gt;
* The standard Windows Open Dialog opens up. The file type is set to '''.HUY''' by default. Browse your folders to find a Huygens surface data file with a '''.HUY''' file extension. Select the file and click the '''Open''' button of the dialog to import the data.&lt;br /&gt;
* Once imported, the Huygens source appears in the Project Workspace as a wire-frame box.&lt;br /&gt;
* You can open the property dialog of a Huygens source by right clicking on its name in the Navigation Tree and selecting '''Properties...''' From this dialog you can change the color of the Huygens source box as well as its location and orientation. You can enter new values for the X, Y, Z '''Center Coordinates''' and '''Rotation Angles''' of the Huygens box. You can also view the dimensions of the box.&lt;br /&gt;
* By default, the Huygens data are imported as a single Huygens source. You can create an arbitrary array of Huygens sources for your PO project. To do so, in the &amp;amp;quot;Create Array&amp;amp;quot; section of the Huygens source dialog, enter desired values for the '''Number of Elements''' and '''Element Spacing''' along the X, Y and Z directions. You will see an array of wire-frame box appear in the project workspace.&lt;br /&gt;
&lt;br /&gt;
[[File:PO34.png|400px]] [[File:PO35.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: (Left) A rotated imported Huygens source, and (Right) An array of imported Huygens sources defined to excite a PEC box.&lt;br /&gt;
&lt;br /&gt;
== Running PO Simulations ==&lt;br /&gt;
&lt;br /&gt;
=== Running A Basic PO Analysis ===&lt;br /&gt;
&lt;br /&gt;
To open [[PO Module]]'s Simulation Run dialog, click the '''Run''' [[File:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;amp;gt; Simulate &amp;amp;gt; Run...'''or use the keyboard shortcut '''Ctrl+R'''. To start the simulation click the '''Run''' button of this dialog. Once the PO simulation starts, a new dialog called '''Output Window''' opens up that reports the various stages of PO simulation, displays the running time and shows the percentage of completion for certain tasks during the PO simulation process. A prompt announces the completion of the PO simulation. At this time, EM.Cube generates a number of output data files that contain all the computed simulation data. These include current distributions, near field data, far field radiation pattern data as well bi-static or mono-static radar cross sections (RCS) if the structure is excited by a plane wave source.&lt;br /&gt;
&lt;br /&gt;
[[File:PO27.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Run dialog.&lt;br /&gt;
&lt;br /&gt;
=== Setting The Numerical Parameters ===&lt;br /&gt;
&lt;br /&gt;
Before you run a PO simulation, you can change some of the PO simulation engine settings. While in the [[PO Module]]'s '''Simulation Run Dialog''', click the '''Settings''' button next to the '''Select Engine''' dropdown list. In the Physical Optics Engine Settings Dialog, there are two options for '''Solver Type''': '''Iterative''' and '''GOPO'''. The default option is Iterative. The GOPO solver is a zero-order PO simulator that uses Geometrical Optics (GO) to determine the lit and shadow cells in the structure's mesh. For the termination of the IPO solver, there are two options: '''Convergence Error''' and '''Maximum Number of Iterations'''. The default Termination Criterion is based on convergence error, which has a default value of 0.1 and can be changed to any desired accuracy. The convergence error is defined as the L2 norm of the normalized residual error in the combined '''J/M''' current solution of the entire discretized structure from one iteration to the next. Note that for this purpose, the magnetic currents are scaled by &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; in the residual error vector.&lt;br /&gt;
&lt;br /&gt;
You can also use higher- or lower-order integration schemes for the calculation of field integrals. EM.Cube's PO simulation engine uses triangular cells for the mesh of the physical surface structures and rectangular cells for discretization of Huygens sources and surfaces. For integration of triangular cells, you have three options: '''7-Point Quadrature''', '''3-Point Quadrature''' and '''Constant'''. For integration of rectangular cells, too, you have three options: '''9-Point Quadrature''', '''4-Point Quadrature''' and '''Constant'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing Current Distributions ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO37.png|thumb|300px|PO Module's Current Distribution dialog]]&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, EM.Cube's PO engine generates a number of output data files that contain all the computed simulation data. The main output data are the electric and magnetic current distributions. You can easily examine the 3D color-coded intensity plots of current distributions in the project workspace. Current distributions are visualized on the surface of the PO mesh cells, and the magnitude and phase of the electric and magnetic surface currents are plotted for all the objects. In order to view these currents, you must first define a current distribution observable before running the PO simulation. To do this, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. Accept the default settings and close the dialog. A new current distribution node is added to the Navigation Tree. Unlike the [[Planar Module]], in the [[PO Module]] you can define only one current distribution node in the Navigation Tree, which covers all the objects in the project workspace. After a PO simulation is completed, new plots are added under the current distribution node of the Navigation Tree. Separate plots are produced for the magnitude and phase of each of the electric and magnetic surface current components (X, Y and Z) as well as the total current magnitude. The magnitude maps are plotted on a normalized scale with the minimum and maximum values displayed in the legend box. The phase maps are plotted in radians between -p and p. Note that sometimes the current distribution plots may hide inside smooth and curved objects, and you cannot see them. You may have to freeze such objects or switch to the mesh view mode.&lt;br /&gt;
&lt;br /&gt;
[[File:PO38.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: The current distribution plot of a PEC sphere illuminated by an obliquely incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Near Field Visualization ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO42(4).png|thumb|300px|PO Module's Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to visualize the near fields at a specific field sensor plane. Calculation of near fields is a post-processing process and may take a considerable amount of time depending on the resolution that you specify. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name. you can also change the color of the field sensor plane using the '''Color''' button.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) on the XY plane. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z '''Center Coordinates'''. You can also change these coordinates using the spin buttons.&lt;br /&gt;
* The initial size of the sensor plane is 100 × 100 project units. You can change the dimensions of the sensor plane to any desired size. You can also set the '''Number of Samples''' along the different directions. These numbers determine the resolution of near field maps. Keep in mind that large numbers of samples may result in long computation times.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree. Once a PO simulation is finished, a total of 14 plots are added to every field sensor node in the Navigation Tree. These include the magnitude and phase of all three components of '''E''' and '''H''' fields and the total electric and magnetic field values. Click on any of these items and a color-coded intensity plot of it will be visualized on the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p.To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotate view, pan, zoom, etc.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that since Physical Optics is an asymptotic method, the field sensors must be placed at adequate distances (at least one or few wavelengths) away from the scatterers to produce acceptable results.}}&lt;br /&gt;
&lt;br /&gt;
[[File:PO43.png|400px]] [[File:PO44.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Near field plots of electric and magnetic fields on a sensor plane.&lt;br /&gt;
&lt;br /&gt;
=== Visualizing 3D Radiation Patterns ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO45.png|thumb|300px|PO Module's Radiation Pattern dialog]]&lt;br /&gt;
&lt;br /&gt;
Unlike the FDTD method, Physical Optics is an open-boundary technique. You do not need a far field box to perform near-to-far-field transformations. Nonetheless, you still need to define a far field observable if you want to plot radiation patterns. A far field can be defined by right clicking on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and selecting '''Insert New Radiation Pattern...''' from the contextual menu. The Radiation Pattern dialog opens up. You can accept most of the default settings in this dialog. The Output Settings section allows you to change the '''Angle Increment''' in the degrees, which sets the resolution of far field calculations. The default value is 5 degrees. After closing the radiation pattern dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
After a PO simulation is finished, three radiation patterns plots are added to the far field node in the Navigation Tree. These are the far field component in &amp;amp;theta; direction, the far field component in &amp;amp;phi; direction and the total far field defines as:&lt;br /&gt;
&lt;br /&gt;
[[File:FDTD129.png]]&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed by clicking on their name in the navigation tree. They are displayed in EM.Cube's project workspace and are overlaid on the project's structure. The view of a 3D radiation pattern plots can be changed with the available view operations such as rotate view, pan, zoom, etc. If the structure blocks the view of the pattern, you can simply hide the whole structure or parts of it. The fields are always normalized to the maximum of the total far field. A legend box appears in the upper right corner of the 3D radiation plot, which can be moved around by clicking and dragging with the left mouse button. The calculated Directivity of the radiating structure is displayed at the bottom of the legend box. It is important to note that if the PO structure is excited by an incident plane wave, the radiation patterns indeed represent the far-zone scattered field data.&lt;br /&gt;
&lt;br /&gt;
[[File:PO46.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: 3D radiation pattern of a parabolic dish reflector excited by a short dipole at its focal point.&lt;br /&gt;
&lt;br /&gt;
=== Radar Cross Section ===&lt;br /&gt;
&lt;br /&gt;
[[File:PO47.png|thumb|300px|PO Module's RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields. EM.Cube calculates the radar cross section (RCS) of a target, which is defined in the following manner:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[File:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Three RCS quantities are computed: the &amp;amp;theta; and &amp;amp;phi; components of the radar cross section as well as the total radar cross section, which are dented by &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. In addition, EM.Cube's [[PO Module]] calculates two types of RCS for each structure: '''Bi-Static RCS''' and '''Mono-Static RCS'''. In bi-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at all &amp;amp;theta; and &amp;amp;phi; angles. In mono-static RCS, the structure is illuminated by a plane wave at incidence angles &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, and the RCS is measured and plotted at the echo angles 180°-&amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; and &amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. It is clear that in the case of mono-static RCS, the PO simulation engine runs an internal angular sweep, whereby the values of the plane wave incidence angles &amp;amp;theta; and &amp;amp;phi; are varied over the entire intervals [0°, 180°] and [0°, 360°], respectively, and the backscatter RCS is recorded.&lt;br /&gt;
&lt;br /&gt;
To calculate RCS, first you have to define an RCS observable instead of a radiation pattern. Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog. Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button. Select the type of RCS from the two radio buttons labeled '''Bi-Static RCS''' and '''Mono-Static RCS'''. The former is the default choice. The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees. At the end of a PO simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another azimuth angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the thee RCS plots &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; are added under the far field section of the Navigation Tree. These plots are very similar to the three 3D radiation pattern plots. You can view them by clicking on their names in the navigation tree. The RCS values are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. For visualization purposes, the 3D plots are normalized to the maximum RCS value, which is also displayed in the legend box. Keep in mind that computing the 3D mono-static RCS may take an enormous amount of computation time.&lt;br /&gt;
&lt;br /&gt;
[[File:PO48.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure: RCS of a PEC sphere illuminated by an laterally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
=== Customizing 3D Plots ===&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's current distribution plots are interactive. When you move the mouse over a current plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the current data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the current value at that point. In other words, you can read the plot values using mouse-over. The legend of a current plot also shows the minimum and maximum current values, the current unit (A/m on metallic traces, V/m on slot traces and A/m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; on embedded objects) as well as the mean current and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys25_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading current values from a current distribution map by mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic current distributions: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the current amplitude and phase using colored triangular mesh cells. The second type is a vectorial plot showing cones (or arrows) directed along the visualized current component. In the case of the total electric current distribution, the cone plot shows the overall direction of the currents at any point on the surface of objects. To set the type of a current plot, open the current distribution plot's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the current distribution before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys26_tn.png|400px]] [[File:po_phys27_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: A vectorial (cone-type) current distribution plot of the PEC sphere: (Left) overlaid on mesh and (Right) with the sphere object frozen.&lt;br /&gt;
&lt;br /&gt;
Current distribution maps are displayed with some default settings and options. You can customize the individual maps (total, magnitude, phase, etc.). To do so, open the '''Output Plot Settings Dialog''' by right clicking on the specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. Two '''scale''' options are available: '''Linear''' and '''dB'''. With the '''Linear''' (default) option selected, the current value is always normalized to the maximum total current in that plane, and the normalized scale is mapped between the minimum and maximum values. If the '''dB''' option is selected, the normalized current is converted to dB scale. The plot limits (bounds) can be set individually for every current distribution plot. In the '''Limits''' section of the plot's property dialog, you see four options: '''Default''', '''User Defined''', '''95% Conf.''' and '''95% Conf.'''. Select the user defined option and enter new values for the '''Lower''' and '''Upper''' limits. The last two options are used to remove the outlier data within the 95% and 99% confidence intervals, respectively. In other words, the lower and upper limits are set to ? ± 1.96? and ? ± 2.79? , respectively, assuming a normal distribution of the data. Three color maps are offered: '''Default''', '''Rainbow''' and '''Grayscale'''. You can hide the legend box by deselecting the box labeled '''Show Legend Box'''. You can also change the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys28.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The output plot settings dialog.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE's field plots are interactive. When you move the mouse over a field plot, tiny dots appear on its surface. These dots correspond to the points on the sensor plane where the field data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the field value at that point. In other words, you can read the plot values using mouse-over. The legend of a field plot also shows the minimum and maximum field values, the field unit (V/m for electric and A/m for magnetic) as well as the mean field and the standard deviation.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys33_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reading field values form a 3-D sensor plot using mouse-over.&lt;br /&gt;
&lt;br /&gt;
EM.CUBE offers two different ways of visualizing electric and magnetic fields: as a confetti plot or a cone plot. The first type is a scalar intensity plot and shows the field amplitude and phase using small colored pixels whose size is depends on the total size of the sensor plane and its number of samples. The second type is a vectorial plot showing cones (or arrows) directed along the visualized field component. In the case of the total electric and magnetic fields, the cone plots show the overall direction of the fields at any point on the sensor plane. To set the type of a field plot, open the field sensor's property dialog by right clicking its name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the Plot Type section, choose one of the two radio buttons labeled '''Confetti''' or Cone. In the latter case, you can set the size of the vector cones using the box labeled '''Max Size'''. You can set the plot type at the time of defining the field sensor before running the PO simulation. You can also change the plot type afterwards and switch between the confetti and cone types back and forth.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys34_tn.png|400px]] [[File:po_phys35_tn.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure: Vectorial visualization of the electric and magnetic fields: (Left) E-field, (Right) H-field.&lt;br /&gt;
&lt;br /&gt;
Similar to current distribution plots, field plots (total, magnitude, phase, etc.) are displayed with some default settings and options, which can be further customized individually. To do so, open the '''Output Plot Settings''' dialog by right clicking on a specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. The settings are identical to those of current distribution plots. Two scale options, linear and dB, are available. You can also change the lower and upper limits of the individual field plots as well as their color map.&lt;br /&gt;
&lt;br /&gt;
=== 2D Radiation Pattern &amp;amp;amp; RCS Graphs ===&lt;br /&gt;
&lt;br /&gt;
At the end of a PO simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes as well as an additional user defined phi plane cut are available for plotting on 2-D graphs. There are a total of eight 2-D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or select '''Compute [[File:larrow_tn.png]] Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by clicking and highlighting its '''ID''' in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of a PO sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the theta and phi angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.CUBE, the axial ratio is always defined in the LCPz or RCPz sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;amp;quot;Additional Radiation Characteristics&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2-D Cartesian graphs of the axial ratio as functions of the theta angle a generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of a PO sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In this case, either quantity needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
The 2D RCS graphs can be plotted from EM.CUBE's data manager exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. At the end of a sweep simulation, EM.CUBE calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp;amp; Elevation''' in the &amp;amp;quot;Output Settings&amp;amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys40.png]]&lt;br /&gt;
&lt;br /&gt;
The data manager dialog showing a list of 2-D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
The 2-D radiation patterns in the XY, YZ and ZX plane cuts.&lt;br /&gt;
&lt;br /&gt;
=== PO Sweep Simulations ===&lt;br /&gt;
&lt;br /&gt;
You can run EM.Cube's PO simulation engine in the sweep mode, whereby a parameter like frequency, plane wave incident angles or a user defined variable is varied over a specified range at predetermined samples. The output data are saved into data files for visualization and plotting. EM.Cube's [[PO Module]] currently offers three types of sweep:&lt;br /&gt;
&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
&lt;br /&gt;
To run a PO sweep, open the '''Simulation ''''''Run Dialog''' and select one of the above sweep types from the '''Simulation Mode''' dropdown list of this dialog. If you select either frequency or angular sweep, the '''Settings''' button located next to the simulation mode dropdown list becomes enabled. If you click this button, the Frequency Settings Dialog or Angle Settings Dialog opens up, respectively. In the frequency settings dialog, you can set the start and end frequencies as well as the number of frequency samples. The start and end frequency values are initially set based on the project's center frequency and bandwidth. During a frequency sweep, as the project's frequency changes, so does the wavelength. As a result, the mesh of the structure also changes at each frequency sample. The frequency settings dialog gives you three choices regarding the mesh of the project structure during a frequency sweep:&lt;br /&gt;
&lt;br /&gt;
# Fix mesh at the highest frequency.&lt;br /&gt;
# Fix mesh at the center frequency.&lt;br /&gt;
# Re-mesh at each frequency.&lt;br /&gt;
&lt;br /&gt;
You can run an angular sweep only if your project has a plane wave excitation. In this case, you have to define a plane wave source with the default settings. During an angular sweep, either the incident theta angle or incident phi angle is varied within the specified range. The other angle remains fixed at the value that is specified in the '''Plane Wave Dialog'''. You have to select either '''Theta''' or '''Phi''' as the '''Sweep Angle''' in the Angle Settings Dialog. You also need to set the start and end angles as well as the number of angle samples.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, one or more user defined [[variables]] are varied at the same time over their specified ranges. This creates a parametric space with the total number of samples equal to the product of the number of samples for each variable. The user defined [[variables]] are defined using EM.Cube's '''[[Variables]] Dialog'''. For a description of EM.Cube [[variables]], please refer to the &amp;amp;quot;Parametric Modeling, Sweep &amp;amp;amp; [[Optimization]]&amp;amp;quot; section of EM.Cube Manual or see the &amp;amp;quot;Parametric Sweep&amp;amp;quot; sections of the FDTD or [[Planar Module]] manuals.&lt;br /&gt;
&lt;br /&gt;
[[File:po_phys52.png]] [[File:po_phys54.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[PO Module]]'s Frequency Settings and Angle Settings dialogs.&lt;br /&gt;
&lt;br /&gt;
=== Animation Of PO Data ===&lt;br /&gt;
&lt;br /&gt;
At the end of a frequency sweep, angular sweep or parametric sweep simulation in EM.Cube's [[PO Module]], the output data are saved for visualization and plotting. In particular, if you have defined current distribution, field sensor or far field observables in your project, multiple 3D plots, as many as the total number of sweep samples, are added to the Navigation Tree. In a single simulation run, a total of 14 current distribution plots, 14 field sensor plot and 3 radiation pattern plots or 3 RCS plots are generated under every observable node defined in the Navigation Tree. However, after a sweep simulation, only one plot is saved for each sweep sample. This is done to keep the resulting plots manageable. Thus, only the total radiation pattern or total RCS are saved for each sweep sample. In the case of a current distribution observable, you have the choice to save either the magnitude of total electric current distribution '''|J&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''or the magnitude of total magnetic current distribution '''|M&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;|'''. To change this, open the '''Current Distribution Dialog''' by right clicking on the observable's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Current Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''Electric Current (J)''' or '''Magnetic Current (M)'''. Similarly, in the case of a field sensor observable, you have the choice to save either the total E-field magnitude plot or the total H-field magnitude plot. To change this, open the '''Field Sensor Dialog''' by right clicking on a field sensor's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Field Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''E-Field''' or '''H-Field'''.&lt;br /&gt;
&lt;br /&gt;
[[File:PO39.png]] [[File:PO40.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the current or field types for sweep data visualization in [[PO Module]]'s Current Distribution and Field Sensor dialogs.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.CUBE consists of consecutive display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
The animation controls dialog and animation of the H-field plots of a PEC sphere after an angular sweep.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-13T14:09:23Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Periodic FDTD Simulation Types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and &amp;amp;Phi; is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
===Anisotropic Materials===&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Anisotropic Material dialog.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
===FDTD Mesh Settings===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
# TMz&lt;br /&gt;
# TEz&lt;br /&gt;
# Custom Linear&lt;br /&gt;
# LCPz&lt;br /&gt;
# RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
===The FDTD Simulation Engine Settings===&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD64(1).png]]&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD65.png]]&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD68.png]]&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD69.png]]&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD70.png]]&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out36_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out37_tn.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out38_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out39_tn.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant &amp;amp;phi;-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle &amp;amp;phi; as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-13T14:08:50Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Radar Cross Section */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and &amp;amp;Phi; is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
===Anisotropic Materials===&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Anisotropic Material dialog.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
===FDTD Mesh Settings===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
# TMz&lt;br /&gt;
# TEz&lt;br /&gt;
# Custom Linear&lt;br /&gt;
# LCPz&lt;br /&gt;
# RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
===The FDTD Simulation Engine Settings===&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD64(1).png]]&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD65.png]]&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD68.png]]&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD69.png]]&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD70.png]]&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out36_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out37_tn.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out38_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out39_tn.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant &amp;amp;phi;-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another &amp;amp;phi; angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle f as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-13T14:08:17Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Defining The Far Field Box */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and &amp;amp;Phi; is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
===Anisotropic Materials===&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Anisotropic Material dialog.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
===FDTD Mesh Settings===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
# TMz&lt;br /&gt;
# TEz&lt;br /&gt;
# Custom Linear&lt;br /&gt;
# LCPz&lt;br /&gt;
# RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
===The FDTD Simulation Engine Settings===&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD64(1).png]]&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD65.png]]&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD68.png]]&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD69.png]]&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD70.png]]&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at &amp;amp;phi; = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out36_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out37_tn.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out38_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out39_tn.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another f angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle f as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-13T14:07:35Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Waveform, Bandwidth &amp;amp; Stability */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and &amp;amp;Phi; is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
===Anisotropic Materials===&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Anisotropic Material dialog.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
===FDTD Mesh Settings===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
# TMz&lt;br /&gt;
# TEz&lt;br /&gt;
# Custom Linear&lt;br /&gt;
# LCPz&lt;br /&gt;
# RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
===The FDTD Simulation Engine Settings===&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD64(1).png]]&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD65.png]]&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD68.png]]&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD69.png]]&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD70.png]]&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out36_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out37_tn.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out38_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out39_tn.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another f angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle f as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-13T14:06:52Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Plane Waves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and F is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
===Anisotropic Materials===&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Anisotropic Material dialog.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
===FDTD Mesh Settings===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
# TMz&lt;br /&gt;
# TEz&lt;br /&gt;
# Custom Linear&lt;br /&gt;
# LCPz&lt;br /&gt;
# RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta; = 180° and &amp;amp;phi; = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
===The FDTD Simulation Engine Settings===&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD64(1).png]]&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD65.png]]&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD68.png]]&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD69.png]]&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD70.png]]&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out36_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out37_tn.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out38_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out39_tn.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another f angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle f as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-13T14:05:43Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Visualizing 3D Radiation Patterns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and F is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
===Anisotropic Materials===&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Anisotropic Material dialog.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
===FDTD Mesh Settings===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
# TMz&lt;br /&gt;
# TEz&lt;br /&gt;
# Custom Linear&lt;br /&gt;
# LCPz&lt;br /&gt;
# RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta = 180° and f = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
===The FDTD Simulation Engine Settings===&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD64(1).png]]&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD65.png]]&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD68.png]]&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD69.png]]&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD70.png]]&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E^{ff}}(\theta,\phi) \big|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out36_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out37_tn.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out38_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out39_tn.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another f angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle f as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-13T14:03:56Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Visualizing 3D Radiation Patterns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and F is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
===Anisotropic Materials===&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Anisotropic Material dialog.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
===FDTD Mesh Settings===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
# TMz&lt;br /&gt;
# TEz&lt;br /&gt;
# Custom Linear&lt;br /&gt;
# LCPz&lt;br /&gt;
# RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta = 180° and f = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
===The FDTD Simulation Engine Settings===&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD64(1).png]]&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD65.png]]&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD68.png]]&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD69.png]]&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD70.png]]&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;|\mathbf{E_{ff,tot}}| = \sqrt{| E_{\theta}|^2 + |E_{\phi}|^2 }&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD129.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
D_0 = \frac{4\pi [S(\theta,\phi)]_{max}}{P_{rad}} = &lt;br /&gt;
\frac{ 4\pi \left| \mathbf{E^{ff}}(\theta,\phi) \right|^2 |_{max} }&lt;br /&gt;
{ \int\limits_0^{2\pi} \int\limits_0^{\pi} \left| \mathbf{E^{ff}}(\theta,\phi) \right|^2 \sin\theta \,d\theta \,d\phi }&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD113.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_out26_tn.png]] [[Image:fdtd_out28_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out36_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out37_tn.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out38_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out39_tn.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another f angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle f as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-13T13:55:32Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Far Field Calculations in FDTD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and F is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
===Anisotropic Materials===&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Anisotropic Material dialog.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
===FDTD Mesh Settings===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
# TMz&lt;br /&gt;
# TEz&lt;br /&gt;
# Custom Linear&lt;br /&gt;
# LCPz&lt;br /&gt;
# RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta = 180° and f = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
===The FDTD Simulation Engine Settings===&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD64(1).png]]&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD65.png]]&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD68.png]]&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD69.png]]&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD70.png]]&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;r &amp;lt;&amp;lt; \frac{2D^2}{\lambda_0}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD79.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{E(r) = E} (r,\theta,\phi) = \frac{e^{-jk_0 r}}{r} \mathbf{E^{ff}}(\theta,\phi) \\&lt;br /&gt;
&amp;amp; \mathbf{H(r) = H} (r,\theta,\phi) = \frac{1}{\eta_0} \mathbf{ \hat{r} \times E^{ff}(r) }&lt;br /&gt;
\end{align}&lt;br /&gt;
\quad&lt;br /&gt;
k_0 r &amp;gt;&amp;gt; 1&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD104(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{align}&lt;br /&gt;
&amp;amp; \mathbf{N(r)} = \iint_S \mathbf{J(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; \mathbf{L(r)} = \iint_S \mathbf{M(r')} e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
\end{align}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD107.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{\hat{r}} = \sin\theta \cos\phi \mathbf{\hat{x}} +&lt;br /&gt;
\sin\theta \sin\phi \mathbf{\hat{y}} + \cos\theta \mathbf{\hat{z}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD108.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; E_{\theta}^{ff}(\theta, \phi) = -\frac{jk_0}{4\pi} (L_{\phi} + \eta_0 N_{\theta}) \\&lt;br /&gt;
&amp;amp; E_{\phi}^{ff}(\theta, \phi) = \frac{jk_0}{4\pi} (L_{\theta} + \eta_0 N_{\phi})&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD106.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; N_{\theta}(\theta,\phi) = \iint_S [J_x\cos\theta\cos\phi + J_y\cos\theta\sin\phi - J_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; N_{\phi}(\theta,\phi) = \iint_S [-J_x \sin\phi + J_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; L_{\theta}(\theta,\phi) = \iint_S [M_x\cos\theta\cos\phi + M_y\cos\theta\sin\phi - M_z\sin\theta] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds' \\&lt;br /&gt;
&amp;amp; L_{\phi}(\theta,\phi) = \iint_S [-M_x \sin\phi + M_y\cos\phi] e^{ jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'&lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD109.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
\mathbf{W} = \frac{1}{2} \text{Re}(\mathbf{E \times H^*}) = &lt;br /&gt;
\frac{\mathbf{\hat{k}}}{2\eta_0} |\mathbf{E}(r,\theta,\phi)|^2 \, |_{r \to \infty}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD110.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S(\theta,\phi) = \lim_{r \to \infty} r^2 |\mathbf{W}| = \frac{1}{2\eta_0} | \mathbf{E^{ff}}(\theta,\phi)|^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD111.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
P_{rad} = \int\limits_0^{2\pi} d\phi \int\limits_0^{\pi} d\theta \, S(\theta,\phi) \sin\theta =&lt;br /&gt;
\frac{1}{2\eta_0} \int\limits_0^{2\pi} \int\limits_0^{\pi} |\mathbf{E^{ff}}(\theta,\phi)|^2 &lt;br /&gt;
\sin\theta \, d\theta \, d\phi&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD112.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD129.png]]&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD113.png]]&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out26_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out28_tn.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out36_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out37_tn.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out38_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out39_tn.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another f angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle f as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	<entry>
		<id>https://emagtech.com/wiki/index.php?title=EM.Tempo</id>
		<title>EM.Tempo</title>
		<link rel="alternate" type="text/html" href="https://emagtech.com/wiki/index.php?title=EM.Tempo"/>
				<updated>2013-06-13T13:26:51Z</updated>
		
		<summary type="html">&lt;p&gt;Dfeng: /* Scattering Parameters and Port Characteristics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EM.Tempo is a powerful time-domain electromagnetic simulator for full-wave modeling of 3D radiation, scattering and propagation problems. It features a highly efficient Finite Difference Time Domain (FDTD) simulation engine that has been optimized for speed and memory usage. EM.Tempo brings to your desktop the ultimate in computational power. Its FDTD solver has been parallelized to take full advantage of multi-core processor architectures. With a large variety of geometrical, material and excitation features including open-boundary and periodic structures, you can use EM.Tempo as a general purpose 3D field simulator for most of your electromagnetic modeling needs. New in 2013 is a hardware-accelerated version of the FDTD simulation engine that runs 30x-50x faster on graphical processing unit (GPU) platforms.&lt;br /&gt;
&lt;br /&gt;
EM.Tempo is the outcome of evolution of our first-generation FDTD tool, EM.Lounge, which was introduced in 2004. The original simulation code utilized an FDTD formulation based on uniaxial perfectly matched layer (UPML) boundary termination. Further expansion of that code culminated in a far superior boundary termination based on the convolutional perfectly matched layer (CPML), which performs equally well for all wave incidences at any arbitrary angle. Additionally, EM.Tempo now has the ability to model laterally infinite layered structures. It also provides a robust spectral domain formulation of periodic boundary conditions for modeling arbitrary periodic structures with oblique plane wave incidences. EM.Tempo's new advanced simulation capabilities are your key to understanding of wave interaction in complex media such as anisotropic composites or metamaterials.&lt;br /&gt;
&lt;br /&gt;
==An FDTD Modeling Primer==&lt;br /&gt;
&lt;br /&gt;
In the Finite Difference Time Domain (FDTD) method, a discretized form of Maxwell’s equations is solved numerically and simultaneously in both the 3D space and time. During this process, the electric and magnetic fields are computed everywhere in the computational domain and as a function of time starting at t = 0. From knowledge of the primary fields in space and time, one can compute other secondary quantities including frequency domain characteristics like scattering parameters, input impedance, far field radiation patterns, radar cross section, etc.&lt;br /&gt;
&lt;br /&gt;
A time domain simulation like FDTD offers several advantages over a frequency domain simulation. In certain applications, you may seek the time domain signature or behavior of a system. For example, the transient response of a circuit or an antenna might be of primary interest. In other applications, you may need to determine in the wideband frequency response of a system. In such cases, using a frequency domain technique, you have to run the simulation engine many times to adequately sample the specified frequency range. By contrast, using the FDTD method requires a single-run simulation. The temporal field data are transformed into the Fourier domain to obtain the wideband frequency response of the simulated system. Among other advantages of the FDTD method is its versatility in handling complex geometries and inhomogeneous material compositions as well as its superb numerical stability. It is worth noting that unlike frequency domain methods like the finite element method (FEM) or method of moments (MoM), the FDTD technique does not involve numerical solution of large ill-conditioned matrix equations that are often very sensitive to the mesh quality.&lt;br /&gt;
&lt;br /&gt;
Like every numerical technique, the FDTD method has disadvantages, too. Adding the fourth dimension, time, to the computations increases the size of the numerical problem significantly. Unfortunately, this translates to both larger memory capacity requirements and longer computation times. Note that the field data are generated in both the 3D space and time. EM.Cube's [[FDTD Module]] uses a staircase &amp;quot;Yee&amp;quot; mesh to discretize the physical structure. This works perfectly well for rectangular objects that are oriented along the three principal axes. Difficulties start to appear for highly curved structures or slanted surfaces and lines. As a result, the quantization effect might compromise the geometrical fidelity of your structure. EM.Cube provides a default adaptive FDTD mesher that can capture the fine details of geometric contours, slanted thin layers, surfaces, etc. to arbitrary precision. However, due to the stability criterion, smaller mesh cells lead to smaller time steps, hence longer computation times. Another disadvantage of the FDTD technique compared to naturally open-boundary methods like MoM is its finite-extent computational domain. This means that to model open boundary problems like radiation or scattering, absorbing boundary conditions are needed to dissipate the incident waves at the walls of the computational domain and prevent them from reflecting back into the domain. The accuracy of the FDTD simulation results depends on the quality of these absorbers and their distance from the actual physical structure. EM.Cube's [[FDTD Module]] provides high quality perfectly match layer (PML) terminations at the boundaries, which can be placed only a quarter wavelength or less from your physical structure.&lt;br /&gt;
&lt;br /&gt;
The simulated structure in FDTD usually consists of a number of objects that may have different material properties. EM.Cube’s [[FDTD Module]] categorizes objects by their material composition. Several material types are currently offered: Perfect Electric Conductor (PEC), Perfect Magnetic Conductor (PMC), Isotropic &amp;amp; Homogeneous Dielectric, Uniaxial Anisotropic, Full Anisotropic, and three types of dispersive materials: Debye, Drude and Lorentz.&lt;br /&gt;
&lt;br /&gt;
===Basics of Yee Discretization===&lt;br /&gt;
&lt;br /&gt;
Since FDTD is a finite domain numerical technique, the computational domain of the problem must be truncated. At the boundaries of the computational domain, proper boundary conditions must be enforced. In a shielded structure, all objects are enclosed within a perfect electric (or magnetic) conductor box. In an open boundary problem like an antenna, some kind of absorbing boundary conditions such as a perfectly matched layer (PML) must be used to emulate the free space.&lt;br /&gt;
&lt;br /&gt;
The computational domain is discretized using an appropriate meshing scheme. EM.Cube uses a non-uniform, variable, staircase (pixelated) Yee mesh with a mesh density that you can customize. A fixed-cell mesh generator is also available, where you can set constant cell dimensions along the three principal axes for the entire computational domain. The variable mesh density is specified in terms of the effective wavelength inside material media. As a result, the mesh resolution and average mesh cell size differ in regions that are filled with different types of material. EM.Cube's non-uniform mesher generates more cells in the areas that are occupied by dielectric materials, fewer cells in the free space regions and no cells inside (impenetrable) PEC regions. [[FDTD Module]]'s default &amp;quot;adaptive&amp;quot; mesh generator also refines the mesh around curved segments of lines, surface or solids to produce a far more accurate representation of your geometry. The example below illustrates a dielectric ellipsoid and a 3D view of its Yee mesh:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD93.png|400px]] [[Image:FDTD94.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A dielectric object and its Yee mesh in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
===Differential Form of Maxwell's Equations===&lt;br /&gt;
&lt;br /&gt;
The differential form of Maxwell’s equations are solved numerically using a time marching finite difference scheme inside all the Yee grid cells. The following illustration shows the field components in the Yee grid.&lt;br /&gt;
&lt;br /&gt;
[[File:fdtd1_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The Yee cell geometry and definition of the electric and magnetic field components.&lt;br /&gt;
&lt;br /&gt;
For example, Maxwell’s equations for an isotropic, time-invariant and homogeneous medium without electric or magnetic losses are given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{H}}{\delta t} = -\dfrac{1}{\mu} \Delta \times \mathbf{E}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\dfrac{\delta \mathbf{E}}{\delta t} = -\dfrac{1}{\epsilon} \Delta \times \mathbf{H}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, &amp;amp;epsilon; is the permittivity and &amp;amp;mu; is the permeability. Both time- and space-derivatives are approximated with central finite differences. This results in six differential equations, one for each field component. For the field components in x-direction, the field equations result in:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{n+\frac{1}{2}} (i,j,k) = H_x^{n-\frac{1}{2}} (i,j,k) + \frac{\Delta t}{\mu (i,j,k)} \left[ \frac{E_{y}^{n}(i,j,k+1) - E_{y}^{n}(i,j,k)}{\Delta z} - \frac{E_{z}^{n} (i,j+1,k)-E_{z}^{n} (i,j,k)}{\Delta y} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; {E_{x}^{n+1} (i,j,k) = E_{x}^{n} (i,j,k)} + \frac{\Delta t}{\epsilon (i,j,k)} \left[ \frac{H_{z}^{n+\frac{1}{2} } (i,j,k) - H_{z}^{n+\frac{1}{2} } (i,j-1,k)}{\Delta y} - \frac{H_{y}^{n+\frac{1}{2} } (i,j,k) - H_{y}^{n+\frac{1}{2} } (i,j,k-1)}{\Delta z} \right]  &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD61.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where i, j, k are the grid position indices along the X, Y, Z axes and n is the current time step. Similar expressions are obtained for the Y and Z components of the electric and magnetic fields. When your physical structure involves lossy materials with nonzero electric conductivity &amp;amp;sigma; and/or nonzero electric conductivity &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;, the above update equations become more complicated. In the case of anisotropic materials with tensorial constitutive parameters, the electric displacement vector D and magnetic induction vector B need to be involved in the update of Maxwell's equations at every time step. This results in a total of twelve update equations at every time step. In the case of dispersive materials with time-varying constitutive parameters, additional auxiliary differential equations are invoked and updated at every time step. Applying the proper boundary conditions for all the materials inside the computational domain and at the boundaries of the domain itself, EM.Cube calculates and &amp;quot;updates&amp;quot; all the necessary field components at every mesh node, at every time step. The time marching loop continues in this way until it is terminated based on a certain criterion.&lt;br /&gt;
&lt;br /&gt;
===Waveform, Bandwidth &amp;amp; Stability===&lt;br /&gt;
The FDTD method provides a wideband simulation of your physical structure. Frequency domain techniques often require a tedious frequency sweep to calculate the port characteristics (S/Y/Z parameters). By contrast, EM.Cube's [[FDTD Module]] performs a discrete Fourier transform (DFT) of the time domain data to calculate these characteristics at the end of a single FDTD simulation run. In order to produce sufficient spectral information, an appropriate wideband temporal waveform is needed to excite the physical structure. The general form of EM.Cube's default excitation waveform is a Modulated Gaussian Pulse given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t)=E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right) \cos \left(2\pi f_0 (t-t_0)-\Phi \right),\quad j=x,y,z  &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD62.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, t is the Gaussian pulse width, and F is a constant phase. In the limits, the above waveform can be reduced either to a simple Gaussian pulse:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_0(r) \exp \left(-\frac{(t-t_0)^2}{\tau ^2} \right),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD89.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or to a continuous, single-tone, sinusoidal waveform with a frequency of f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_j^{inc}(r,t) = E_{0} (r)\cos (2\pi f_0 (t-t_0)-\Phi),\quad j=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD90.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The choice of the waveform, its bandwidth and time delay are important for the convergence behavior of the FDTD time marching loop. By default, EM.Cube uses a modulated Gaussian waveform with optimal parameters: t = 0.966/&amp;amp;Delta;f and t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 4.5t, where &amp;amp;Delta;f is the specified bandwidth of the simulation. The time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is chosen so that the temporal waveform has an almost zero value at t = 0. Of the above waveforms, modulated Gaussian and sinusoidal waveforms are band pass with no DC content, while the Gaussian pulse is low pass with a frequency spectrum that is concentrated around f = 0. In a typical FDTD simulation, you set a center frequency for the structure of interest and then specify a bandwidth around this center frequency. These together determine the lowest and highest spectral contents of your FDTD waveform. Note that setting a bandwidth equal to 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sets the lowest frequency to DC (f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = 0), which you may want to avoid in certain applications. On the other hand, using a Gaussian pulse waveform, you do want to set &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. In contrast to the wideband, exponentially decaying, Gaussian pulse and modulated Gaussian waveforms, the sinusoidal waveform is extremely narrowband and single-frequency indeed. It does not decay over time and continues to oscillate indefinitely after reaching a steady state.&lt;br /&gt;
&lt;br /&gt;
Another issue of concern in an FDTD simulation is the numerical stability of the time marching scheme. You can set the mesh grid cell size to any fraction of a wavelength. Normally, you would expect to get better and more accurate results if you increase the mesh resolution. However, the time step is inversely proportional to the maximum grid cell size in order to satisfy the Courant-Friedrichs-Levy (CFL) stability condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le \frac{K_{CFL}} {c\sqrt{\left(\dfrac{1}{\Delta x_{min}} \right)^2 + \left(\dfrac{1}{\Delta y_{min}} \right)^2 + \left(\dfrac{1}{\Delta z_{min}} \right)^2 } } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD91(1).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where c is the speed of light, and K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; is a constant. EM.Cube uses a default value of K&amp;lt;sub&amp;gt;CFL&amp;lt;/sub&amp;gt; = 0.9. For a uniform grid with equal cell dimensions along the X, Y and Z directions, i.e. &amp;amp;Delta;x = &amp;amp;Delta;y = &amp;amp;Delta;z = &amp;amp;Delta;, and the CFL condition reduces to:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \Delta t \le K_{CFL} \frac{\Delta}{\sqrt{3}c}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD92.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As can be seen from the above criterion, a high resolution mesh requires a smaller time step. Since you need to let the fields in the computational domain fully evolve over time, a smaller time step will require a larger number of time steps to achieve convergence. EM.Cube automatically chooses a time step that satisfies the CFL condition.&lt;br /&gt;
&lt;br /&gt;
===Perfectly Matched Layer Termination===&lt;br /&gt;
The FDTD simulation time depends directly on the size of the computational domain. For free space radiation or scattering problems, the computational domain must be extended to infinity, which means an infinite number of cells in the computational domain. The solution to this problem is to truncate the domain by a set of artificial boundaries at a certain distance from the objects in the computational domain. The absorbing boundaries should be such that the field propagates through them without any back reflection. Different methods have been used to simulate an absorbing boundary condition in FDTD simulations. The most common ones are Mur, Liao, and the perfectly match layer (PML). The Mur boundary condition calculates the boundary field values from the three dimensional scalar wave equations, while the Liao boundary condition is based on extrapolation of the fields in space and time. In 1994, Berenger proposed a new boundary condition called the perfectly matched layer (PML), which provides a much better performance than the Liao and Mur boundary conditions. The PML medium properties surrounding the computational domain are chosen to effectively absorb all the outgoing waves propagating towards the boundaries. In PML regions, an artificial conductivity is introduced such that it starts with very small values at the free space-PML interfaces and gradually increases until it reaches its maximum value at the last layer of the PML region.&lt;br /&gt;
&lt;br /&gt;
The PML boundary condition is not effective in absorbing evanescent waves, and it suffers from late-time reflections when simulating fields with very long time signatures. This is partly due to the weakly causal nature of the PML. A strictly causal form of the PML, known as the complex frequency-shifted PML (CFS-PML), was later developed by simply shifting the frequency dependent pole off the real axis and into the negative-imaginary half of the complex plane. It has been shown that the CFS-PML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using the CFS-PML, the boundaries can be placed closer to the objects in the computational domain, and considerable time and memory savings can be achieved. The convolutional PML (CPML) is an efficient implementation of the CFS-PML based on a stretched coordinate formulation in conjunction with recursive convolution. It has been shown that CPML requires only two auxiliary [[variables]] per discrete field point and absorbs waves in isotropic, homogeneous, inhomogeneous, lossy, dispersive, anisotropic or non-linear media without any further generalization.&lt;br /&gt;
&lt;br /&gt;
The CPML is formulated in the stretched coordinate space. The CPML layers are assumed to terminate the FDTD computational domain. The X components of Maxwell's frequency-domain curl equations can then be written in the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\epsilon_x + \sigma_{ex})\tilde{E}_x = \frac{1}{s_{ey}} \frac{\partial \tilde{H}_z}{\partial y} - \frac{1}{s_{ez}} \frac{\partial \tilde{H}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; (j\omega\mu_x + \sigma_{mx}) \tilde{H}_x = -\frac{1}{s_{my}} \frac{\partial \tilde{E}_z}{\partial y} + \frac{1}{s_{mz}} \frac{\partial \tilde{E}_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD95.png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the stretched coordinate metrics defined by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = \kappa_{ei} + \frac{\sigma_{ei}}{\alpha_{ei} + j\omega\varepsilon_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{mi} = \kappa_{mi} + \frac{\sigma_{mi}}{\alpha_{mi} + j\omega\mu_0}, \quad i=x,y,z &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Image:FDTD96(2).png]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are the anisotropic components of the synthesized electric and magnetic conductivities in the CPML region. &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; , &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; are all assumed to be positive real and &amp;amp;kappa;&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt; &amp;amp;ge; 1. Similar equations hold for the Y and Z components of the electric and magnetic fields in the CPML layers. The requirement for zero reflection at PML-PML interfaces imposes the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; s_{ei} = s_{mi} \quad \Rightarrow \quad \kappa_{ei} = \kappa_{mi} ,\quad \frac{\sigma_{ei}}{\varepsilon_0} = \frac{\sigma _{mi}}{\mu_0}, \quad \frac{\alpha_{ei}}{\varepsilon_0} = \frac{\alpha_{mi}}{\mu _0} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD99.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tilde notation above denotes the Fourier transform of the field components in the frequency domain. Transforming the above equations back to the time domain, one encounters convolution on the right hand side due to the frequency dependence of the stretched coordinate metrics:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\varepsilon_x \frac{\partial E_x}{\partial t} + \sigma_{ex}E_x \right) = \breve{s}_{ey}(t) \frac{\partial H_z}{\partial y} - \breve{s}_{ez}(t)\frac{\partial H_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left(\mu_x \frac{\partial H_x}{\partial t} + \sigma_{mx}H_x \right) = -\breve{s}_{my}(t)\frac{\partial E_z}{\partial y} + \breve{s}_{mz}(t)\frac{\partial E_y}{\partial z} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD98.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where š&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;(t) and š&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;(t) denote functions of time that are indeed the inverse Laplace transform of s&amp;lt;sub&amp;gt;ei&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt; and s&amp;lt;sub&amp;gt;mi&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;-1&amp;lt;/sup&amp;gt;,respectively, given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{ei}(t) = \frac{\delta(t)}{\kappa_{ei}} - \frac{\sigma_{ei}}{\kappa_{ei}^2} u(t)\exp \left[-\left(\frac{\sigma_{ei}}{\kappa_{ei}} + \alpha_{ei} \right)\frac{t}{\varepsilon_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \breve{s}_{mi}(t) = \frac{\delta(t)}{\kappa_{mi}} - \frac{\sigma_{mi}}{\kappa_{mi}^2} u(t)\exp \left[-\left(\frac{\sigma_{mi}}{\kappa_{mi}} + \alpha_{mi} \right)\frac{t}{\mu_0} \right] &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD97(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where d(t) and u(t) denote the Dirac delta and unit step functions, respectively. The convolutions on the right hand side of the time domain equations can be accelerated by the use of the recursive convolution (RC) method.&lt;br /&gt;
&lt;br /&gt;
The CPML parameters are chosen to be an increasing function of the distance from the boundaries of the computational domain. EM.Cube uses a polynomial profile of degree n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt;. Given the interrelationships among these parameters, one can write:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \sigma_{ei}(r) = \frac{\varepsilon_0}{\mu_0}\sigma_{mi}(r) = \sigma_{max}\left( \dfrac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \kappa_{ei}(r) = \kappa_{mi}(r) = 1 + \left( \kappa_{max} - 1 \right) \left( \dfrac{r}{\delta} \right)^{n_{PML} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \alpha_{ei}(r) = \frac{\varepsilon_0}{\mu_0} \alpha_{mi}(r) = \alpha _{min} + \left(\alpha_{max } - \alpha_{min } \right) \left( \frac{r}{\delta} \right)^{n_{PML}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD100(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where r is the distance of field observation point inside the CPML layer from the edge of the computational domain. The parameters &amp;amp;sigma;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;kappa;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, &amp;amp;alpha;&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; and &amp;amp;alpha;&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; as well as n&amp;lt;sub&amp;gt;PML&amp;lt;/sub&amp;gt; can be modified by the user.&lt;br /&gt;
&lt;br /&gt;
===Time Domain Simulation Of Periodic Structures===&lt;br /&gt;
&lt;br /&gt;
A periodic structure is one that repeats itself infinitely in one, two or three directions. EM.Cube's [[FDTD Module]] allows you to simulate doubly periodic structures with periodicities along the X and Y directions. Many interesting structures such as frequency selective surfaces (FSS), electromagnetic band-gap (EBG) structures and metamaterial structures can be modeled using periodic geometries. In the case of an infinitely extended periodic structure, it is sufficient to analyze only a unit cell. In the FDTD method, this is accomplished by applying periodic boundary conditions (PBC) at the side walls of the computational domain. The application of the PBC is straightforward for the case of a normally incident plane wave source since the fields do not experience any delay as they travel across the unit cell. Obliquely incident plane waves, on the other hand, cause a time delay in the transverse plane. This delay requires knowledge of the future values of the fields at any time step.&lt;br /&gt;
&lt;br /&gt;
A number of techniques have been proposed to solve this problem. EM.Cube uses a recently developed novel technique that is known as Direct Spectral FDTD or Constant Transverse Wavenumber method. In this technique, the components of the transverse (horizontal) wavenumber are kept constant in the direction of periodicity. This technique shows a significant advantage over the other methods for simulation of the incident illuminations close to the grazing angles.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_perdiag_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Diagram of a periodic structure illuminated by an obliquely incident plane wave in [[FDTD Module]].&lt;br /&gt;
&lt;br /&gt;
The figure above shows a doubly periodic structure with periods S&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; along the X and Y directions, respectively. The computational domain is terminated with PBC in both X and Y directions. Along the positive and negative Z directions, it is terminated with CPML layers. Bear in mind that the PBC is also applied to the CPML layers. The computational domain is excited by a TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; plane wave incident at z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The plane wave incidence angles are denoted by &amp;amp;theta; (elevation) and &amp;amp;phi; (azimuth) in the spherical coordinate system. The constant wavenumber components k&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; in this case are defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;k_x = k_0 \sin\theta\cos\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;k_y = k_0 \sin\theta \sin\phi&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD85.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;k_0 = \omega/c = 2\pi f/c = 2\pi/\lambda_0&amp;lt;/math&amp;gt; is the free space propagation constant, f is the operational frequency, &amp;amp;omega; is the angular frequency, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength, c is the speed of light in the free space. The constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; is then given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; k_l = \sqrt{k_x^2 + k_y^2} = k_0\sin\theta &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD86.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which depends only on &amp;amp;theta; and not on &amp;amp;phi;. On the excitation plane, the incident field adopts a modulated Gaussian waveform and a complex phase delay along the periodicity direction with the following form:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; H_x^{inc}(x,y,t) = -\frac{1}{\eta_0} \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; H_y^{inc}(x,y,t) = \frac{1}{\eta_0} \cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD87.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization and&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; E_x^{inc}(x,y,t) = \sin\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; E_y^{inc}(x,y,t) = -\cos\phi \; \exp \left(-\frac{(t-t_0)^2}{\tau^2} \right) \exp(j2\pi f_0 t) \exp(-jk_x x) \exp(-jk_y y)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD88.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; polarization. Here, f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the center frequency of the modulated Gaussian pulse waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, and &amp;amp;tau; is the Gaussian pulse width. The choices of the Gaussian waveform parameters are very critical in order to avoid possible resonances. For a fixed value of k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt;, the horizontal resonance occurs at:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{res} = \frac{k_l c}{2 \pi} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD101.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a fixed frequency &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; and a fixed incidence angle &amp;lt;math&amp;gt;\theta_0&amp;lt;/math&amp;gt;, the resonant frequency is reduced to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--:&amp;lt;math&amp;gt; f_{res} = f_0 \sin \theta_0 &amp;lt;/math&amp;gt;--&amp;gt;&lt;br /&gt;
[[Image:FDTD102.png]]&lt;br /&gt;
&lt;br /&gt;
The modulated Gaussian waveform must be chosen such that its effective bandwidth avoids the horizontal resonant frequency. Otherwise, the temporal response of the structure starts to oscillate, and the time marching loop will not converge. To avoid this problem, the modulation frequency and bandwidth of the waveform are chosen to satisfy the following condition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; f_{mod} \ge f_{res} + \dfrac{1}{2}\Delta f = \dfrac{k_{l,fixed}\;c}{2\pi} + \dfrac{1}{2}\Delta f &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD103.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Defining The Physical Structure==&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a physical structure consists of one or several objects that are grouped and identified by their material types. Materials are divided into five categories that are listed under the '''Physical Structure''' node at the top of the Navigation Tree:&lt;br /&gt;
&lt;br /&gt;
* [[#Perfect Conductors|Perfect Electric Conductor (PEC)]]&lt;br /&gt;
* [[#Perfect Conductors|Perfect Magnetic Conductor (PMC)]]&lt;br /&gt;
* [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
* [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
* [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
&lt;br /&gt;
Under each material node, you can create new material groups of the same type/category but with different properties (color, texture, or electric and magnetic constitutive parameters). These material groups are used to organize the CAD objects that you draw in the project workspace or import from external model files. When you create a new geometrical object such as a Box or a Sphere, it is inserted under the currently active material type. There is only one material group that is active at any time. It is normally recommended that you first create material groups, and then draw new objects as part of the currently active material group. However, if you start a new [[FDTD Module]] project from scratch, and you start drawing a new object without having previously defined any material groups, a new default PEC group is created and added to the Navigation Tree to hold your new CAD object.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD1.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
===Perfect Conductors===&lt;br /&gt;
EM.Cube's [[FDTD Module]] offers two types of perfect conductors:&lt;br /&gt;
&lt;br /&gt;
# '''Perfect Electric Conductor (PEC):''' The tangential electric field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PEC object. A PEC material is characterized by an infinite electric conductivity (&amp;amp;sigma; = &amp;amp;infin;).&lt;br /&gt;
# '''Perfect Magnetic Conductor (PMC):''' The tangential magnetic field on the surface of this type of perfect conductor is zero. The electric and magnetic fields are assumed to vanish inside the volume of a PMC object. A PMC material is characterized by an infinite magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; = &amp;amp;infin;).&lt;br /&gt;
&lt;br /&gt;
PEC and PMC materials do not have any constitutive material properties that you can modify except for their color or texture. Note that [[FDTD Module]]'s PMC materials are different in nature than the PMC traces you will find in EM.Cube's [[Planar Module]]. In the latter, the PMC term is applied to slot traces, which represent finite-sized cut-out objects (areas) from an infinite horizontal PEC ground plane. [[FDTD Module]]'s PMC objects, by contrast, can be arbitrarily oriented [[Surface Objects|surface objects]] or impenetrable [[Solid Objects|solid objects]] of finite extents.&lt;br /&gt;
&lt;br /&gt;
To define a new PEC or PMC material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on either the '''PEC''' or '''PMC''' items in Navigation Tree and select '''Insert New PEC/PMC...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the PEC or PMC material being created.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
Once a PEC or PMC node has been created on the Navigation Tree, you can draw objects in the project workspace, and they will be added under that node. In other words, all the CAD objects belonging to a PEC or PMC group have the same color or texture.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD2.png]] [[Image:FDTD3.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s PEC and PMC material dialogs.&lt;br /&gt;
&lt;br /&gt;
===Dielectric Materials===&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a dielectric material represents a general isotropic material with both electric and magnetic properties. The constitutive parameters of a dielectric material include permittivity (&amp;amp;epsilon;), permeability (&amp;amp;mu;), electric conductivity (&amp;amp;sigma;) and magnetic conductivity (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD17.png]]&lt;br /&gt;
&lt;br /&gt;
where '''E''' and '''H''' are the electric and magnetic fields, respectively, '''D''' is the electric flux density, also known as the electric displacement vector, '''B''' is the magnetic flux density, also known as the magnetic induction vector, and '''J '''and '''M '''are the electric and magnetic current densities, respectively. For example, an imperfect metal can be represented by a dielectric material that has a large, finite, electric conductivity. PEC and PMC, therefore, are the limiting cases of an isotropic dielectric material when &amp;amp;sigma; &amp;amp;rarr; &amp;amp;infin; or &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; &amp;amp;rarr; &amp;amp;infin;, respectively.&lt;br /&gt;
&lt;br /&gt;
To define a new Dielectric material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Relative Permeability''' (&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;), '''Electric Conductivity''' (&amp;amp;sigma;) and '''Magnetic Conductivity''' (&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;).&lt;br /&gt;
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open EM.Cube's Material List dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum '''in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.&lt;br /&gt;
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD4.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Dielectric Material dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD5.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's material list.&lt;br /&gt;
&lt;br /&gt;
===Anisotropic Materials===&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows you to define a general anisotropic material, whose constitutive parameters, i.e. permittivity ('''&amp;amp;epsilon;'''), permeability ('''&amp;amp;mu;'''), electrical conductivity ('''&amp;amp;sigma;''') and magnetic conductivity ('''&amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;'''), are all tensorial in nature. Each constitutive parameter in this case is represented by a 3×3 matrix:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD16.png]]&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;'''Uniaxial'''&amp;quot; material is a special case of an anisotropic material whose constitutive parameters are all diagonal matrices. Specifying an anisotropic material as &amp;lt;u&amp;gt;'''Uniaxial'''&amp;lt;/u&amp;gt; in the [[FDTD Module]] has a very important computational implication. There are six field update equations for uniaxial materials at each time steps: three for the electric field and three for the magnetic field. In this respect, a uniaxial material is similar to an isotropic dielectric material. On the other hand, a fully anisotropic material with non-zero off-diagonal constitutive matrix elements requires twelve update equations at each time step: three equations for the three components of each of the four vector fields '''E''', '''D''', '''H''' and '''B'''. As a result, the time loop for fully anisotropic materials takes much longer time than uniaxial materials.&lt;br /&gt;
&lt;br /&gt;
To define a new Anisotropic material, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Anisotropic''' item of the Navigation Tree and select '''Insert New Anisotropic...''' from the contextual menu.&lt;br /&gt;
* Specify a '''Label''' and '''Color''' (and optional Texture) for the anisotropic material being created.&lt;br /&gt;
* By default, the box labeled '''Uniaxial Material''' is checked. This means that all the constitutive matrices are diagonal. The off-diagonal elements of '''&amp;amp;epsilon;''', '''&amp;amp;mu;''', '''&amp;amp;sigma;''' and ''' &amp;amp;sigma;&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;''' matrices are all set to zero and greyed out. You need to enter values for the diagonal elements of these matrices. To set values for the off-diagonal elements of the constitutive matrices, you have to remove the &amp;quot;Anisotropic&amp;quot; check mark first.&lt;br /&gt;
* Click the '''OK''' button of the dialog to accept the changes and close it.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD6.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Anisotropic Material dialog.&lt;br /&gt;
&lt;br /&gt;
===Dispersive Materials===&lt;br /&gt;
&lt;br /&gt;
[[#Perfect Conductors|PEC]], [[#Perfect Conductors|PMC]], [[#Dielectric Materials|dielectric]] and [[#Anisotropic Materials|anisotropic]] materials are non-dispersive. In other words, their constitutive parameters do not vary with frequency. Most of the materials used in the design of RF and microwave circuits, antennas and systems fall into this frequency-independent category. However, there are other types of materials whose constitutive parameters exhibit frequency-dependent behaviors. EM.Cube's [[FDTD Module]] currently offers three types of dispersive material:&lt;br /&gt;
&lt;br /&gt;
# Debye Material&lt;br /&gt;
# Drude Material (Unmagnetized Plasma)&lt;br /&gt;
# Lorentz Material&lt;br /&gt;
&lt;br /&gt;
The FDTD simulation engine uses the Auxiliary Differential Equation (ADE) method to model dispersive materials. EM.Cube allows you to define an arbitrary number of poles for each of the above dispersive material types. Keep in mind that all the objects belonging to the same dispersive material group have the same dispersion properties.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Debye material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon (\omega) = \varepsilon_\infty + \sum_{p=1}^N \dfrac{\Delta \varepsilon_p}{1 + j\omega \tau_p}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_\infty &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD18(2).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\varepsilon_{\infty}&amp;lt;/math&amp;gt; is the value of the permittivity at infinite frequency, &amp;lt;math&amp;gt;\tau_p&amp;lt;/math&amp;gt; is the relaxation time corresponding to the p''th'' pole having the unit of seconds, and &amp;lt;math&amp;gt;\varepsilon_{sp}&amp;lt;/math&amp;gt; is the value of the static permittivity (at DC) corresponding to the p''th'' pole. &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
Unmagnetized plasmas are typically modeled as Drude materials. The complex permittivity of a Drude material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{{\omega_p}^2}{\omega^2 - j\omega \nu_p} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD19(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega_p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\nu_p&amp;lt;/math&amp;gt; are the angular plasma frequency and angular collision frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. For an unmagnetized plasma, &amp;lt;math&amp;gt;\varepsilon_{\infty} = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The complex permittivity of a Lorentz material with N poles is given by:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \varepsilon(\omega) = \varepsilon_{\infty} - \sum_{p=1}^N \dfrac{\Delta \varepsilon_p {\omega_p}^2}{\omega^2 - 2j\omega \delta_p - {\omega_p}^2}, \quad \Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD20.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega _p&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\delta_p&amp;lt;/math&amp;gt; are the angular resonant frequency and angular damping frequency corresponding to the p''th'' pole, respectively, and both are expressed in rad/s. Similar to a Debye material, &amp;lt;math&amp;gt;\Delta \varepsilon_p = \varepsilon_{sp} - \varepsilon_{\infty}&amp;lt;/math&amp;gt; represents the change in permittivity due to the p''th'' pole.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD8.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD7.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD10.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD9.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD12.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD11.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Debye, Drude and Lorentz Material dialogs and their respective &amp;quot;Add Pole&amp;quot; dialogs.&lt;br /&gt;
&lt;br /&gt;
===Geometrical Rules &amp;amp; Material Hierarchy===&lt;br /&gt;
&lt;br /&gt;
The following rules apply to the definition of materials and objects in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] and [[#Perfect Conductors|PMC]] material categories, you can define all types of solid and [[Surface Objects|surface objects]].&lt;br /&gt;
* Under the [[#Dielectric Materials|Dielectric]], [[#Anisotropic Materials|Anisotropic]] and [[#Dispersive Materials|Dispersive]] material categories, you can define only [[Solid Objects|solid objects]].&lt;br /&gt;
* Under the [[#Perfect Conductors|PEC]] material category, you can also define [[Curve Objects|curve objects]] such as lines, polylines, etc. to model wire structures.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] allows overlapping objects, although it is generally recommended that object overlaps be avoided in favor of clearly defined geometries and object boundaries. If two or more objects of the same material type and group overlap, they are merged using the Boolean union operation during the mesh generation process.&lt;br /&gt;
&lt;br /&gt;
If two overlapping objects belong to two different material categories, then the material properties of the FDTD cells in the overlap region will follow the [[FDTD Module]]'s material priority rule. In that case, the overlap area cells will always be regarded as having the material type of the higher priority. According to this rule, the material types are ordered from the highest priority to the lowest in the following manner:&lt;br /&gt;
&lt;br /&gt;
# [[#Perfect Conductors|PEC]]&lt;br /&gt;
# [[#Perfect Conductors|PMC]]&lt;br /&gt;
# [[#Dispersive Materials|Dispersive]]&lt;br /&gt;
# General [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# Uniaxial [[#Anisotropic Materials|Anisotropic]]&lt;br /&gt;
# [[#Dielectric Materials|Dielectric]]&lt;br /&gt;
&lt;br /&gt;
It is therefore recommended to avoid overlapping objects belonging to different material groups within the same material category. To overlap two PEC objects with different colors does not matter. But to overlap two dielectric solids with different permittivity will create ambiguity. In that case, the FDTD simulation will run and complete successfully, but you will not be clear as to which permittivity value was used for the cells of the overlap region.&lt;br /&gt;
&lt;br /&gt;
Sometimes taking advantage of [[FDTD Module]]'s material priority rule makes construction of complex objects easier. For example, a dielectric coated metallic cylinder can be modeled by two concentric cylinders: an inner PEC of smaller radius and an outer dielectric of larger radius as shown in the illustration below. The portion of the dielectric cylinder that overlaps the inner PEC cylinder is ignored by the FDTD engine because the PEC cylinder takes precedence over the dielectric in the material hierarchy. Alternatively, you can model the same structure by an inner solid PEC cylinder enclosed by an outer hollow pipe-shaped dielectric cylinder. The hollow solid can be built by extruding a planar ring or by subtracting two concentric cylinders. The first configuration utilizing material hierarchy is, of course, much easier to construct.&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd14_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Geometric construction of a dielectric-coated metallic cylinder.&lt;br /&gt;
&lt;br /&gt;
===Moving Objects Among Material Groups===&lt;br /&gt;
&lt;br /&gt;
If two or more material groups are defined in the Navigation Tree, only one of them can be active. By default, the last material defined is active. When you draw new objects, they are inserted under the active material node of the Navigation Tree, which is always listed in bold letters. Any material can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu.&lt;br /&gt;
&lt;br /&gt;
You can move one or more selected objects to any other material group. Right click on the highlighted selection and select '''Move To &amp;gt; FDTD &amp;gt;''' from the contextual menu. This opens another sub-menu with a list of all the available material groups already defined in your [[FDTD Module]] project. Select the desired material node, and all the selected objects will move to that material group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the case of a multiple selection from the Navigation Tree using the keyboard's '''Shift Key''' or '''Ctrl Key''', make sure that you continue to hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting the &amp;quot;Destination&amp;quot; material group's name from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
In a similar way, you can move one or more objects from an FDTD material group to one of EM.Cube's other modules. In this case, the sub-menus of the '''Move To &amp;gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects. You can also move one or more objects from EM.Cube's other modules to a material group in the [[FDTD Module]]. This is especially useful when importing structure from external model files. Keep in mind that in EM.Cube you can import external objects only to '''[[CubeCAD]]'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD21(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Moving objects from one FDTD material group to another.&lt;br /&gt;
&lt;br /&gt;
==Computational Domain &amp;amp; FDTD Mesh Generation==&lt;br /&gt;
&lt;br /&gt;
===The FDTD Solution Domain===&lt;br /&gt;
&lt;br /&gt;
The FDTD method solves computational electromagnetic problems within a finite region of space. Thus, a finite-extent solution domain must be defined before the problem can be solved. This is rather straightforward in the case of a shielded structure, where a typical PEC enclosure box defines the computational domain. The difficulty arises when you try to model an open-boundary structure like an antenna. In that case, the computational domain must be truncated using appropriate termination boundary conditions. For open-boundary circuit-type structures like filters, couplers, etc., without a shielding, it is still possible to place a PEC enclosure box at a distance from the actual structure. However, the distance of the box walls from the structure must be large enough to eliminate any coupling effects. Furthermore, you must also watch for spurious box resonance effects, as you effectively place your structure inside a resonant cavity. The objective of termination boundary conditions is to eliminate the reflections from the walls of the domain box back to the computational domain. The previous releases of EM.Cube featured various termination boundary conditions like absorbing boundary conditions (ABC) and uniaxial perfectly matched layer (UPML). In this release of EM.Cube's [[FDTD Module]], we have phased out all the previous diverse boundary conditions in favor of Convolutional Perfectly Matched Layer (CPML), which has demonstrated a superior performance for a wide range of applications.&lt;br /&gt;
&lt;br /&gt;
In [[FDTD Module]], you can define two types of domain box. A &amp;quot;'''Default'''&amp;quot; type domain box is placed at a specified offset distance from the largest extents of your physical structure (global bounding box). In addition, you have two options to specify the offset distance, either in free-space wavelengths or in terms of the number of free-space grid cells. A &amp;quot;'''Custom'''&amp;quot; type domain box, on the other hand, is completely defined by you in the World Coordinate System (WCS). In this case, you have to specify the lower left front corner (Corner 1) and upper right back corner (Corner 2) of the domain box. These coordinates can be set arbitrarily, but you need to make sure that your custom domain box completely encloses your structure. When you start a new project in [[FDTD Module]], a default-type domain is automatically created with a default offset value set equal to a quarter free-space wavelength (0.25&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;). As soon as you draw your first object, a blue domain box is placed around your object. As you add more objects and increase the overall size of your structure, the domain box grows accordingly to encompass your entire physical structure. When you delete objects from the project workspace, the domain box also shrinks accordingly.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD22(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: The computational domain box enclosing a metallic sphere.&lt;br /&gt;
&lt;br /&gt;
===Computational Domain Settings===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD14.png|thumb|300px|[[FDTD Module]]'s Domain Settings dialog.]]&lt;br /&gt;
To set the solution domain of your [[FDTD Module]] project, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Click the '''Domain''' [[Image:domain_icon.png]] button of the '''Simulate ''' Toolbar or select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Domain Settings...''' or right click on the '''FDTD Domain''' item of the Navigation Tree and select '''Domain Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+A'''. The Domain Settings Dialog opens up, showing the current domain type selection.&lt;br /&gt;
* Select one of the two options for '''Domain Type'''&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;'''Default''' or '''Custom'''.&lt;br /&gt;
* If you select the &amp;quot;Default&amp;quot; domain type, the domain box is defined in terms of the offsets along the X, Y and Z directions from the largest extents of your physical structure. Select one of the two options for '''Offset Units: Grid''' and '''Wavelength'''. In the section titled '''&amp;quot;Domain Size&amp;quot;''', enter the amount of domain extension beyond the largest extents of the structure along the ±X, ±Y and ±Z directions. Note that in the case of a default-type domain box, the offset values based on your current project settings (frequency and units).&lt;br /&gt;
* When the '''Wavelength''' option is selected for '''Offset Units''', additional free space is added around the structure by the specified ±X, ±Y and ±Z offsets in free space wavelengths. Note that the free space wavelength for this purpose is calculated at the center frequency of the project. The default value of the offset in this case is a quarter free space wavelength. Note that with this option, the number of the additional cells and their cell size is not fixed; they vary from structure to structure.&lt;br /&gt;
* When the '''Grid''' option is selected for '''Offset Units''', the six offset values represent the number of additional free-space mesh cells that are placed in each direction beyond the largest bounding box around the physical structure. The default value of the offset in this case is eight grid cells along the ±X, ±Y and ±Z directions.&lt;br /&gt;
* If you select the &amp;quot;Custom&amp;quot; domain type instead, you need to enter values for the coordinates of the lower-left-front corner,''' Corner 1''', and the upper-right-back corner, '''Corner 2''', of the domain box.&lt;br /&gt;
* After you change values or settings, click the '''Apply''' button to make the changes effective. To recover the default values, click the '''Defaults''' button of the dialog. Click '''OK''' to save the settings and close the dialog.&lt;br /&gt;
&lt;br /&gt;
By default, the domain box is shown as a wireframe box with blue lines, enclosing your structure in the project workspace. You have the option to hide or show the domain’s bounding box either by toggling the status of '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Show Domain Box''' or by right clicking the '''Computational Domain''' item of the Navigation Tree and selecting the '''Show '''or '''Hide '''item of the contextual menu and toggling their status. You can also change the color of the domain box from the Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Domain Boundary Conditions===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD13.png|thumb|300px|[[FDTD Module]]'s Boundary Conditions dialog]]&lt;br /&gt;
&lt;br /&gt;
To solve an FDTD problem, proper boundary conditions must be enforced on the bounding walls of the solution domain. The current release of EM.Cube's [[FDTD Module]] supports four types of boundary conditions:&lt;br /&gt;
&lt;br /&gt;
* PEC&lt;br /&gt;
* PMC&lt;br /&gt;
* Convolutional Perfectly Matched Layers (CPML)&lt;br /&gt;
* Periodic Boundary Conditions (PBC)&lt;br /&gt;
&lt;br /&gt;
By default, all the six sides of the computational domain box are set to CPML, representing a completely open-boundary structure. Different boundary conditions can be assigned to each of the six sides of the domain box. The periodic boundary conditions are special ones that are assigned through [[FDTD Module]]'s Periodicity Dialog and will be discussed later under modeling of periodic structures. The current release of EM.Cube allows periodic boundary conditions only on the side walls of the computational domain, and not on the top or bottom walls.&lt;br /&gt;
&lt;br /&gt;
To define the boundary conditions of the solution domain, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Boundary Conditions''' or right click on the '''Boundary Conditions''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Boundary Conditions...''' from the contextual menu. The Boundary Conditions Dialog opens.&lt;br /&gt;
* You need to assign the type of boundary condition on each of the six domain boundaries: ±X, ±Y and ±Z. For each face, choose one of the three options available: '''PEC''', '''PMC '''or '''PML'''.&lt;br /&gt;
&lt;br /&gt;
The PEC and PMC boundary conditions are the most straightforward to set up and use. Assigning the PEC boundary to one of the bounding walls of the solution domain simply forces the tangential component of the electric field to vanish at all points along that wall. Similarly, assigning the PMC boundary to one of the bounding walls of the solution domain forces the tangential component of the magnetic field to vanish at all points along that wall. For planar structures with a conductor-backed substrate, you can use the PEC boundary condition to designate the bottom of the substrate (the -Z Domain Wall) as a PEC ground. For shielded waveguide structures, you can designate all the lateral walls as PEC. Similarly to model shielded cavity resonators, you designate all the six walls as PEC.&lt;br /&gt;
&lt;br /&gt;
===A Closer Look At CPML===&lt;br /&gt;
&lt;br /&gt;
In many electromagnetic modeling problems you need a boundary that simply absorbs all the incoming radiation. For problems of this nature, an absorbing boundary condition (ABC) is often chosen that effectively minimizes wave reflections at the boundary. Usually two or more ABC layers are placed at the boundaries of the structure to maximize wave absorption. The boundary ABC cells in the project workspace are transparent to the user. But, in effect, multiple rows of ABC cells are placed on the exterior side of each face of the visible domain box.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_manual-11.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The boundary ABC cells placed outside the visible domain box.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides Perfectly Matched Layers (PML) as absorbing boundary conditions. PML's are layers of fictitious complex anisotropic materials designed to absorb any incident electromagnetic wave at all angles of incidence. The advantage of using a PML boundary condition over other types of ABC is that you do not need to care about what material or combinations of materials exist at the boundaries, since the PML can absorb anything! The disadvantage of using PML is that they require more computational resources and more sophisticated update field equations. Several types of PML have been proposed in the FDTD literature. EM.Cube's [[FDTD Module]] uses the Convolutional Perfectly Matched Layer (CPML). This is based on a newer implementation of the complex frequency-shifted PML (CFS-PML) that uses recursive convolution. It has been shown that CPML is highly effective at absorbing evanescent waves and signals with a long time signature. Therefore, using CPML, you can place the boundaries much closer to the objects in the project workspace.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube's default quarter wavelength offset for the domain box is a very conservative choice and can be reduced further in many cases. A offset equal to eight free-space grid cells beyond the largest bounding box usually give a more compact, but still valid, domain box.}}&lt;br /&gt;
&lt;br /&gt;
You can set the number of CPML layers as well as their order. This is done through the CPML Settings Dialog, which can be accessed by right clicking on the '''CPML''' item in the '''Computational Domain''' section of the Navigation Tree and selecting '''CPML Settings...''' from the contextual menu. By default, four CPML layers of the third order are placed outside the FDTD problem domain. It is recommended that you always try a four-layer CPML first to assess the computational efficiency. The number of CPML layers may be increased only if a very low reflection is required (&amp;lt;-40dB).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD15.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s CPML Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Modeling Planar Structures of Infinite Extents===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD23.png|thumb|300px|Domain Settings dialog]] &lt;br /&gt;
You may occasionally want to use EM.Cube's FDTD simulator to model planar structures. Although EM.Cube provides the more computationally efficient [[Planar Module]] for this very purpose, there are many cases when an FDTD simulation might prove advantageous over a 2.5-D MoM simulation. Examples include examining the transient response of a planar structure, very wideband simulations, planar structures involving complex materials or 3D geometries embedded inside the substrate layers, to name a few.&lt;br /&gt;
&lt;br /&gt;
A planar substrate usually consists of one or more dielectric layers, possibly with a PEC ground plane at its bottom. Unlike EM.Cube's [[Planar Module]], where the substrate layers are defined implicitly in the &amp;quot;Stack-up Settings&amp;quot; dialog, in the finite-domain [[FDTD Module]], you need to draw each dielectric layer separately and then stack them up manually. The substrate of a planar layered structure extends laterally to infinity. In other words, the ±X and ±Y boundary walls must, in effect, retreat to infinity. This can be accomplished in the [[FDTD Module]] by setting up the CPML layers in a particular way. For this purpose, the lateral CPML layers need to move in and touch the sides of the dielectric layer stack-up.&lt;br /&gt;
&lt;br /&gt;
In other words, to model a laterally infinite dielectric substrate, you must assign a PML boundary condition to the four lateral sides of the domain box and set the lateral domain offset values along the ±X and ±Y directions all equal to zero. If the planar structure ends in an infinite dielectric half-space from the bottom, you must assign a PML boundary condition to the bottom side of the domain box and set the -Z offset equal to zero. Similarly, if the planar structure ends in an infinite PEC ground plane from the bottom, you must assign a PEC boundary condition to the bottom side of the domain box and set the -Z offset equal to zero.In the latter case, the presence of the metal plane at the bottom of the physical structure is implied although you will not see it in the project workspace. The CPML layers on the sides and at the bottom of the computational domain will absorb all the incident waves propagating in the free space or inside the substrate layers and thus emulate infinite extents. This leaves only the +Z offset with a nonzero value. The top CPML layer is moved back and placed above the finite parts of the structure.&lt;br /&gt;
&lt;br /&gt;
{{Note|The current release of EM.Cube's [[FDTD Module]] does not support anisotropic or dispersive layers of laterally infinite extents. In other words, You can only define anisotropic and dispersive material objects of finite size that do not touch the CPML boundaries.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD24.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Setting the ±X and ±Y and -Z domain offsets equal to zero for a laterally infinite planar structure with a PEC ground.&lt;br /&gt;
&lt;br /&gt;
===Creating A Yee Mesh===&lt;br /&gt;
&lt;br /&gt;
The mesh generation process in EM.Cube's [[FDTD Module]] involves four steps:&lt;br /&gt;
&lt;br /&gt;
# Setting the mesh type, density and other properties.&lt;br /&gt;
# Checking the mesh grid planes.&lt;br /&gt;
# Generating the mesh.&lt;br /&gt;
# Verifying the mesh.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD mesh is a rectangular Yee mesh that extends to the entire computational domain. It is primarily constructed from three mesh grid profiles along the XY, YZ and ZX principal planes. These projections together create a 3D rectangular (pixelated) mesh space. You have the option to choose one of the three FDTD mesh types:&lt;br /&gt;
&lt;br /&gt;
* Adaptive Mesh&lt;br /&gt;
* Regular Mesh&lt;br /&gt;
* Uniform Mesh&lt;br /&gt;
&lt;br /&gt;
The default choice is the adaptive mesh, which is a quite sophisticated mesh. The resolution of the adaptive FDTD mesh is driven by the '''Mesh Density''', expressed in cells per effective wavelength. Since FDTD is a time-domain method and the excitation waveform may have a wideband spectral content, the effective wavelength is calculated based on the highest frequency of the project: f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, where f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is your project's center frequency and &amp;amp;Delta;f (or BW) is its specified bandwidth. In other words, the effective wavelength in the free space is &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; = c / f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;, c being the speed of light in the free space. The adaptive FDTD mesh, however, produces different grid cell sizes in the free space regions and inside dielectric regions. The effective wavelength in a dielectric material with relative permittivity e&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and permeability µ&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; is given by &amp;amp;lambda;&amp;lt;sub&amp;gt;d,eff&amp;lt;/sub&amp;gt; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0,eff&amp;lt;/sub&amp;gt; / &amp;amp;radic;&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;. Therefore, the average ratio of the cell size in a dielectric region to the cell size in the free space is 1/&amp;amp;radic;(&amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;&amp;amp;mu;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;). The adaptive FDTD mesh generator also takes note of the geometrical features of the objects it discretizes. This is more visible in the case of curved solids, curves surfaces and curved wires or obliquely oriented planes and lines which need to be approximated using a staircase profile. The mesh resolution varies with the slope of the geometrical shapes and tries to capture the curved segments in the best way. Another important feature of the adaptive FDTD mesher is generation of gradual grid transitions between low-density and high-density mesh regions. For example, this often happens around the interface between the free space and high permittivity dielectric objects. Gradual mesh transitions provide better accuracy especially in the case of highly resonant structures.&lt;br /&gt;
&lt;br /&gt;
According to the Courant-Friedrichs-Levy (CFL) stability criterion, the FDTD time step is determined by the smallest cell size in your FDTD mesh. Occasionally, [[FDTD Module]]'s adaptive mesh generator may create extremely tiny grid cells that would result in extremely small time steps. This would then translate into a very long computation time. EM.Cube offers the &amp;quot;Regular&amp;quot; FDTD mesh generator, which is a simplified version of the adaptive mesh generator. In a regular FDTD mesh, the grid cell sizes stay rather the same in objects of the same material composition. The mesh resolution increases in materials of higher permittivity and/or permeability based on the effective wavelength in exactly the same way as the adaptive mesh. Finally, EM.Cube's FDTD Modules offers a &amp;quot;Uniform&amp;quot; FDTD mesh generator. The uniform mesh consists of three uniform grids along the XY, YZ and ZX principal planes. In other words, the grid cell sizes &amp;amp;Delta;x, &amp;amp;Delta;y and &amp;amp;Delta;z are fixed throughout the entire computational domain. In this case, the uniform mesh generator has to fit your physical structure to the fixed mesh, rather than adapting the mesh to your physical structure. &lt;br /&gt;
&lt;br /&gt;
{{Note|When choosing a mesh type for your FDTD simulation, keep in mind that adaptive and regular mesh types are frequency-dependent and their density varies with the highest frequency of your specified bandwidth, while the uniform mesh type is always fixed and independent of your project's frequency settings.}}&lt;br /&gt;
&lt;br /&gt;
===Viewing The FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
Because a full 3D FDTD mesh is difficult to visualize everywhere in the computational domain, only the discretized objects are displayed in EM.Cube's &amp;quot;'''Mesh View'''&amp;quot; mode. In particular, only the outer boundary cells on the surface of [[Solid Objects|solid objects]] are shown. However, you can view the mesh grid planes across the domain. You can even step these planes back and forth inside the domain and view different mesh profiles of your physical structure.&lt;br /&gt;
&lt;br /&gt;
To generate an FDTD mesh and view it the project workspace, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, click the '''Mesh Settings''' [[Image:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Mesh Settings...''', or right click on the '''Yee Mesh''' item of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. The Mesh Settings Dialog opens up, where you can set the values of the various mesh parameters including the '''Mesh Density'''.&lt;br /&gt;
* After specifying the desired mesh density, you can examine the mesh grid plane. The XY, YZ, and ZX mesh grid planes can be displayed through '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; XY Plane''', '''YZ Plane''' or '''ZX Plane''' or by right clicking on one of the three '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Show''' from the contextual menu. The mesh grid planes give you a good idea of what the mesh will look like once it is generated and its resolution along different planes. To remove a mesh grid plane from the project workspace, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' one more time and remove the check mark in front of the name of the currently displayed mesh grid plane, or right click on the name of the currently displayed mesh grid plane in the Navigation Tree and select '''Hide''' from the contextual menu.&lt;br /&gt;
* To display the FDTD mesh, click the '''Show Mesh''' [[Image:mesh_tool.png]] button of the '''Simulate''' '''Toolbar '''or select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. This takes EM.Cube into its &amp;quot;Mesh View&amp;quot; mode, and the Yee mesh of the whole structure is displayed in the project workspace. While the mesh view is enabled, the '''Show Mesh''' [[Image:mesh_tool.png]] button remains depressed. To get back to EM.Cube's &amp;quot;Normal View&amp;quot; mode, click this button one more time, or deselect '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Show Mesh''' to remove its check mark or simply hit the '''Esc Key''' of the keyboard.&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's &amp;quot;Mesh View&amp;quot; mode, you can rotate or pan the view of the project workspace, but you cannot edit the objects. '''&amp;quot;Show Mesh&amp;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 an FDTD mesh may take a long time depending on the complexity of structure and the total size of the computational domain. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore any mesh in the memory and force EM.Cube to generate a fresh FDTD mesh from the ground up by selecting '''Menu &amp;gt; Simulate &amp;gt;Discretization &amp;gt; Regenerate Mesh''' or by right clicking on the '''Yee Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD34.png|801px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A human head model and a cellular phone handset on its side.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD33.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The regular FDTD mesh of the human head model and the cellular phone handset.&lt;br /&gt;
&lt;br /&gt;
===Mesh Profiling &amp;amp; Grid Coordinate System===&lt;br /&gt;
&lt;br /&gt;
A volumetric FDTD mesh is overwhelming for visualization in the 3D space. For this reason, EM.Cube's mesh view only shows the outline of the (staircased) meshed objects, skipping the outline of all the individual brick cells in the entire computational domain. The mesh grid planes provide a 2D profile of the mesh cells along the principal coordinate planes. Since the Yee cells are congruent along the coordinate axes, the three mesh grid planes together provide a complete picture of the entire FDTD mesh. To display a mesh grid planes, select '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt;''' and pick one of the three options: '''XY Plane''', '''YZ Plane''' or '''ZX Plane'''. You may also right click on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and select '''Show''' from the contextual menu.&lt;br /&gt;
&lt;br /&gt;
While a mesh grid plane is visible, you can move it back and forth between the two boundary planes at the two opposite sides of the computational domain. You can do this in one of the following four ways:&lt;br /&gt;
&lt;br /&gt;
* Using the keyboard's '''Page Up (PgUp) Key''' and '''Page Down (PgDn) key'''.&lt;br /&gt;
* By selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Grid Planes &amp;gt; Increment Grid''' or ''' Decrement Grid'''.&lt;br /&gt;
* By right clicking on one of the '''XY Plane''', '''YZ Plane''' or '''ZX Plane''' items in the '''Discretization''' section of the Navigation Tree and selecting '''Increment Grid''' or ''' Decrement Grid''' from the contextual menu.&lt;br /&gt;
* Using the keyboard shortcuts '''&amp;quot;&amp;gt;&amp;quot;''' or '''&amp;quot;&amp;lt;&amp;quot;'''.&lt;br /&gt;
&lt;br /&gt;
As you “step through” or profile the mesh grid, you can see how the structure is discretized along internal planes of the computational domain.&lt;br /&gt;
&lt;br /&gt;
Once the project structure is meshed in EM.Cube's [[FDTD Module]], a second coordinate system becomes available to you. The mesh grid coordinate system allows you to specify any location in the computational domain in terms of node indices on the mesh grid. EM.Cube displays the total number of mesh grid lines of an FDTD simulation domain (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; × N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) along the three principal axes on the '''Status Bar'''. Therefore, the number of cells in each direction is one less than the number of grid lines, i.e. (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1)× (N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1) × (N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1). The minimum X, Y, and Z coordinates of the FDTD domain in the world coordinate system (Xmin, Ymin, Zmin), which represent the lower left front corner of the domain box, become the origin of the mesh grid coordinate system (0,0,0), The maximum domain coordinates, which represent the upper right back corner of the domain box, are therefore (N&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;-1, N&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;-1).&lt;br /&gt;
&lt;br /&gt;
EM.Cube allows you to navigate through the mesh grid and evaluate the grid points individually. Every time you display one of the three mesh grid planes, the &amp;quot;'''Grid Coordinate System (GCS)'''&amp;quot; is automatically activated. On the Status Bar, you will see [[Image:statusgrid.png]] instead of the default [[Image:statusworld.png]]. This means that the current coordinates reported on Status Bar are now expressed in grid coordinate system. The current grid point is displayed by a small white circle on the current mesh grid plane, and it always starts from (I= 0, J=0, K=0). Using the keyboard's '''Arrow Keys''', you can move the white circle through the mesh grid plane and read the current node's (I, J, K) indices on the status bar. You can switch back to the &amp;quot;'''World Coordinate System (WCS)'''&amp;quot; or change to the &amp;quot;'''Domain Coordinate System'''&amp;quot; by double-clicking the status bar box that shows the current coordinate system and cycling through the three options. The domain coordinate system is one that establishes its origin at the lower left front corner of the computational domain and measure distances in project unit just like the WCS.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD35(1).png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1:The grid cursor on the XY grid plane and its grid coordinates (I, J, K) displayed on the status bar.&lt;br /&gt;
&lt;br /&gt;
===Meshing Arbitrary Geometries===&lt;br /&gt;
&lt;br /&gt;
Straight lines, boxes and rectangular plates whose edges are aligned with the three principal axes are the simplest objects to mesh in the [[FDTD Module]]. Such objects preserve their shapes exactly after discretization. All the objects with curved edges and curved surfaces or objects with straight edges and flat faces that are not parallel to the principal axes or principal planes need to be discretized using a staircase profile.&lt;br /&gt;
&lt;br /&gt;
In the cases of oblique lines and slanted faces (like lateral faces of a pyramid), a uniform staircase profile is used by all of [[FDTD Module]]'s three mesh generators. in other words, the cell sizes or grid line spacing remain the same across the edge or face, since the slope is constant. In the case of curved edges and curved faces or surfaces (like a sphere), the uniform and regular mesh generators use a uniform staircase profile. However, the adaptive mesh generator uses a variable staircase profile, where the cell sizes of grid line spacing vary with the curvature (derivative) of the edge or face. As a result, a higher mesh resolution is achieved at &amp;quot;more curvy&amp;quot; areas to better capture the geometrical details.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD31(1).png|400px]] [[Image:FDTD32(2).png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A pyramidal object with a slanted plate and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD26.png|400px]] [[Image:FDTD25.png|400px]]&lt;br /&gt;
 &lt;br /&gt;
[[Image:FDTD27.png|400px]] [[Image:FDTD28.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The geometry of a sphere and its regular and adaptive FDTD meshes (top and perspective views).&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD30.png|400px]] [[Image:FDTD29.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3. The geometry of a helix curve and its adaptive FDTD mesh.&lt;br /&gt;
&lt;br /&gt;
===FDTD Mesh Settings===&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module|FDTD module]] discretizes objects using what is often referred to as the “staircase approximation”. In this mesh generation scheme, the structure is recreated using a large number of cubic cells carefully assembled in a way that approximates the shape of the original structure. By default, a carefully calculated, &amp;quot;&amp;lt;u&amp;gt;'''Adaptive'''&amp;lt;/u&amp;gt;&amp;quot; mesh of your physical structure is generated in order to satisfy the following criteria:&lt;br /&gt;
&lt;br /&gt;
* Optimize the number of mesh cells in each dimension. The product of the number of cells in each dimension determines the total mesh size. The larger the mesh size, the longer the simulation time, especially with the CPU version of the FDTD engine. Also, a very large mesh size requires more RAM, which may exceed your GPU memory capacity. Set the '''Minimum Mesh Density''' to a moderately low value to keep the mesh size manageable, but be careful not to set it too low (see the next item below).&lt;br /&gt;
* Ensure simulation accuracy by requiring an acceptable minimum number of cells per wavelength through each object and in the empty (free) space between them and the computational domain boundaries. An effective wavelength is defined for each material at the highest frequency of the project's specified spectrum. We recommend a '''Minimum Mesh Density '''of at least 15-20 cells/ wavelength. But for some resonant structures, 25 or even 30 cells per wavelength may be required to achieve acceptable accuracy. As you reduce the mesh density, the simulation accuracy decreases.&lt;br /&gt;
* Accurately represent and approximate the boundaries of edges or surfaces that are not grid-aligned by closely adhering to their geometric contours. This is controlled by the '''Minimum Grid Spacing Over Geometric Contours''', which can be specified either as a fraction of the free space grid spacing or as an absolute length value in project units.&lt;br /&gt;
* Maximize the minimum grid spacing in any dimension inside the computational domain and thus maximize the simulation time step. The time step size is dictated by the CFL stability criterion and is driven by the smallest grid spacing in each dimension. The smaller the time step, the larger the number of time steps required for convergence. This is controlled using the '''Absolute Minimum Grid Spacing''', which can be specified either as a fraction of the free space grid spacing or as an absolute value. It is critical to accurately represent and precisely maintain the object edge/surface boundaries in certain structures like resonant antennas and filters, as the phase of the reflected fields/waves is affected by the object boundary positions. When object boundaries are very close to each other, the mesh needs to represent them by two separate, but very closely spaced, grid lines. To control the minimum allowed grid spacing, use the '''Absolute Minimum Grid Spacing '''settings,&lt;br /&gt;
* Maintain a smooth grid with no abrupt jumps from low-density to high-density regions. This feature is enabled with the '''Create Gradual Grid Transitions '''check box (always checked by default).&lt;br /&gt;
&lt;br /&gt;
Occasionally, you may prefer a more regular FDTD mesh with almost equal grid line spacing everywhere, but still with a frequency-dependent cell size. In that case, you can select the &amp;quot;&amp;lt;u&amp;gt;'''Regular'''&amp;lt;/u&amp;gt;&amp;quot; option of the '''Mesh Type '''dropdown list in the FDTD Mesh Settings dialog. The regular FDTD mesh enforces only two of the above parameters: '''Minimum Mesh Density''' and '''Absolute Minimum Grid Spacing'''. Or you may opt for an absolutely &amp;quot;&amp;lt;u&amp;gt;'''Uniform'''&amp;lt;/u&amp;gt;&amp;quot; mesh type, for which you need to specify the '''Cell Size '''along the X, Y, Z directions in project units.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD80.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Global vs. Local Control Of FDTD Mesh===&lt;br /&gt;
&lt;br /&gt;
When EM.Cube generates an FDTD mesh, a large number of geometrical considerations are taken into account. These include the bounding box of each object and its corners, the ends of a line, the apex of a cone or pyramid, or the locations of lumped sources, field probes and sensors, vertices of plane wave or far field boxes, to name a few examples. These points are “locked” as fixed grid nodes in the FDTD mesh. EM.Cube determines these points internally to generate a mesh that best approximates the original structure. As you saw earlier, you can use the FDTD mesh settings to control the shape and resolution of the mesh, for example, around the curved portions of your structure, or on slanted lines or faces, etc. These settings are global and apply to all the objects making up your physical structure.&lt;br /&gt;
&lt;br /&gt;
You can control the global mesh more selectively using the Advanced FDTD Mesh Settings Dialog. To open this dialog, click the '''Advanced '''button at the bottom of the FDTD Mesh Settings dialog. For example, you can control the quality of the gradual grid transitions by setting the value of '''Max Adjacent Cell Size Ratio'''. The default value of this parameter is 1.3, which maintains a smooth grid line spacing scheme with no more than 1:1.3 ratio for adjacent cells. By default, grid lines are enforced at all source and observable locations. You have the option to disable this feature and round up source locations to their closest grid lines. You may also uncheck the box labeled &amp;quot;Adapt mesh resolution to material properties&amp;quot;. In that case, the same effective wavelength will be used to determine the mesh resolution inside all materials as well as the free-space regions.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD81.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Advanced Mesh Settings dialog.&lt;br /&gt;
&lt;br /&gt;
In certain cases, you may wish to exert some level of local mesh control. For example, you may want to increase the mesh density at a very particular area of your structure. Or you may want to increase or decrease the mesh resolution inside certain types of materials independent of their permittivity and permeability. EM.Cube provides two additional mechanisms for local control of the FDTD mesh: locking mesh of object groups and user defined fixed grid points. You can lock the mesh density of each material group. In this case, the areas inside and around the &amp;quot;Locked&amp;quot; material objects are meshed according to the locked mesh density, while the rest of the computational domain is meshed using the project's global mesh density. Locking mesh is done through the property dialog of each material group. At the bottom of the material property dialog, in the &amp;quot;Mesh Properties&amp;quot; section, there is a check box labeled '''Lock Mesh''', which is unchecked by default. If you check this box, it enables the box labeled '''Mesh Density''', which initially has a value equal to the project's global mesh density.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Locking the mesh density of a material group in its property dialog.&lt;br /&gt;
&lt;br /&gt;
===Adding Fixed Grid Points===&lt;br /&gt;
&lt;br /&gt;
Adding fixed grid points to an FDTD mesh increases its resolution locally. Each fixed grid point adds three grid lines along the three principal axes passing through that point. You can add as many fixed grid points as you desire and create dense meshes at certain regions. Fixed grid points appear as grey points in the project workspace. To insert a new fixed grid point, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the Fixed Grid Points Dialog by selecting '''Menu &amp;gt; Simulate &amp;gt; Discretization &amp;gt; Fixed Grid Points...''' or by right clicking on the '''FDTD''' '''Mesh''' item of the Navigation Tree and selecting '''Fixed Grid Points Settings...'''&lt;br /&gt;
* Click the '''Add/Edit''' button to open the &amp;quot;Add Fixed Grid Point&amp;quot; dialog.&lt;br /&gt;
* Enter the (X, Y, Z) coordinates of the new fixed point in the coordinate boxes and click '''OK'''.&lt;br /&gt;
* To modify the coordinates of an existing fixed grid point, select it from the table and click the '''Add/Edit''' button.&lt;br /&gt;
* You can also remove a fix grid point from the FDTD mesh using the '''Delete''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD38.png]] [[Image:FDTD39.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Adding a new fixed grid point in [[FDTD Module]]'s Fixed Grid Points Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD36.png|400px]] [[Image:FDTD37.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: User defined fixed grid points in an FDTD mesh. (Left) Regular mesh, (Right) Adaptive mesh.&lt;br /&gt;
&lt;br /&gt;
==Excitation Sources==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Exciting The FDTD Computational Domain== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before you can run an FDTD simulation, you have to define a source to excite your project’s physical structure. A physical source has a zero value at t = 0, but it rises from zero at t &amp;gt; 0 according to a specified waveform. EM.Cube's [[FDTD Module]] currently offers three types of temporal waveform:&lt;br /&gt;
&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Gaussian Pulse&lt;br /&gt;
# Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
A sinusoidal waveform is single-tone and periodic. Its spectrum is concentrated around a single frequency, which is equal to your project's center frequency. A sinusoidal source does not have a finite energy and it does not decay as t &amp;amp;rarr; &amp;amp;infin;. A Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, but it has a lowpass frequency spectrum which is concentrated around f = 0. A modulated Gaussian pulse decays exponentially as t &amp;amp;rarr; &amp;amp;infin;, and it does have a bandpass frequency spectrum concentrated around your project's center frequency. For most practical problems, a modulated Gaussian pulse waveform provides an adequate performance. That is why this type of waveform is chosen by EM.Cube as your project's default waveform.&lt;br /&gt;
&lt;br /&gt;
When an FDTD simulation starts, your project's source starts pumping energy into the FDTD computational domain at t &amp;gt; 0. Maxwell's equations are solved in all cells at every time step until the solution converges, or the maximum number of time steps is reached. If you use a Gaussian pulse or a modulated Gaussian pulse waveform to drive your FDTD source, after a certain number of time steps, the total energy of the computational domain drops to very negligible levels. At the point, you can consider your solution to have converged. If you drive your FDTD source by a sinusoidal waveform, the total energy of the computational domain will oscillate indefinitely, and you have to force the time loop to terminate after a certain number of time steps assuming a steady state have been reached.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's [[FDTD Module]] provides a number of sources or excitation schemes that have different applications. These source types will be described in the following sections. An [[#Ideal Sources|Ideal Source]] is the simplest way of exciting a structure in EM.Cube's [[FDTD Module]]. It consists of an ideal voltage source connected between two consecutive nodes of your FDTD mesh. A [[#Lumped Sources|Lumped Source]] is an ideal voltage source in series with a resistor. You have to place a lumped source on a line object that is parallel to one of the three principal axes, and you can assign a port to it to calculate the circuit characteristics of your structure. A [[#Waveguide Sources|Waveguide Source]] is placed across a rectangular waveguide. In other words, it requires a hollow box object that is aligned along one of the three principal axes and has one or two open ends. A waveguide source can excite a certain TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modal profile of the host rectangular waveguide. A [[#Distributed Sources|Distributed Source]] is defined on a finite-sized plane parallel to one of the three principal planes and with a prescribed field distribution profile on that plane. A [[#Plane Waves|Plane Wave Source]] is used to study the scattering characteristics of your structure and compute its radar cross section (RCS). A [[#Focused Gaussian Beams|Gaussian Beam Source]] is similar to a plane wave source but with a focused energy profile in the transverse direction and a beam-diverging profile in the longitudinal direction.&lt;br /&gt;
&lt;br /&gt;
===Ideal Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD42.png|thumb|250px|[[FDTD Module]]'s Ideal Source dialog]]&lt;br /&gt;
&lt;br /&gt;
An ideal source acts as a voltage source with a zero internal resistance that can be placed between any two adjacent mesh grid nodes anywhere in the computational domain. To create a new ideal source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Ideal Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Ideal Source Dialog.&lt;br /&gt;
* You can change the default name of the source as well as its color. The ideal source is displayed as a small orange arrow in the Project Workspace.&lt;br /&gt;
* By default, EM.Cube creates a +Z-directed ideal source located at the origin of coordinates (0, 0, 0). You can change the location of the source by setting new values for the X, Y and Z coordinates. When you use the spin buttons to increment or decrement the source coordinates, you can see the source moving in the project workspace. You can also change the '''Direction''' of the source from a dropdown list in the Source Location section of the dialog that contains ±X, ±Y and ±Z options.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the '''Source Amplitude''' in Volts and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
===Lumped Sources===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD43.png|thumb|200px|[[FDTD Module]]’s Lumped Source dialog]]&lt;br /&gt;
&lt;br /&gt;
A '''Lumped Source ''' is the most commonly used way of exciting a structure in EM.Cube's [[FDTD Module]]. A lumped source acts as a voltage source in series with an internal resistance that is placed between two adjacent mesh grid nodes on a line object. The line object must be parallel to one of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a lumped source, you must have at least one line object in the project workspace.}}&lt;br /&gt;
&lt;br /&gt;
To create a new lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the source with respect to the host line object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source from the start point of the line. A lumped source by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, '''Phase''' in Degrees and internal '''Resistance''' in Ohms.&lt;br /&gt;
&lt;br /&gt;
===Waveguide Sources===&lt;br /&gt;
&lt;br /&gt;
Waveguide structures have many applications at microwave and millimeter wave frequencies. For example, a rectangular waveguide is used to feed a pyramidal horn antenna. A waveguide structure is usually excited using some type of strategically located probe mechanism. This can be modeled using a lumped source placed on a wire structure made up of line objects. Alternatively, use can use EM.Cube's '''Waveguide Sources''', a special type of source that excites a prescribed modal field distribution in a rectangular waveguide structure. The scattering parameters are calculated from knowledge of incident and reflected fields at designated waveguide ports. Waveguide sources typically provide more accurate results for scattering parameters compared to lumped ports as they represent the actual dominant propagating modes at the transmission line ports.&lt;br /&gt;
&lt;br /&gt;
EM.Cube provides special waveguide sources that can excite either the TE&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; or TM&amp;lt;sub&amp;gt;mn&amp;lt;/sub&amp;gt; modes of a rectangular waveguide which is oriented along one of the three principal axes. In other words, the plane of the waveguide source must be parallel to one of the principal (XY, YZ or ZX) coordinate planes.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to create a waveguide source, you must have at least one &amp;quot;Hollow&amp;quot; Box object with no caps or only one end cap in your project.}}&lt;br /&gt;
&lt;br /&gt;
To create a new waveguide source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Waveguide Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Waveguide Source Dialog.&lt;br /&gt;
* In the '''Source Location''' section of the dialog, you will find a list of all the eligible box objects. These are all the hollow boxes in the project workspace whose longitudinal axis is parallel to one of the principal axes and have at least one unchecked '''Cap Ends''' box in their property dialog. Select the desired box object. The box labeled '''Direction''' shows the direction of the source with respect to the host box object. You have the option to select either the positive or negative direction for the source.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the source plane from the base of the box object. A waveguide source by default is placed at the center of the host box. In other words, the default offset value is equal to half the length of the host box object.&lt;br /&gt;
* The default waveguide more to be excited is TE&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;. You can select '''TE''' or '''TM''' mode types with arbitrary &amp;quot;m&amp;quot; and &amp;quot;n&amp;quot; modal indices.&lt;br /&gt;
* In the '''Source Properties''' section, you can specify the source '''Amplitude''' in Volts, and the '''Phase''' in Degrees.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD44.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Waveguide Source dialog.&lt;br /&gt;
&lt;br /&gt;
=== Distributed Sources ===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD45.png|thumb|300px|[[FDTD Module]]'s Distributed Source dialog]]&lt;br /&gt;
Waveguide sources are a special case of distributed sources in EM.Cube's [[FDTD Module]]. A Distributed Source is defined in a rectangular plane of finite extents, parallel to one of the three principal coordinate planes. An impressed electric field component is assumed across the specified rectangular area, which pumps energy into the computational domain. The current version of EM.Cube provides three spatial field profiles for a distributed source:&lt;br /&gt;
&lt;br /&gt;
# Uniform&lt;br /&gt;
# Sinusoidal&lt;br /&gt;
# Edge-Singular&lt;br /&gt;
&lt;br /&gt;
The sinusoidal type has the functional form cos(py/w), and the edge-singular type has the functional form 1/v(1-(2y/w)^2), where y is the coordinate along the direction of field variation measured from the center of the rectangular area and w is its total width.&lt;br /&gt;
&lt;br /&gt;
To create a new distributed source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Distributed Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Distributed Source Dialog.&lt;br /&gt;
* In the '''Excitation Plane''' section of the dialog, first you have to select the orientation of the source plane. The dropdown list labeled '''Direction''' gives three options: '''X, Y''' and '''Z''', which create planes parallel to the YZ, ZX and XY principal planes, respectively. Depending on the choice of the plane orientation, another dropdown list labeled '''Field Dir''' gives four options for the direction of the source field component. For example, the default plane orientation is X (parallel to the YZ-Plane) and the available field directions are +Y, -Y, +Z and -Z. Next, you have to enter the coordinates of two opposite corners of the source plane: the lower left and upper right corners. You can type in values for the X, Y, Z coordinates or you can use the spin buttons to slide the default source planes in the Project Workspace.&lt;br /&gt;
* In the '''Source Properties''' section, you can select the '''Profile''' from three options: '''Uniform''', '''Sinusoidal''' and '''Edge-Singular'''. You can also specify the source '''Amplitude''' in Volts, and '''Phase''' in Degrees and the source's internal '''Resistance '''in Ohms .&lt;br /&gt;
&lt;br /&gt;
[[Image:fdtd_src7_tn.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A distributed source placed between two horizontal rectangular strips.&lt;br /&gt;
&lt;br /&gt;
===Defining Ports===&lt;br /&gt;
&lt;br /&gt;
Ports are used to order and index sources for circuit parameter calculations like S/Y/Z parameters. That is why they are defined in the '''Observables''' section of Navigation Tree. In EM.Cube's [[FDTD Module]], you can define ports at the location of '''Lumped Sources''', '''Waveguide Sources''' and '''Distributed Sources'''. In other words, ideal sources or other types of sources cannot be used to define ports or calculate port characteristics.&lt;br /&gt;
&lt;br /&gt;
Ports are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the default port assignments. If you have N sources in your physical structure, then N default ports are defined, with one port assigned to each source according to their order on the Navigation Tree.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD48.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: The Port Definition dialog.&lt;br /&gt;
&lt;br /&gt;
You can define any number of ports equal to or less than the total number of sources in your project. The Port List of the dialog shows a list of all the ports in ascending order, with their associated sources and the port's characteristic impedance, which is 50O by default. You can delete any port by selecting it from the Port List and clicking the '''Delete '''button of the dialog. Keep in mind that after deleting a port, you will have a source in your project without any port assignment. Make sure that is what you intend. When you delete one or more ports in your project, their associated sources become free and &amp;quot;available&amp;quot; for either defining new ports or reassignment to the other ports. To define a new port, click the '''Add '''button of the Port Definition dialog to open the &amp;quot;Add Port&amp;quot; dialog. On the left side of this dialog, you will see a table containing all the available sources. Select one or more ports and use the right arrow ('''---&amp;gt;''') button to move them to the table on the right side, labeled &amp;quot;Associated&amp;quot;. These ports are now associated with the new port being defined. You can move sources from the &amp;quot;Associated&amp;quot; table back to the &amp;quot;Available&amp;quot; table on the left using the left arrow ('''&amp;lt;---''') button of the dialog. You can associate more than one source with the same port. In that case, you will have coupled sources, collectively representing a coupled port.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD49.png]]&lt;br /&gt;
&lt;br /&gt;
Figure: Reassigning sources to ports and defining coupled ports.&lt;br /&gt;
&lt;br /&gt;
{{Note|In order to obtain correct results, the port impedance must equal the characteristic impedance of the transmission line on which the port is established. This is not done automatically in EM.Cube.}}&lt;br /&gt;
&lt;br /&gt;
You can change the characteristic impedance of a port by selecting it from the Port List and clicking the '''Edit '''button of the dialog. This opens up the Edit Port dialog, where you can enter a new value in the box labeled '''Impedance'''.&lt;br /&gt;
&lt;br /&gt;
===Modeling Microstrip Line Ports===&lt;br /&gt;
&lt;br /&gt;
Using simple lumped sources, you can simulate a variety of transmission line structures in EM.Cube’s [[FDTD Module]] including filters, couplers or antenna feeds and you can calculate their scattering parameters. This approach may become less accurate at very high frequencies when the details of the feed structures become important and can no longer be modeled with highly localized lumped ports. In such cases, it is recommended to use “Distributed Sources”, which utilize accurate modal field distributions at the ports for calculation of the incident and reflected waves. This and next two sections explain how you can use simple lumped sources to model some popular transmission line feeds.&lt;br /&gt;
&lt;br /&gt;
Microstrip ports can be modeled with lumped sources placed underneath the microstrip line stretching to the ground plane through the substrate. To build a microstrip port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC microstrip using the '''Rectangle Strip Tool''' and end it at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that its extends at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 beyond than the microstrip line (&amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt; is the guide wavelength).&lt;br /&gt;
* If the microstrip's ground plane is the bottom of your simulation structure, set a PEC boundary for the bottom face of the computational domain. Otherwise, you do need to draw a PEC rectangle strip to represent a finite ground.&lt;br /&gt;
* Connect the center of the microstrip’s end to the ground plane with a PEC line using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on the line pointing towards the line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate the lumped source with Port 1. Set the value of '''Port Impedance''' properly equal to the characteristic impedance of the microstrip feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you want to model a microstrip structure with a laterally infinite substrate and a laterally infinite ground plane, make sure to set the domain offsets in the ±X, ±Y and -Z directions equal to zero.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD50.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A microstrip line port on a substrate terminated from the bottom by a PEC boundary plane.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coplanar Waveguide Ports===&lt;br /&gt;
&lt;br /&gt;
Using lumped sources, you can define coplanar waveguide (CPW) ports either with or without a bottom ground plane. In order to build a CPW port with a lumped source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, draw the PEC center strip of the CPW with its two PEC coplanar ground planes, all using the '''Rectangle Strip Tool''', and end them at the desired port location.&lt;br /&gt;
* Then, draw the substrate box and make sure that it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the CPW line.&lt;br /&gt;
* Connect the two end corners of the center strip to the two side ground planes with two PEC line objects using the '''Line Tool'''.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line pointing towards the center strip.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate both of the lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the CPW feed line.&lt;br /&gt;
&lt;br /&gt;
EM.Cube sets the internal resistance of each of the two coupled lumped sources equal to twice the specified port (or line) impedance since the CPW port is a parallel connection of the two individual lumped sources. If you want to model a CPW with laterally infinite substrate and ground planes, make sure to set the domain offsets in the ±X and ±Y directions equal to zero. In the -Z direction, you need a nonzero offset to push the bottom CPML boundary down away outside the dielectric layer of finite thickness. Alternatively, you can terminate the bottom boundary by PEC and set its domain offset equal to zero to represent a CPW with a bottom PEC ground.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD51.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coplanar waveguide (CPW) port on a dielectric substrate.&lt;br /&gt;
&lt;br /&gt;
===Modeling Coaxial Line Ports===&lt;br /&gt;
&lt;br /&gt;
Coaxial line is often used to feed various RF and microwave structures. In order to excite the dominant TEM mode of a coaxial line, it has to be fed symmetrically between its inner and outer conductors. Using lumped sources, you can define symmetrical coaxial line ports. To do so, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* First, use the '''Cylinder Tool''' to draw a solid PEC inner conductor and end it at the desired port location.&lt;br /&gt;
* Next, using the '''Cylinder Tool''' again, draw a hollow PEC outer conductor with the '''Cap Ends''' option unchecked, and end it at the desired port location.&lt;br /&gt;
* Then, draw the dielectric core of the coaxial cable using the '''Cylinder Tool''' under an active dielectric material group and make sure it is at least &amp;amp;lambda;&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;/8 longer than the inner and outer conductors. Note that you only need to draw a solid dielectric cylinder rather than a hollow, pipe-like one. According to [[FDTD Module]]'s material hierarchy, the PEC core takes precedence over its enclosing dielectric cylinder.&lt;br /&gt;
* Using the '''Line Tool''', connect the ends of the inner and outer conductors with four PEC line objects along the principal coordinate axes pointing from the inner conductor towards the outer conductor.&lt;br /&gt;
* Place a lumped source with 1V amplitude and zero phase on each line.&lt;br /&gt;
* In the '''Port Definition''' Dialog, set the number of ports equal to one. Associate all the four lumped sources with Port 1. Set the value of the '''Port Impedance''' properly equal to the characteristic impedance of the coaxial feed line.&lt;br /&gt;
&lt;br /&gt;
{{Note|EM.Cube will set the internal impedance of each of the four coupled lumped sources equal to four times the specified port (or line) impedance since the coaxial port is a parallel connection of the four individual lumped sources.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD52.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: A coaxial line port using four symmetric lumped sources.&lt;br /&gt;
&lt;br /&gt;
===Lumped Loads===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]] you can define simple lumped elements such as resistors, inductors, capacitors as well as nonlinear diodes. Although lumped loads are not sources and do not excite a structure, their properties are similar to lumped sources. Lumped Loads are incorporated into the FDTD grid across two adjacent nodes in a similar manner to lumped sources. Likewise, lumped loads are defined on Line objects. In order to create a lumped load, you must have at least one line object in your project.&lt;br /&gt;
&lt;br /&gt;
To create a new lumped load, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Lumped Loads''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' to open the Lumped Load Dialog.&lt;br /&gt;
* You can change the name of the lumped load as well as its color using the '''Color''' button of the dialog and selecting the desired color from the color palette.&lt;br /&gt;
* In the Lumped Element Location section of the dialog, you will find a list of all eligible line objects (i.e. lines that are parallel to one of the principal axes). Select the desired line object. The box labeled '''Direction''' shows the direction of the lumped load with respect to the host line object. Note that for a passive lumped load, the direction does not make any difference. But it matters for the case of a diode.&lt;br /&gt;
* In the box labeled '''Offset''', enter the distance of the lumped element from the start point of the line. A lumped load by default is placed at the center of the host line. In other words, the default offset value is equal to half the length of the host line object.&lt;br /&gt;
* In the Lumped Element Properties Section, you can set the type of the load. In the dropdown list you have four options: '''Resistor''', '''Inductor''', '''Capacitor''' and '''Diode'''. The resistance is expressed in Ohms (O), inductance in Nano-Henry (nH) and capacitance in Pico-Farad (pF). In the case of a diode, you have to specify the '''Saturation Current''' in femto-Ampere (fA), the ambient '''Temperature''' in Degree Kelvin and also the diode's '''Ideality Factor''', which is usually a number between 1 and 2.&lt;br /&gt;
&lt;br /&gt;
{{Note|Small values of inductance may result in the divergence of the FDTD numerical scheme. To avoid this problem, you need to increase the mesh resolution and adopt a higher mesh density. This, of course, may lead to a much longer computation time.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD53.png]] [[Image:FDTD54.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD55.png]] [[Image:FDTD56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Figure: [[FDTD Module]]'s Lumped Load dialog with the load type set to resistor, inductor, capacitor and diode.&lt;br /&gt;
&lt;br /&gt;
===Sources &amp;amp; Loads For Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
If your project contains an array of line objects, you can also define an array of '''Lumped Sources''' to be placed on those lines. If you insert a new lumped source, all line array objects, if any, will be listed in the Lumped Source dialog as eligible objects for lumped source placement. A lumped source will be placed on each element of the array. All the lumped sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distribution among the array elements. The available '''Weight Distributions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD59.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining lumped sources with a Chebyshev weight distribution on an array of line objects.&lt;br /&gt;
&lt;br /&gt;
Just like lumped sources, you can place '''Lumped Loads''' on array of line objects. These loads can be resistors, capacitors, inductors or nonlinear diodes. If you insert a new lumped load, all line array objects, if any, will be listed in the Lumped Load dialog as eligible objects for lumped load placement. A lumped load will be placed on each element of the array. All the lumped load will have identical type, direction, offset and parameter values.&lt;br /&gt;
&lt;br /&gt;
If the project workspace contains an array of hollow box objects to model a rectangular waveguide array, you can also define an array of '''Waveguide Sources''' to be placed across those waveguides. If you insert a new waveguide source, all hollow box array objects, if any, will be listed as eligible objects for waveguide source placement. A waveguide source will be placed on each element of the array. All the waveguide sources will have identical direction and offset. However, you can prescribe certain amplitude and/or phase distributions. The available '''Weight Functions''' include '''Uniform''', '''Binomial''', '''Chebyshev''' and '''Data File'''. In the last case, you need to set a value for maximum side lobe level ('''SLL''') in dB. You can also define a '''Phase Progression''' in degrees along each of the three principal axes.&lt;br /&gt;
&lt;br /&gt;
===Plane Waves===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD46.png|thumb|300px|[[FDTD Module]]'s Plane Wave dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], you can excite a structure with an arbitrary incident plane wave and compute its scattering pattern or bi-static radar cross section. A plane wave excitation is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[FDTD Module]] provides the following polarization options:&lt;br /&gt;
&lt;br /&gt;
# TMz&lt;br /&gt;
# TEz&lt;br /&gt;
# Custom Linear&lt;br /&gt;
# LCPz&lt;br /&gt;
# RCPz&lt;br /&gt;
&lt;br /&gt;
The direction of incidence is defined through the &amp;amp;theta; and &amp;amp;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 incidence angles are &amp;amp;theta = 180° and f = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. You select the polarization from the five radio buttons in the &amp;quot;Polarization&amp;quot; section of the dialog. In the TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; and TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; 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. This way of defining a plane wave source is more convenient when the structure is laid out along the XY plane and Z-axis such as layered and periodic structures. 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 (&amp;amp;theta; = 180°).&lt;br /&gt;
&lt;br /&gt;
Since the FDTD technique requires a finite simulation domain, it also needs a finite plane wave incidence surface to calculate the excitation. When you create a plane wave source, a plane wave box is created as part of its definition. The time domain plane wave excitation is calculated on the surface of this box and injected into the computational domain. The plane wave box is displayed in the project workspace as a purple wireframe box enclosing the structure.&lt;br /&gt;
&lt;br /&gt;
To create a new plane wave source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Initially, the radio button '''Size: Default''' is selected. With this option, the boundaries of the excitation box always have a distance of three cells from the bounding box of the geometry and cannot be changed. The radio button '''Size: Custom''' allows you to set the excitation box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. Corner 1 is the front lower left corner and Corner 2 is the rear upper right corner of the box. The box has to be defined in grid coordinate system (GCS).&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
A plane wave box placed around a PEC sphere object. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors.&lt;br /&gt;
&lt;br /&gt;
===Focused Gaussian Beams===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD47.png|thumb|250px|[[FDTD Module]]'s Gaussian Beam dialog]]&lt;br /&gt;
&lt;br /&gt;
EM.Cube gives you an option to illuminate objects with a focused beam instead of a uniform plane wave. The focused beam is a Gaussian beam, which is a solution of the paraxial approximation to the Helmholtz equation. The fundamental Gaussian beam is rotationally-symmetric about its propagation axis, and its transverse field distribution follows a Gaussian function profile. The critical parameter is the beam radius w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;; it is the point where the field drops by 1/e from its value at the center. The beam opens up into a cone along the propagation direction, with a cone angle of tan &amp;amp;theta; = &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/(&amp;amp;pi;.&amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) (&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free-space wavelength). &amp;lt;font color=&amp;quot;#a52a2a&amp;quot;&amp;gt;&amp;lt;u&amp;gt;'''The beam radius has to be at least &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;/&amp;amp;pi;; otherwise, strong fields appear outside the excitation box.'''&amp;lt;/u&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Gaussian beam box is displayed in the project workspace as a green wireframe box enclosing the structure. To define a new Gaussian Beam source, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Gaussian Beam''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' This opens up the Gaussian Beam Dialog.&lt;br /&gt;
* Similar to the plane wave, a default Excitation Box three cells away from the bounding box of the geometry is suggested, i.e. the radio button '''Size: Default''' is selected by default. The radio button '''Size: Custom''' allows you to set the excitation box manually by modifying the coordinates of '''Corner 1''' (front lower left) and '''Corner 2''' (back upper right) of the box in the grid coordinate system (GCS).&lt;br /&gt;
* In the Field Definition section of the dialog, you can enter the Amplitude of incident electric field in V/m. The default field '''Amplitude''' is 1 V/m. Note that you do not specify the phase of a Gaussian beam because the beam focus already contains the phase information.&lt;br /&gt;
* The direction of the Gaussian Beam is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the Gaussian Beam and choose from the three options: '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''', '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''User Defined'''.&lt;br /&gt;
* Unlike plane waves, a Gaussian beam is a localized field. Therefore, you need to specify the '''Beam Properties'''. This includes the coordinates of the beam's '''Focus''', which is the beam's waist center in the world coordinate system as well as the beam's '''Radius''' in project units.&lt;br /&gt;
&lt;br /&gt;
A Gaussian beam box placed around a horizontal PEC plate. The trident at the corner of the box shows the propagation vector as well as the E-field and H-field polarization vectors. The titled transparent green circle shows the footprint of Gaussian beam at its focal (waist) point.&lt;br /&gt;
&lt;br /&gt;
==Running FDTD Simulations==&lt;br /&gt;
&lt;br /&gt;
===Strategy For An Accurate &amp;amp; Efficient FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
The FDTD method is one of the most versatile numerical techniques for solving electromagnetic modeling problems. Choosing the right settings and optimal values for certain numerical parameters will have a significant impact on both accuracy and computational efficiency of an FDTD simulation. Below are a number of steps that you should typically follow by order when planning your FDTD simulation:&lt;br /&gt;
&lt;br /&gt;
* Identify material types and proper domain boundary conditions.&lt;br /&gt;
* Identify the source type and excitation mechanism.&lt;br /&gt;
* Define the project observables.&lt;br /&gt;
* Mesh the physical structure and examine the quality of the generated mesh and it geometric fidelity.&lt;br /&gt;
* Determine the proper temporal waveform.&lt;br /&gt;
* Select the simulation mode and run the FDTD engine.&lt;br /&gt;
&lt;br /&gt;
For certain problems, more than one combination or choice of settings and parameters may still give acceptable results. In most cases, EM.Cube tries to make these choices convenient for you by suggesting default settings or default parameter values. For example, EM.Cube by default generated am &amp;quot;adaptive&amp;quot; type mesh with a default density of 20 cells per effective wavelength. The default computational domain features CPML walls placed a quarter free-space wavelength away from the large bounding box of the entire physical structure. A modulated Gaussian waveform with certain optimal parameters is used to drive the project's excitation source by default. You can change most of these settings arbitrarily. For example, you can set up your own computational domain with different types of boundary conditions, customize the FDTD mesh by modifying a large number of mesh settings and use other types of excitation waveforms.&lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that you are always responsible for the choice of excitation source and the project observables. In other words, EM.Cube does not automatically provide a default excitation source or does not suggest default observables.}}&lt;br /&gt;
&lt;br /&gt;
===FDTD Observable Types===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube, project observables are the simulation data that are generated by the simulation engine at the end of each simulation run. EM.Cube's FDTD simulation engine calculates all the six electric and magnetic field components (E&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;, H&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; and H&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;) at every mesh grid node at all time steps from t = 0 until the end of the time loop. However, in order to save memory space, the engine has to destroy the temporal field data from each time step to the next and reuse the memory. Storage, manipulation and visualization of 3D data can become overwhelming for complex structures and larger computational domains. Furthermore, calculation of some field characteristics such as radiation patterns or radar cross section (RCS) can be sizable, time-consuming, post-processing tasks. That is why EM.Cube asks you to define project observables to instruct why types of simulation data you seek in each simulation effort.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's FDTD Modules currently offers the following types of observable:&lt;br /&gt;
&lt;br /&gt;
* Field Probes&lt;br /&gt;
* Field Sensors&lt;br /&gt;
* Domain Energy&lt;br /&gt;
* Far Field - Radiation Patterns&lt;br /&gt;
* Far Field - RCS&lt;br /&gt;
* Huygens Surface Data&lt;br /&gt;
* Port Characteristics (S/Y/Z Parameters and VSWR)&lt;br /&gt;
* Reflection and Transmission Coefficients&lt;br /&gt;
&lt;br /&gt;
Field probes monitor the field components at a certain point in the computational domain. They record the time-domain field data during the entire time loop and compute their frequency spectrum using a discrete Fourier transform. Field sensors are primarily intended for observation of near field maps on a certain cross section of the computational domain. The field sensor planes are parallel to one of the three principal XY, YZ or ZX planes. When you run a frequency sweep or parametric sweep, multiple maps are generated for each sample of your sweep variable, and you can animate these maps. You can also animate the evolution of the near fields in the time domain over the course of the simulated time loop. EM.Cube can also keep track of the electric, magnetic and total energy of the computational domain as functions of the time step.&lt;br /&gt;
&lt;br /&gt;
Using asymptotic near-to-far-field transformations, EM.Cube calculates the far fields of your physical structure in the standard spherical coordinate system. The radiation patterns are indeed the spherical electric field components E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; expressed as functions of the observation angles &amp;amp;theta; and &amp;amp;phi; over a unit sphere. The far field data are calculated in the frequency domain at a specified frequency, which is equal to your project's center frequency by default. When your excitation source is a plane wave or a Gaussian beam, the far field data actually represent the scattering behavior of your &amp;quot;target&amp;quot;. In the case of a plane wave source, the FDTD simulation engine can also compute the radar cross section of you target. If your structure is periodic, then the reflection and transmission coefficients of the periodic surface are also calculated over the entire bandwidth of your project.&lt;br /&gt;
&lt;br /&gt;
You can define ports for lumped sources, waveguide sources and distributed sources. In that case, the FDTD simulation engine calculates the scattering (S) parameters of your multiport network over the entire bandwidth specified in your project. From the scattering matrix, EM.Cube determines the impedance and admittance matrices of your network over the operational bandwidth. You can plot the S/Y/Z parameters in EM.Grid. If your project has more than one port, the FDTD time loop will be run as many times as the number of ports, N. In each time loop run j (j = 1, 2, ..., N), the source(s) associated with the jth port is (are) excited with a unit amplitude and all the other sources are turned off. In this run, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters (i = 1, 2, ..., N) are calculated. At the end of the Nth run, the entire S matrix is completed.&lt;br /&gt;
&lt;br /&gt;
===The FDTD Simulation Engine Settings===&lt;br /&gt;
&lt;br /&gt;
An FDTD simulation involves a number of numerical parameters that can be accessed and modified from the FDTD Engine Settings Dialog. To open this dialog, select '''Menu &amp;gt; Simulate &amp;gt; Simulation Engine Settings... '''or open the '''Run Dialog''', and click the '''Settings''' button next to the engine dropdown list.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot; '''Convergence''' &amp;quot; section of the dialog, you can set the '''Termination Criterion''' for the FDTD time loop. The time loop must stop after a certain point in time. If you use a decaying waveform like a Gaussian pulse or a Modulated Gaussian pulse, after certain number of time steps, the total energy of the computational domain drops to very negligible values, and continuing the time loop thereafter would not generate any new information about your physical structure. By contrast, a sinusoidal waveform will keep pumping energy into the computational domain forever, and you have to force the simulation engine to exit the time loop. EM.Cube's [[FDTD Module]] provides two mechanism to terminated the time loop. In the first approach, an energy-like quantity defined as U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; = &amp;amp;Sigma; [ &amp;amp;epsilon;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''E&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + &amp;amp;mu;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;|'''H&amp;lt;sub&amp;gt;i,n&amp;lt;/sub&amp;gt;'''|&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; ].&amp;amp;Delta;V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is calculated and recorded at a large random set of points in the computational domain. Here i is the space index and n is the time index. The quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; has a zero value at t = 0 (i.e. n = 0), and its value starts to build up over time. With a Gaussian or Modulated Gaussian pulse waveform, U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; reach a maximum value U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; at some time step and starts to decline thereafter. The ratio 10.log( U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/ U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;) expressed in dB is used as the convergence criterion. When its value drops below certain '''Power Threshold''', the time loop is exited. The default value of Power Threshold is -30dB, meaning that the FDTD engine will exit the time loop if the quantity U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; drops to 1/1000 of its maximum value ever. The second termination criterion is simply reaching a '''Maximum Number of Time Steps''' , whose default value set to 10,000. A third option, which is EM.Cube's default setting (labeled &amp;quot;'''Both'''&amp;quot;), terminates the simulation as soon as either of the first two criteria is met first. &lt;br /&gt;
&lt;br /&gt;
{{Note|Keep in mind that for highly resonant structures, you may have to increase the maximum number of time steps to very large values above 20,000.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD58.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;'''Acceleration'''&amp;quot; section of the FDTD Simulation Engine Settings dialog give three options for the FDTD kernel:&lt;br /&gt;
&lt;br /&gt;
# Serial CPU Solver&lt;br /&gt;
# Multi-Core CPU Solver&lt;br /&gt;
# GPU Solver&lt;br /&gt;
&lt;br /&gt;
The serial CPU solver is EM.Cube's basic FDTD kernel that run the time marching loop on a single central processing unit (CPU) of your computer. The default option is the multi-core CPU solver. This is a highly parallelized version of the FDTD kernel based on the Open-MP framework. It takes full advantage of a multi-core, multi-CPU architecture, if your computer does have one. The GPU solver is a hardware-accelerated FDTD kernel optimized for CUDA-enabled graphical processing unit (GPU) cards. If your computer has a fast NVIDIA GPU card with enough onboard RAM, the GPU kernel can speed up your FDTD simulations up to 50 times or more over the single CPU solver.&lt;br /&gt;
&lt;br /&gt;
For structures excited with a plane wave source, there are two standard FDTD formulations: '''Scattered Field '''(SF) formulation and '''Total Field - Scattered Field''' (TF-SF) formulation. EM.Cube's [[FDTD Module|FDTD module]] offers both formulations. The TF-SF solver is the default choice and is typically much faster than the SF solver for most problems. In two cases, when the structure has periodic boundary conditions or infinite CPML boundary conditions (zero domain offsets), only the SF solver is available. The other sections of the FDTD Simulation Engine Settings dialog will be described next in the context of Waveforms and Discrete Fourier Transforms.&lt;br /&gt;
&lt;br /&gt;
===Running A Wideband FDTD Simulation===&lt;br /&gt;
&lt;br /&gt;
Once you build your physical structure in the project workspace and define an excitation source, you are ready to run an FDTD simulation. The simulation engine will run even if you have not defined any observables. Obviously, no simulation data will be generated in that case. EM.Cube's [[FDTD Module]] currently offers several different simulation modes as follows:&lt;br /&gt;
&lt;br /&gt;
# Analysis&lt;br /&gt;
# Frequency Sweep&lt;br /&gt;
# Parametric Sweep&lt;br /&gt;
# Angular Sweep&lt;br /&gt;
# R/T Macromodel&lt;br /&gt;
# Dispersion Sweep&lt;br /&gt;
# Huygens Sweep&lt;br /&gt;
# [[Optimization]]&lt;br /&gt;
# HDMR&lt;br /&gt;
&lt;br /&gt;
Analysis is the simplest and most straightforward simulation mode of the [[FDTD Module]]. It runs the FDTD time marching loop once. At the end of the simulation, the time-domain field data are transformed into the frequency domain using a discrete Fourier transform (DFT). As a result, you can generate wideband frequency data from a single time-domain simulation run. The other simulation modes will be explained later in this manual.&lt;br /&gt;
&lt;br /&gt;
To open the Simulation Run Dialog, click the '''Run''' [[Image:run_icon.png]] button of the '''Simulate Toolbar''' or select '''Menu &amp;gt; Simulate &amp;gt; Run...''' from the menu bar or use the keyboard shortcut '''Ctrl+R'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD57.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's FDTD Simulation dialog.&lt;br /&gt;
&lt;br /&gt;
To start the FDTD simulation, click the '''Run''' button at the bottom of this dialog. Once the simulation starts, the &amp;quot;'''Output Window'''&amp;quot; pops up and reports messages during the different stages of the FDTD simulation. During the FDTD time marching loop, after every 10th time step, the output window updates the values of the time step, elapsed time, the engine performance in Mega-cells per seconds, and the value of the convergence ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; in dB. An EM.Cube FDTD simulation is terminated when the ratio U&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;/U&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; falls below the specified power threshold or when the maximum number of time steps is reached. You can, however, terminate the FDTD engine earlier by clicking the '''Abort Simulation''' button.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD66.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s output window.&lt;br /&gt;
&lt;br /&gt;
===Waveforms &amp;amp; Discrete Fourier Transforms===&lt;br /&gt;
&lt;br /&gt;
The accuracy of the FDTD simulation results depends on the right choice of temporal waveform. The excitation waveform is the temporal source function that sets the initial conditions at t = 0 and provides an excitation signal afterwards. EM.Cube currently offers three choices:&lt;br /&gt;
&lt;br /&gt;
* Sinusoidal&lt;br /&gt;
* Gaussian Pulse&lt;br /&gt;
* Modulated Gaussian Pulse&lt;br /&gt;
&lt;br /&gt;
EM.Cube's default waveform choice is a modulated Gaussian pulse. At the end of an FDTD simulation, the time domain field data are transformed into the frequency domain at your specified frequency. This is usually the same as the center frequency of your project. Different waveforms have different spectral behaviors. It is critical that you understand the time-domain-to-frequency-domain transformations in order to correctly interpret some simulation data.&lt;br /&gt;
&lt;br /&gt;
From the &amp;quot;'''Excitation Waveform'''&amp;quot; section of the '''FDTD Simulation Engine Settings '''dialog, you can override EM.Cube's default waveform and customize your own. The sinusoidal waveform has a frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; equal to the project's center frequency and does not have any parameter that you can modify. The delay in this case is set to t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1/(4f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;) so that the waveform vanishes at t = 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD67.png]]&lt;br /&gt;
&lt;br /&gt;
where sinc(x) = sin(&amp;amp;pi;x) / (&amp;amp;pi;x), and T is the length of the temporal window from t = 0 to the exit time t = N&amp;amp;Delta;t, and &amp;amp;Delta;t is the time step of the time marching loop.&lt;br /&gt;
&lt;br /&gt;
For Gaussian and modulated Gaussian waveforms you can set the pulse width and time delay. The pulse width should be chosen such that the Fourier transform of your selected waveform encompasses your project bandwidth. Rather than setting an arbitrary pulse width, EM.Cube lets you set a parameter called '''Spectral Truncation Level '''or '''delta (&amp;amp;delta;)''', which is the normalized truncation threshold for the spectral content of the excitation pulse. This is explained as follows. Recall that the Fourier transform of a Gaussian pulse is also a Gaussian pulse. The Fourier transform of a modulated Gaussian pulse consists of two Gaussian pulses located at the two opposite sides of f = 0 (DC) shifted by the modulation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD63(1).png]]&lt;br /&gt;
&lt;br /&gt;
Since a Gaussian pulse waveform has considerable DC content, it must be used to model lowpass structures. In that case, the center frequency and bandwidth of the project must be set such that &amp;amp;Delta;f = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and hence, f&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; - &amp;amp;Delta;f/2 = 0, and f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2 = 2f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. The width t of the temporal Gaussian pulse is then determined such that at f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; the spectral Gaussian pulse drops to the d-level from its maximum value of 1. With a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD64(1).png]]&lt;br /&gt;
&lt;br /&gt;
When you set &amp;amp;delta; = 0.1 (the default value), it means that the Fourier transform of your excitation waveform drops to 10% of its peak at the upper edge of your specified frequency range. For a Modulated Gaussian pulse waveform with a bandwidth of &amp;amp;Delta;f, the pulse width must satisfy the following equation:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD65.png]]&lt;br /&gt;
&lt;br /&gt;
For the default value of &amp;amp;delta; = 0.1, you get the standard relation: &amp;amp;tau; = 0.966 / BW, which is typically used for modulated Gaussian waveforms. The source waveform requires a time delay t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; so that its value drops to almost zero at t = 0. The time delay is expressed in terms of a multiple of the pulse width: '''t0 / tau''', and its default value is 4.5.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that FDTD is a time domain algorithm. At the end of an FDTD simulation, a Discrete Fourier Transform (DFT) is performed on the time domain data to calculate frequency domain characteristics such as near fields, far field radiation patterns, RCS, S/Y/Z parameters, etc.:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD68.png]]&lt;br /&gt;
&lt;br /&gt;
Of [[FDTD Module]]'s observables, the near fields, far fields and all of their associated parameters like directivity, RCS, etc., are calculated at a certain frequency that is specified as part of the definition of the observable. On the other hand, port characteristics like S/Y/Z parameters, VSWR and periodic characteristics like reflection and transmission coefficients, are calculated over the entire specified bandwidth of your project. In other words, you get a wideband frequency response at the end of a single time domain FDTD simulation run. The number of frequency point data over this bandwidth is equal to the number of DFT samples that are generated during the time marching loop. This number is set to 200 by default. In other words, 200 frequency data are generated at the end of an FDTD simulation. You can change this number through the box labeled '''No. DFT Samples''' in the &amp;quot;Discrete Fourier Transform&amp;quot; section of the FDTD Simulation Engine Settings dialog.&lt;br /&gt;
&lt;br /&gt;
It can be seen that the discrete Fourier transform multiplies the samples of time-domain field quantities by the time step &amp;amp;Delta;t. This means that the resulting Fourier transforms of electric and magnetic field components now have units of V/m/Hz or A/m/Hz, respectively. Moreover, the Fourier transforms of the three waveform types have different spectral values at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. This makes it difficult to compare the FDTD simulation results with the results from EM.Cube's other computational modules. For example, in the Planar, MoM3D and Physical Optics Modules, a plane wave source typically has a complex-valued functional form of exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;'''k.r'''), which has a unit magnitude. In [[FDTD Module]], the time domain plane wave source has a functional dependence of the following form:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD69.png]]&lt;br /&gt;
&lt;br /&gt;
where f(t) is the temporal waveform, t&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the time delay, l&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is a spatial shift, and c is the speed of light in the free space. The Fourier transform of the above temporal function evaluated at f = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; has an amplitude different than 1. For this purpose, EM.Cube's [[FDTD Module]] normalizes the temporal waveform by the magnitude of its Fourier transform at the observation frequency f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. As a result, a temporal plane source with any of the three waveform types will always create spectral incident source with |'''E&amp;lt;sup&amp;gt;inc&amp;lt;/sup&amp;gt;'''('''r''', f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)| = 1. The temporal waveform normalization factors for the three waveform types are given below:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD70.png]]&lt;br /&gt;
&lt;br /&gt;
===Probing Fields in Time and Frequency Domains===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD75.png|thumb|300px|FDTD Field Probe Dialog]]&lt;br /&gt;
By computing the time domain fields at a certain location, you can examine the transient response of a system at that location. This is also very useful for monitoring the convergence of FDTD time marching loop. EM.Cube's field probes allow you to save the temporal values of a field component at a specified point in the computational domain during the entire time marching loop. You can plot the time domain field components as a function of the time step index. You can also plot the spectral contents of those field components, i.e. their Fourier transform, over the project's specified frequency bandwidth. To define a new field probe, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Probe''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* You can change the default name of the probe as well as its color. The field probe is displayed as a small green arrow in the Project Workspace.&lt;br /&gt;
* By default EM.Cube creates a field probe located at the origin of coordinates (0,0,0). You can move the probe to any location by changing its X, Y and Z coordinates.&lt;br /&gt;
* In the Probe Location section of the dialog, you can also set the '''Direction''' of the probe from a dropdown list that contains ±X, ±Y and ±Z options. The default direction is +Z.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD76.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Field Probe dialog and an X-directed probe placed above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the electric and magnetic field components along the specified probe direction are saved at the probe's location. Both the time domain fields from t = 0 to the last time step and their frequency domain spectrum are recorded. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you see a list of all the data files available for plotting. These include the time-domain and frequency-domain probe data files with '''.DAT''' and '''.CPX''' file extensions, respectively. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. The time-domain field probe is plotted on a Cartesian graph showing the selected field component as a function of time step. The frequency-domain probe contains two Cartesian graphs: amplitude and phase of the selected field component over the project's frequency range.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD77.png|400px]] [[Image:FDTD78.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: The time domain and frequency domain field components plotted vs. time and frequency, respectively.&lt;br /&gt;
&lt;br /&gt;
===Frequency-Domain Near Field Visualization===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD71(1).png|thumb|300px|[[FDTD Module]]'s Field Sensor dialog]]&lt;br /&gt;
&lt;br /&gt;
In EM.Cube you can visualize the near fields at a specific frequency in a specific plane of the computational domain. At the end of an FDTD simulation, all the time domain electric and magnetic field values are available at all mesh nodes. These temporal quantities are transformed into the frequency domain using discrete Fourier transforms to calculate the electric and magnetic fields on a specified sensor plane. To define a new Field Sensor, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''&lt;br /&gt;
* The '''Label''' box allows you to change the sensor’s name.&lt;br /&gt;
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.&lt;br /&gt;
* By default EM.Cube creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. Note that the sensor plane extends across the entire computational domain. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z coordinates. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the project workspace.&lt;br /&gt;
* The frequency at which the field is evaluated has to be specified in the box labeled '''Near Field Frequency''' in the project's frequency unit. By default, this is equal to the project's center frequency.&lt;br /&gt;
&lt;br /&gt;
After closing the Field Sensor Dialog, the a new field sensor item immediately appears under the '''Observables''' section in the Navigation Tree and can be right clicked for additional editing. Once an FDTD simulation is finished, a total of 14 plots are added to every Field Sensor node in the Navigation Tree. These include the magnitude and phase of all three components of E and H fields and the total electric and magnetic field values at the specified frequency. Click on any of these items and a color-coded intensity plot of it is visualized in the project workspace. A legend box appears in the upper right corner of the field plot, which can be dragged around using the left mouse button. The values of the magnitude plots are normalized between 0 and 1. The legend box contains the minimum field value corresponding to 0 of the color map, maximum field value corresponding to 1 of the color map, and the unit of the field quantity, which is V/m for E-field and A/m for H-field. The values of phase plots are always shown in Radians between -p and p. To display the fields properly, the structure is cut through the field sensor plane, and only part of it is shown. If the structure still blocks your view, you can simply hide or freeze it. You can change the view of the field plot with the available view operations such as rotating, panning, zooming, etc.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD72.png|400px]] [[Image:FDTD74.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A horizontal field sensor plane showing the total electric and magnetic fields above a PEC plate illuminated by a normally incident plane wave.&lt;br /&gt;
&lt;br /&gt;
You can plot frequency domain fields in EM.Grid on 2D Cartesian graphs. Using field probes, you can plot any frequency domain field component as a function of frequency over the specified bandwidth at any point within the computational domain. Using field sensors, you can plot the total frequency domain fields as a function of position (spatial coordinates) across the computational domain. Every field sensor has a crosshair made up of two perpendicular lines parallel to the boundaries of the sensor plane. When you define a field sensor for the first time, the crosshair passes through the origin of coordinates. You can change the location of the crosshair on the sensor plane using the other two coordinate boxes besides the one that moves the location of the sensor plane. At the end of an FDTD simulation, in addition to the 3D near field maps, EM.Cube also generates 2D Cartesian graphs of the total electric and magnetic fields along the two perpendicular crosshair lines. A total of four Cartesian data files are generated, two for total E-field and two for total H-field along the two lines. You can plot these data in EM.Grid, which can be accessed from EM.Cube's Data Manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''', or select '''Simulate &amp;gt; Data Manager''' from the menu bar, or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu, or use the keyboard shortcut '''Ctrl+D'''. In the Data Manager dialog, you see a list of all the data files available for plotting including the frequency-domain sensor data files with a '''.DAT''' file extension. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph. Frequency domain field sensor graphs show the total field as a function of cell index along one of the principal axes. If the FDTD mesh is uniform in that direction, the position is found by multiplying the cell index by the cell dimension and offsetting with respect to lower-front-left corner of the computational domain.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD73.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Cartesian graph of total magnetic field vs. Y-index along the crosshair in the field senor plane.&lt;br /&gt;
&lt;br /&gt;
===Visualizing Field Evolution in Time Domain===&lt;br /&gt;
&lt;br /&gt;
In the course of the FDTD time marching process, a tremendous amount of data are generated that include all the six E/H field components at every Yee cell and at every time step. The temporal field values at a sensor plane are of particular interest. Such plots show the evolution of the fields as a function of time starting from time t = 0, when all the fields are zero everywhere in the computational domain. EM.Cube can record snapshots of the field sensor data as the time loop marches forward. When you define a field sensor for the first time, by default it displays the frequency domain near field data. In order to record and save the time domain data, you have to open the field sensor's property dialog by right clicking on the field sensor's name in the Navigation Tree and selecting '''Properties...'''from the contextual menu. In the section titled '''Sensor Domain''', select the radio button labeled '''Time Domain'''. Also, in the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. By default, the time domain field data are saved every 100 time steps. To change this setting, right click on the '''Field Sensors''' item in the Navigation Tree and select '''Time Domain Settings...''' from the contextual menu. In the Time Domain Settings Dialog, change the value of the box labeled '''Sampling Interval (in time steps)'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Time domain animation is available only for FDTD simulations of &amp;quot;Analysis&amp;quot; type. It cannot be used in conjunction with sweep simulations. Once the FDTD Analysis is finished, you can click any of the field plots and visualize it in the main window or you can animate them by right clicking on the field sensor's name in the Navigation Tree and selecting '''Animation''' from the contextual menu. You can change the animation settings from the '''Animation Controls Dialog'''. Note that the animation loop repeats itself indefinitely until you close the Animation Controls dialog or hit the keyboard’s '''Esc Key'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD121.png]] [[Image:FDTD126.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Changing a field sensor's domain to generate time-domain field data for animation, and (Right) [[FDTD Module]]'s Time Domain Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD125.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Animation of E-field plots in time domain.&lt;br /&gt;
&lt;br /&gt;
===Scattering Parameters and Port Characteristics===&lt;br /&gt;
&lt;br /&gt;
If your physical structure is excited by a Lumped Source or a Waveguide Source or a Distributed Source, and one or more ports have been defined, the FDTD engine calculates the scattering (S) parameters, impedance (Z) parameters and admittance (Y) parameters of the selected ports. The S parameters are calculated based on the port impedances specified in the project's &amp;quot;Port Definition&amp;quot;. If more than one port has been defined in the project, the FDTD engine runs an internal port sweep. Each port is excited separately with all the other ports turned off. When the ''j''th port is excited, all the S&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; parameters are calculated together based on the following definition:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
S_{ij} = \sqrt{\frac{Re(Z_i)}{Re(Z_j)}} \cdot \frac{V_j - Z_j^*I_j}{V_i+Z_i I_i}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD82(1).png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where V&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the voltage across Port i, I&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the current flowing into Port i and Z&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; is the characteristic impedance of Port i. The sweep loop then moves to the next port until all ports have been excited. After the FDTD simulation is finished, the S parameters are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with &amp;quot;#&amp;quot;. Besides the scattering parameters, the admittance (Y) and impedance (Z) parameters are also calculated and saved in complex data files with '''.CPX''' file extensions. The following relationships are used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\mathbf{ [Z] = [\sqrt{Z_0}] \cdot ([U]+[S]) \cdot ([U]-[S])^{-1} \cdot [\sqrt{Z_0}] }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \mathbf{ [Y] = [Z]^{-1} } &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD83.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;\mathbf{[U]}&amp;lt;/math&amp;gt; is the identity matrix of order N, and &amp;lt;math&amp;gt;\mathbf{\sqrt{Z_0}}&amp;lt;/math&amp;gt; is a diagonal matrix whose diagonal elements are the square roots of port characteristic impedances. The voltage standing wave ratio (VSWR) of the structure at the first port is also computed and saved to a real data '''.DAT''' file. The following definition is used:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \text{VSWR} = \frac{|V_{max}|}{|V_{min}|} = \frac{1+|S_{11}|}{1-|S_{11}|} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD84.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S Parameters''', '''Plot Y Parameters''', '''Plot Z Parameters''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port parameters. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its row in the table and then click the '''Plot''' button to plot the graph in '''EM.Grid'''. By default, the S parameters are plotted as dual magnitude-phase graphs, while the Y and Z parameters are plotted as dual real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:&lt;br /&gt;
&lt;br /&gt;
# Magnitude and Phase&lt;br /&gt;
# Real and Imaginary Parts&lt;br /&gt;
# Smith Chart&lt;br /&gt;
&lt;br /&gt;
In particular, it may be useful to plot the S&amp;lt;sub&amp;gt;ii&amp;lt;/sub&amp;gt; parameters on a Smith chart. To change the format of a data plot, select it and click the '''Edit '''button of Data Manager and select one of the available graph type options.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD114.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's data manager showing a list of complex data files available for plotting in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD115.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Plot of S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; of a filter in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
===Far Field Calculations in FDTD===&lt;br /&gt;
&lt;br /&gt;
For radiating structures or scatterers, the far field quantities are of primary interest. EM.Cube's [[FDTD Module]] can calculate the far field radiation patterns of an antenna or the radar cross section (RCS) of a target. In general, by far fields we mean the electric fields evaluated in the far zone of a physical structure, which satisfies the following condition:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD79.png]]&lt;br /&gt;
&lt;br /&gt;
where r is the distance between the observation and source points, &amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the free space wavelength and D is the largest dimension of the radiating structure. In EM.Cube, the far-zone electric fields '''E&amp;lt;sup&amp;gt;ff&amp;lt;/sup&amp;gt;'''(&amp;amp;theta;, &amp;amp;phi;) are functions of the spherical observation angles only and are defined as&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD104(1).png]]&lt;br /&gt;
&lt;br /&gt;
where k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 2&amp;amp;pi;/&amp;amp;lambda;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;amp;eta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 120&amp;amp;pi; &amp;amp;Omega; is the intrinsic impedance of the free space.&lt;br /&gt;
&lt;br /&gt;
In the FDTD method, the far fields are calculated using a near-field-to-far-field transformation of the field quantities on a given closed surface. EM.Cube uses rectangular boxes to define these closed surfaces. You can use EM.Cube's default radiation box or define your own. The far-zone electric field can be written as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD105.png]]&lt;br /&gt;
&lt;br /&gt;
where '''J '''and '''M''' are the equivalent electric and magnetic surface currents on the surface of the enclosing box. '''G&amp;lt;sub&amp;gt;A,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function associated with the magnetic vector potential '''A''' and '''G&amp;lt;sub&amp;gt;EM,ff&amp;lt;/sub&amp;gt;''' is the asymptotic form of the dyadic Green's function of the electric field due to a magnetic current. In most FDTD problems, the background medium of your physical structure is the free space and these functions reduce to the much simpler and familiar free-space Green's function: exp(-jk&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;r)/(4&amp;amp;pi;r). In that case, one can define a pair of electric and magnetic radiation integrals:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD107.png]]&lt;br /&gt;
&lt;br /&gt;
where&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD108.png]]&lt;br /&gt;
&lt;br /&gt;
In that case, the &amp;amp;theta; and &amp;amp;phi; components of the far fields can be computed from the following relationships:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD106.png]]&lt;br /&gt;
&lt;br /&gt;
where the &amp;amp;theta; and &amp;amp;phi; components of the radiation integrals are given by:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD109.png]]&lt;br /&gt;
&lt;br /&gt;
Normally, the radiation box should enclose the entire FDTD structure. In this case, the calculated radiation pattern corresponds to the entire radiating structure. The radiation box may contain only parts of a structure, which results in partial radiation patterns. In calculating the far field quantities, using Poynting's theorem, one can define the radiated power density as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD110.png]]&lt;br /&gt;
&lt;br /&gt;
To eliminate the dependency on r, a normalized quantity called &amp;quot;Radiation Intensity&amp;quot; in the following way:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD111.png]]&lt;br /&gt;
&lt;br /&gt;
The total radiated power can now be calculated as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD112.png]]&lt;br /&gt;
&lt;br /&gt;
===Defining The Far Field Box===&lt;br /&gt;
&lt;br /&gt;
For any far field calculations in EM.Cube, first you have to define a far field observable in the Navigation Tree. In [[FDTD Module]], defining a far field observable also initiates a far field box in the computational domain. This box is used to perform the near-to-far-field transformation at the end of an FDTD simulation. To insert a new far field box, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Radiation Pattern...''' to open the Radiation Pattern Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of radiation pattern calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of far field calculations is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Radiation Box''' section of the dialog. As in the case of plane waves and Gaussian beams, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are specified in the world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the radiation data over the entire (spherical) 3D space, a number of 2D pattern graphs are also generated. These are indeed pattern cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''. Also, the 2D radiation pattern graphs are normalized by default. You can instruct EM.Cube to plot the 2D pattern graphs un-normalized (as calculated) by removing the check mark from the box labeled '''Normalize 2D Patterns'''.&lt;br /&gt;
&lt;br /&gt;
After closing the Far Field Dialog, a far field entry immediately appears with its given name under the '''Far Fields''' item of the '''Observables''' section in the Navigation Tree. A far field box shows up as a light blue wireframe box in the project workspace. You can right click on the far field item's name in the navigation tree and select '''Properties...''' to open up the radiation pattern dialog for further editing. Bear in mind that a full 3D radiation pattern calculation with a high angular resolution might be very time-consuming.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD116.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Visualizing 3D Radiation Patterns===&lt;br /&gt;
&lt;br /&gt;
Once an FDTD simulation is finished, three far field items are added to the Far Field section of the Navigation Tree. These are the far-zone E-field component along &amp;amp;phi; direction, the far-zone E-field component along &amp;amp;phi; direction and the total far-zone E-field defined as:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD129.png]]&lt;br /&gt;
&lt;br /&gt;
The 3D plots can be viewed in the project workspace by clicking on each item. The view of the 3D far field plot can be changed with the available view operations such as rotate, pan and zoom. A legend box appears in the upper right corner of the 3D radiation pattern plot, which can be dragged around with the left mouse button. The (maximum) '''Directivity''' of the radiating structure is displayed at the bottom of the legend box and is calculated using the definition:&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD113.png]]&lt;br /&gt;
&lt;br /&gt;
You can change the type of the 3D radiation pattern plot through the '''Radiation Pattern Dialog'''. In the '''3D Display Type''' section of this dialog you can choose from three options: '''3D Polar''', which is the default choice, '''Spherical Map''' and '''Cone'''. In the case of cone type, you can also set the size of the cones that are used for a vectorial visualization of the far field data. If the structure blocks the view of the radiation pattern, you can simply hide or freeze the entire physical structure or parts of it. Note that 3D radiation patterns are always positioned at the origin (0,0,0) of the spherical world coordinate system even though the radiation center of the structure may not be located at that point. Sometimes, it might be a good idea to hide the physical structure when you are viewing the 3D radiation patterns to avoid any confusion. In a 3D radiation pattern visualization, the fields are always normalized to the maximum of the total far field. For this reason, sometimes the cross-polarization component might get lost compared to the co-polarization component and you have to zoom in to make it visible.&lt;br /&gt;
&lt;br /&gt;
You can also change the properties of the 3D radiation pattern plot by selecting the '''Properties...''' item in the right click menu of the plot's name in the Navigation Tree or by double-clicking the legend box. This opens up the '''Output Plot Settings Dialog'''. In general, there are two scale options: Linear (which is the default option) and dB. In the case of a linear plot, the plot range varies between 0 and 1. In the case of a dB plot, the range is fixed from -50 to 0dB. You can change the '''Color Map''' option as well the foreground and background colors of the legend box.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out26_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out28_tn.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: The 3D total radiation pattern of a dipole antenna: (Left) polar type, and (Right) cone type.&lt;br /&gt;
&lt;br /&gt;
===2D Radiation Graphs===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, the radiation pattern data E&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, E&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt; and E&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt; in the three principal XY, YZ and ZX planes plus one additional user defined phi plane cut are available for plotting on 2D graphs in '''EM.Grid'''. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select '''Open Data Manager...''' from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by highlighting its row in the table and then click the '''Plot''' button to plot the graph.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In EM.Cube, the axial ratio is always defined in the LCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; or RCP&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt; sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. Four 2D Cartesian graphs of the axial ratio as functions of the theta angle are generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of an FDTD sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In that case, either quantity needs to be computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD119.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Data Manager dialog showing a list of 2D polar and Cartesian radiation pattern graphs.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD118.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D Cartesian radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD117.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: A 2D polar radiation pattern in the ZX plane cut.&lt;br /&gt;
&lt;br /&gt;
===Radiation Pattern Above A Half-Space Medium===&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier when discussing boundary conditions and computational domain, you can use CPML boundary conditions with zero offsets to model a structure with infinite lateral extents. At the end of the FDTD simulation, the far fields are calculated using the near-field-to-far-field transformation. This calculation requires the dyadic Green's function of the background structure. By default, the FDTD engine uses the free space dyadic Green's function for the far field calculation. In general, the [[FDTD Module]] features dyadic Green's functions for four scenarios:&lt;br /&gt;
&lt;br /&gt;
# Free space background&lt;br /&gt;
# Free space background terminated in an infinite PEC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite PMC ground plane at the bottom&lt;br /&gt;
# Free space background terminated in an infinite dielectric half-space medium&lt;br /&gt;
&lt;br /&gt;
In other words, EM.Cube's [[FDTD Module]] can calculate the far field radiation pattern of a structure in the presence of any of the above four background structure types. In the case of an infinite PEC or PMC ground plane at the bottom of the domain with a zero -Z offset, it is assumed that the PEC or PMC planes extend laterally to the infinity even though your structure has a finite domain. In this case, EM.Cube automatically uses the correct dyadic Green's function and calculates the radiation pattern of a half-space structure. The far fields for observation in the lower half-space (0 &amp;amp;le; &amp;amp;theta; &amp;amp;le; 90°) are set equal to zero. In the fourth case, i.e. an infinite half-space ground (or a dielectric medium in general), your computational domain must end in a dielectric layer with a CPML -Z boundary. The -Z domain offset must be set equal to zero. You also have to make sure that the lateral domain offset values along the ±X and ±Y directions are set equal to zero, too. In addition, you have to specify the permittivity &amp;amp;epsilon;&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt; and electric conductivity &amp;amp;sigma; of the terminating medium. You can set these parameters from [[FDTD Module]]'s Far Field Background Medium dialog. To access this dialog, open the radiation pattern dialog and click the button labeled '''Background...''' From this dialog, you can also set the Z-coordinate of the top of the terminating half-space medium. When the bottom of your computational domain is terminated by an infinite PEC or PMC plane, the Z-coordinates of the ground plane and the bottom face of the computational domain are identical. However, when your domain is terminated in a dielectric medium, you will typically have a dielectric layer beneath your physical structure. In that case, you may want to set the Z-coordinate of the top of that dielectric layer as the position of the interface between the free space and the lower dielectric half-space.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD133.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Far Field Background Medium dialog.&lt;br /&gt;
&lt;br /&gt;
Note that the current version of EM.Cube's [[FDTD Module]] does not calculate the far-field Green's function of a laterally infinite, conductor-backed, dielectric substrate with a finite layer thickness. For problems of this type, you should use EM.Cube's [[Planar Module]]. In FDTD, either your PEC/PMC ground can be infinite or you can assume a dielectric half-space ground. Also, note that when infinite lateral dimensions are not required, like in the case of patch antennas with a finite substrate and finite ground, FDTD is the method of choice, as the planar MoM method cannot handle such cases.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out36_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out37_tn.png]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out38_tn.png]]&lt;br /&gt;
|&lt;br /&gt;
[[Image:fdtd_out39_tn.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of (Upper Left) a vertical short dipole above a PEC ground, (Upper Right) a vertical short dipole above a PMC ground, (Lower Left) a horizontal short dipole above a PEC ground, and (Lower Right) a horizontal short dipole above a PMC ground. The bottom (-Z) boundary is set to PEC or PMC, even though it is not visible.&lt;br /&gt;
&lt;br /&gt;
===Radar Cross Section===&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD131.png|thumb|300px|[[FDTD Module]]'s RCS dialog]]&lt;br /&gt;
&lt;br /&gt;
When the physical structure is illuminated by a plane wave source, the calculated far field data indeed represent the scattered fields. In that case, the incident and scattered fields can be separated. EM.Cube can calculate the radar cross section (RCS) of a target defined as:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma_{\theta} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\theta}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{\phi}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}, \quad&lt;br /&gt;
\sigma = \sigma_{\theta} + \sigma_{\phi} = 4\pi r^2 \dfrac{ \big| \mathbf{E}_{tot}^{scat} \big| ^2} {\big| \mathbf{E}^{inc} \big|^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD130.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To compute the RCS of your physical structure, you must define an RCS observable instead of a radiation pattern. Follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog.&lt;br /&gt;
* Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button.&lt;br /&gt;
* The frequency of RCS calculation can be specified in the box labeled '''Far Field Frequency'''. By default, this is equal to the center frequency of the project. However, you can calculate the far field data at any other frequency within the project's frequency range.&lt;br /&gt;
* The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the &amp;amp;theta; and &amp;amp;phi; angles are incremented by 5 degrees.&lt;br /&gt;
* Define the desired box for far field calculations in the '''Scattering Box''' section of the dialog. As in the case of radiation pattern, there are two options available, a default radiation box (radio button '''Size: Default''') or a user defined radiation box (radio buttons '''Size: Custom'''). If you check '''Size: Default''', no radiation box corner coordinates need to be specified. The radiation box will always be 0.1 free space wavelength away from the bounding box of the entire physical structure. Select '''Size: Custom''' to set the far field box manually. The values for the coordinates of '''Corner 1''' and '''Corner 2''' can now be changed. '''Corner 1''' is the lower-front-left corner and '''Corner 2''' is the upper-rear-right corner of the radiation box. The dimensions are entered in world coordinate system (WCS).&lt;br /&gt;
* At the end of an FDTD simulation, besides calculating the RCS data over the entire (spherical) 3D space, a number of 2D RCS graphs are also generated. These are indeed RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant f-cut. This latter cut is at f = 45° by default. You can assign another f angle in degrees in the box labeled '''Non-Principal Phi Plane'''.&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, in the far field section of the Navigation Tree, you will have the &amp;amp;theta; and &amp;amp;phi; components of RCS as well as the total radar cross section: &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;theta;&amp;lt;/sub&amp;gt;, &amp;amp;sigma;&amp;lt;sub&amp;gt;&amp;amp;phi;&amp;lt;/sub&amp;gt;, and &amp;amp;sigma;&amp;lt;sub&amp;gt;tot&amp;lt;/sub&amp;gt;. You can view a 3D visualization of these quantities by clicking on their entries in the Navigation Tree. The RCS values (&amp;amp;sigma;) are expressed in m&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;. The 3D plots are normalized to the maximum RCS value, which is displayed in the legend box. The 2D RCS graphs can be plotted in '''EM.Grid '''exactly in the same way that you plot 2D radiation pattern graphs. A total of eight 2D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. at the end of a sweep simulation, EM.Cube calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of &amp;amp;phi; and &amp;amp;theta; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. &lt;br /&gt;
&lt;br /&gt;
{{Note|Unlike EM.Cube's Planar, MoM3D and Physical Optics Modules, the [[FDTD Module]] currently does not support 3D mono-static RCS calculation due to the enormous amount of computational work needed. Only the bi-static RCS is calculated for a given plane wave source.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD132.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: An example of the 3D radar cross section of a PEC plate.&lt;br /&gt;
&lt;br /&gt;
===Running Frequency &amp;amp; Angular Sweeps===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, an discrete Fourier transform (DFT) is performed on the time domain data, and frequency domain data like S/Y/Z parameters, near field maps and radiation patterns are calculated. If you choose the right temporal waveform for the excitation source, the frequency domain results will have a good degree of accuracy over the specified project bandwidth. Alternatively, you can run a frequency sweep with the FDTD simulation engine, in which the engine is run as many times as the specified number of frequency samples. The center frequency of the FDTD excitation waveform is set equal to each frequency sample at each sweep run, and the frequency domain parameters are calculated at each frequency sample. This is particularly useful if you want to visualize or animate near field sensors or 3D radiation patterns at different frequencies. To run a frequency sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Frequency Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Frequency Settings Dialog. Here you can set the values of the '''Start Frequency''' and '''End Frequency''' as well as the '''Number of Samples'''. The start and end frequencies are initially set to default values calculated based on the project's center frequency and bandwidth.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD127.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]’s Frequency Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
If your FDTD project has a plane wave excitation, then you can also run an angular sweep. In this sweep, the values of the incidence angles &amp;amp;theta; and &amp;amp;phi; are varied at each sweep run. To run an angular sweep, open the FDTD '''Run Dialog''' and from the '''Simulation Mode '''dropdown list select the '''Angular Sweep''' option. Click the '''Settings''' button next to this dropdown list to open up the Angle Settings Dialog. In an angular sweep, only one of the two angles, &amp;amp;theta; and &amp;amp;phi;, can be varied at a time. Choose the radio button corresponding to the angle that you want to sweep. Then, set the values of the '''Start Angle''' and '''End Angle''' as well as the '''Number of Samples'''. Under normal circumstances, you would sweep &amp;amp;theta; from 180°to 90° backward and sweep &amp;amp;phi; from zero to 360° forward.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD128.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Angle Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Defining Custom Output Parameters===&lt;br /&gt;
&lt;br /&gt;
At the end of an FDTD simulation, a number of computed quantities are designated as &amp;quot;Standard Output&amp;quot; parameters and can be used for various post-processing data operations. For example, you can define design objectives based on them, which you need for [[optimization]]. The table below gives a list of all the currently available standard output parameters in EM.Cube's [[FDTD Module]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Standard Output Name / Syntax&lt;br /&gt;
!scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
|-&lt;br /&gt;
| SijM&lt;br /&gt;
| Magnitude of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijP&lt;br /&gt;
| Phase of (i,j)-th Scattering Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| SijR&lt;br /&gt;
| Real Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| SijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Scattering Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijM&lt;br /&gt;
| Magnitude of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijP&lt;br /&gt;
| Phase of (i,j)-th Impedance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| ZijR&lt;br /&gt;
| Real Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| ZijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Impedance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijM&lt;br /&gt;
| Magnitude of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijP&lt;br /&gt;
| Phase of (i,j)-th Admittance Parameter (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| YijR&lt;br /&gt;
| Real Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| YijI&lt;br /&gt;
| Imaginary Part of (i,j)-th Admittance Parameter&lt;br /&gt;
|-&lt;br /&gt;
| VSWR&lt;br /&gt;
| Voltage Standing Wave Ratio&lt;br /&gt;
|-&lt;br /&gt;
| D0&lt;br /&gt;
| Directivity&lt;br /&gt;
|-&lt;br /&gt;
| PRAD&lt;br /&gt;
| Total Radiated Power&lt;br /&gt;
|-&lt;br /&gt;
| THM&lt;br /&gt;
| Main Beam Theta&lt;br /&gt;
|-&lt;br /&gt;
| PHM&lt;br /&gt;
| Main Beam Phi&lt;br /&gt;
|-&lt;br /&gt;
| DGU&lt;br /&gt;
| Directive Gain along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| ARU&lt;br /&gt;
| Axial Ratio along User Defined Direction&lt;br /&gt;
|-&lt;br /&gt;
| FBR&lt;br /&gt;
| Front-to-Back Ratio&lt;br /&gt;
|-&lt;br /&gt;
| HPBWXY&lt;br /&gt;
| Half Power Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWYZ&lt;br /&gt;
| Half Power Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWZX&lt;br /&gt;
| Half Power Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| HPBWU&lt;br /&gt;
| Half Power Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLXY&lt;br /&gt;
| Maximum Side Lobe Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLYZ&lt;br /&gt;
| Maximum Side Lobe Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLZX&lt;br /&gt;
| Maximum Side Lobe Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| SLLU&lt;br /&gt;
| Maximum Side Lobe Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBXY&lt;br /&gt;
| First Null Beam Width in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBYZ&lt;br /&gt;
| First Null Beam Width in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBZX&lt;br /&gt;
| First Null Beam Width in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNBU&lt;br /&gt;
| First Null Beam Width in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLXY&lt;br /&gt;
| First Null Level in XY Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLYZ&lt;br /&gt;
| First Null Level in YZ Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLZX&lt;br /&gt;
| First Null Level in ZX Plane&lt;br /&gt;
|-&lt;br /&gt;
| FNLU&lt;br /&gt;
| First Null Level in User Defined Plane&lt;br /&gt;
|-&lt;br /&gt;
| BRCS&lt;br /&gt;
| Back-Scatter RCS&lt;br /&gt;
|-&lt;br /&gt;
| FRCS&lt;br /&gt;
| Forward-Scatter RCS along User Defined Incident Direction&lt;br /&gt;
|-&lt;br /&gt;
| MRCS&lt;br /&gt;
| Maximum Bi-static RCS&lt;br /&gt;
|-&lt;br /&gt;
| RCM&lt;br /&gt;
| Magnitude of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Phase of Reflection Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| RCR&lt;br /&gt;
| Real Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| RCI&lt;br /&gt;
| Imaginary Part of Reflection Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCM&lt;br /&gt;
| Magnitude of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCP&lt;br /&gt;
| Phase of Transmission Coefficient (in radians)&lt;br /&gt;
|-&lt;br /&gt;
| TCR&lt;br /&gt;
| Real Part of Transmission Coefficient&lt;br /&gt;
|-&lt;br /&gt;
| TCI&lt;br /&gt;
| Imaginary Part of Transmission Coefficient&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the table above, SijM, etc. means the scattering parameter observed at port i due to a source excited at port j. Similar definitions apply to all the S, Z and Y parameters. If your planar structure has N ports, there will be a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; scattering parameters, a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; impedance parameters, and a total of N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; admittance parameters. Additionally, there are four standard output parameters associated with each of the individual S/Z/Y parameters: magnitude, phase (in radians), real part and imaginary part. The same is true for the reflection and transmission coefficients of a periodic planar structure excited by a plane wave source. Each coefficient has four associated standard output parameters. These parameters, of course, are available only if your planar structure has a periodic domain and is also excited by a plane wave source incident at the specified &amp;amp;theta; and &amp;amp;phi; angles.&lt;br /&gt;
&lt;br /&gt;
All the radiation- and scattering-related standard outputs are available only if you have defined a radiation pattern far field observable or an RCS far field observable, respectively. The standard output parameters DGU and ARU are the directive gain and axial ratio calculated at the certain user defined direction with spherical observation angles (&amp;amp;theta;, &amp;amp;phi;). These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog'''. The standard output parameters HPBWU, SLLU, FNBU and FNLU are determined at a user defined f-plane cut. This azimuth angle is specified in degrees as '''Non-Principal Phi Plane''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radiation Pattern Dialog''', and its default value is 45°. The standard output parameters BRCS and MRCS are the total back-scatter RCS and the maximum total RCS of your planar structure when it is excited by an incident plane wave source at the specified &amp;amp;theta;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt; source angles. FRCS, on the other hand, is the total forward-scatter RCS measured at the predetermined &amp;amp;theta;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; and &amp;amp;phi;&amp;lt;sub&amp;gt;o&amp;lt;/sub&amp;gt; observation angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.&lt;br /&gt;
&lt;br /&gt;
If you are interested in calculating certain quantities at the end of a simulation, which you do not find among EM.Cube's standard output data, you can define your own custom output. EM.Cube allows you to define new custom output as any mathematical expression that involves the available standard output parameters, numbers, [[variables]] and all of EM.Cube's mathematical functions. For a list of legitimate mathematical functions, click the '''Functions [[Image:functions_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Functions... '''from the menu bar, or use the keyboard shortcut '''Ctrl+I''' to open the Function Dialog. Here you can see a list of all the available EM.Cube functions with their syntax and a brief description. To define a custom output, click the '''Custom Output [[Image:custom_icon.png]] '''button of the '''Simulate ''''''Toolbar''' or select '''Simulate &amp;gt; Custom Output... '''from the menu bar, or use the keyboard shortcut '''Ctrl+K''' to open the Custom Output Dialog. This dialog has a list of all of your custom output parameters. Initially, the list empty. You can define a new custom output by clicking the '''Add '''button of the dialog to open up the '''Add Custom Output Dialog'''. In this dialog, first you have to choose a new label for your new parameter and then define a mathematical expression for it. At the bottom of the dialog you can see a list of all the available standard output parameters, whose number and variety depends on your project's source type as well as the defined project observables. When you close the Add Custom Output dialog, it returns you to the Custom Output dialog, where the parameter list now reflects your newly defined custom output. You can edit an existing parameter by selecting its row in the table and clicking the '''Edit '''button, or you can delete any parameter from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM141.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Custom Output dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM140.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new custom output using the available standard output parameters.&lt;br /&gt;
&lt;br /&gt;
===Running A Parametric Sweep===&lt;br /&gt;
&lt;br /&gt;
Parametric sweep is EM.Cube's most versatile sweep type. During a parametric sweep, the values of one or more sweep [[variables]] are varied over their specified ranges, and the FDTD simulation is run for each combination of variable samples. If you define two or more sweep [[variables]], the process will then involve nested sweep loops that follow the order of definition of the sweep [[variables]]. The topmost sweep variable in the list will form the outermost nested loop, and the sweep variable at the bottom of the list will form the innermost nested loop. Note that you can alternatively run either a frequency sweep or an angular sweep as parametric sweeps, whereby the project frequency or the angles of incidence of a plane wave source are designated as sweep [[variables]]. Unlike [[optimization]] which will be discussed next, parametric sweeps are simple and straightforward and do not require careful advance planning.&lt;br /&gt;
&lt;br /&gt;
Before you can run a parametric sweep, first you have to define one or more [[variables]] in your EM.Cube project. A variable is a mathematical entity that has a numeric value. This numeric value can be changed at your discretion at any time. You can define a variable either directly as a number or as a mathematical expression that may involve other previously defined [[variables]]. Even in the latter case, an &amp;quot;expression&amp;quot; variable has a numeric value at any time. You can designate almost any numeric quantity or parameter in EM.Cube as a variable. Or alternatively, you can associate a variable with almost anything in EM.Cube. This includes all the geometrical properties of CAD objects like coordinates, rotation angles, dimensions, etc. as well as material properties of object groups and background structure, source parameters, project frequency, mesh density, and unit cell periods in the case of a periodic structure. You can define a variable either in a formal manner using EM.Cube's Variable Dialog or directly from the project workspace or from the Navigation Tree. In the former &amp;quot;formal&amp;quot; manner, first you open the [[Variables]] Dialog by clicking the '''[[Variables]]''' [[Image:variable_icon_tn.png]] button of the '''Simulate Toolbar''' or selecting '''Menu &amp;gt; Simulate &amp;gt; [[Variables]]... '''or using the keyboard shortcut '''Ctrl+B'''. By default, the variable list is initially empty. To add a new variable, click the '''Add''' button to open the &amp;quot;Add Variable Dialog&amp;quot;. Choose a '''Name '''for your new variable. In the box labeled '''Definition''', define your new variable either as an independent variable with a numeric value or as a dependent variable using a mathematical expression that involves previously defined [[variables]].&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's [[Variables]] dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM145(2).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new independent variable.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a new variable, its name and syntax (Definition) are added to the &amp;quot;Variable List&amp;quot;. You can also see the '''Current Value''' of every variable at any time in the [[Variables]] dialog. Note that at this stage, you have simply defined one or more [[variables]], but you have not yet associated them with actual objects or project properties. Wherever you see a numeric value for a parameter in a dialog, e.g. the length of a rect strip object in its property dialog, you can replace the numeric value with a variable name or a mathematical expression using the names of the currently available [[variables]]. From this moment on, that parameter or quantity becomes tied up with the associated variable. This means that every time you change the value of that variable, the value of the associated object parameter or project property will change accordingly. You can change the value of a variable directly from the [[Variables]] Dialog using the '''Edit '''button or indirectly during a parametric sweep. In the former case, you have to click the '''Update '''button of the [[Variables]] dialog to make the changes effective. Alternatively, you can define new [[variables]] directly from the property dialogs of CAD objects, material group dialogs, source dialogs or many other EM.Cube dialogs. If you replace the numeric value of a parameter with a text-string name that has not already been defined as a variable, then a new variable by that name is created and added to the &amp;quot;Variable List&amp;quot;. The numeric value of the associated parameter at the time of replacement is taken as the &amp;quot;current Value&amp;quot; of the newly created variable. In this way, you can easily and quickly define [[variables]] associated with the design parameters that you intend to sweep in your project.&lt;br /&gt;
&lt;br /&gt;
In a parametric sweep, you can vary the values of one or more &amp;quot;Independent&amp;quot; project [[variables]]. In other words, you designate one or more independent [[variables]] as sweep [[variables]] and specify how they should vary (be sampled) during the sweep simulation process. In EM.Cube you can define three types of sweep [[variables]]: '''Uniform''', '''Discrete '''and '''Random'''. Each sweep [[variables]] can be defined as one of these three types, and you can mix sweep [[variables]] of different types in a multivariable parametric sweep. A uniform sweep variable is defined by a &amp;quot;Start&amp;quot; and &amp;quot;End&amp;quot; value and is incremented by a predetermined &amp;quot;Step&amp;quot; value during a sweep. A discrete sweep variable is defined by a discrete set of values and takes on these values by the order of their list during a sweep. A random sweep variable, on the other hand, takes on random values during a sweep according to a specified probability distribution. EM.Cube currently offers two random distribution types. '''Uniform Distribution '''is defined by &amp;quot;Minimum&amp;quot; and &amp;quot;Maximum&amp;quot; values, while '''Normal (Gaussian) Distribution '''is defined by a &amp;quot;Mean&amp;quot; and &amp;quot;Standard Deviation&amp;quot;. You need to specify the &amp;quot;Number of Samples&amp;quot; for both random variable types.&lt;br /&gt;
&lt;br /&gt;
To define sweep [[variables]] and run a parametric sweep, open the '''Simulation ''''''Run Dialog''', and select the '''Parametric Sweep''' option from the dropdown list labeled '''Simulation Mode'''. When you choose the parametric sweep option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''Parametric Sweep Settings''' dialog. The '''Sweep [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the Sweep [[Variables]] List. Before moving the variable to the new location, the &amp;quot;Define Sweep Variable Dialog&amp;quot; opens up, where you have to define the attributes of your new sweep variable. In this dialog, you need to choose the type of the sweep variable using the three radio buttons labeled '''Uniform''', '''Discrete '''and '''Random'''. Depending on your choice, the proper section of the dialog becomes enabled, where you can define the range of your sweep variable and other relevant parameters.&lt;br /&gt;
&lt;br /&gt;
Once you finish the definition of a sweep variable, its name and attributes are added to the Sweep [[Variables]] List. Note that you can change your mind and remove a sweep variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the type or relevant values of a sweep variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog. As mentioned earlier, the order of the sweep [[variables]] in the list determined the structure of the nested sweep loops in a multivariable sweep process. When you have two or more sweep [[variables]] in the list, you can change their order using the '''Move Up '''and '''Move Down '''buttons.&lt;br /&gt;
&lt;br /&gt;
The Parametric Sweep Settings dialog also features another useful button labeled '''Dry Run''', which runs a &amp;quot;fake&amp;quot; sweep animation. During a dry run, the sweep [[variables]] are varied sample by sample and all of their associated parameters in the project workspace are updated at each run. However, the simulation engine is not called during a dry run, and no numerical computations take place at all. Also, the Variable Dry Run dialog appears on the screen which shows the changing values of all the [[variables]] at all times. This dialog works in a similar way as the Animation Controls Dialog described earlier. You can change the speed of the updates or control them manually using the motion buttons. The dry run process continues forever until to stop it by clicking the close (X) button of the Dry Run dialog of simply hitting the keyboard's '''Esc Key'''. At ach update of a dry run, you can see how the CAD objects in your planar structure change. This is very useful to inspect the integrity of your structure and your defined [[variables]] before an actual simulation run. Once you are satisfied with the choice and definition of your sweep [[variables]], close the Parametric Sweep Settings dialog to return to the Simulation Run dialog, where you can start the planar MoM parametric sweep simulation by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's Parametric Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM147.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 4: Defining the type and range of a sweep variable.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM149.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 5: EM.Cube's Variable Dry Run dialog.&lt;br /&gt;
&lt;br /&gt;
===3D Near &amp;amp; Far Field Animation===&lt;br /&gt;
&lt;br /&gt;
At the end of a sweep simulation (a frequency sweep, angular sweep, parametric sweep, etc.), if you have defined a field sensor or a far field observable (either radiation pattern or RCS) in your project, a number of near field plots or far field plots are generated for all samples of the sweep variable. Each field sensor normally has 14 field maps for the amplitude and phase of all the three components of E- and H-fields plus the magnitude of the total fields. Each far field observable has three spherical plots corresponding to the &amp;amp;theta; and &amp;amp;phi; components of the far field and the total far field. Generating all these 14 near-field intensity plots or 3 far-field spherical plots at each sweep sample would result in a very large number of graphs on the Navigation Tree. Instead, during a sweep simulation, EM.Cube generates either a total E-field or a total H-field plot at each sweep run for the field sensors. By default, the total E-field plots are saved. You can change this setting from the field sensor's property dialog. Right click on the field sensor's name in the Navigation Tree and select '''Properties...'''from the contextual menu. In the section titled &amp;quot;Field Display - Multiple Plots&amp;quot;, select one of the two radio buttons labeled '''E-Field''' or '''H-Field'''. As for far field observables, only the total field plot is generated at each sweep sample.&lt;br /&gt;
&lt;br /&gt;
Once the sweep simulation is finished, you can click any of the near-field or far-field plots and visualize it in the main window. You can also animate these field plots. Animation in EM.Cube consists of sequential display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''Animation''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the animation proceeds in the main window, a dialog titled '''Animation Controls Dialog''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of animation by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the animation and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop animation at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the animation controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD120.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Selecting the field type for plotting at the end of an FDTD sweep simulation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD122.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: EM.Cube's Animation Controls dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD123.png|400px]] [[Image:FDTD124.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: Animation of total E-field plots and far field radiation patterns at the end of an FDTD sweep simulation.&lt;br /&gt;
&lt;br /&gt;
===Running An Optimization With FDTD Simulator===&lt;br /&gt;
&lt;br /&gt;
[[Optimization]] is a process in which the values of one or more [[variables]] are varied in a systematic way until one or more design objectives are met. The design objectives are typically defined based on the output simulation data and are mathematically translated into an error (objective) function that is to be minimized. Running a successful [[optimization]] requires careful advance planning. First you have to make sure that your [[optimization]] problem does have a valid solution within the range of your [[optimization]] [[variables]]. In other words, the design objectives must be achievable for at least one combination of the [[optimization]] variable values within the specified ranges. Otherwise, the [[optimization]] process will not converge or will exhaust the maximum allowed number of iteration cycles and exit unsuccessfully.&lt;br /&gt;
&lt;br /&gt;
An [[optimization]] process in EM.Cube involves several steps as follows:&lt;br /&gt;
&lt;br /&gt;
# Define project (design) [[variables]] and designate one or more [[optimization]] [[variables]] with respective ranges.&lt;br /&gt;
# Define project (design) objectives using a combination of standard and custom output parameters.&lt;br /&gt;
# (&amp;lt;u&amp;gt;Optional but Highly Recommended&amp;lt;/u&amp;gt;) Run a parametric sweep of your [[optimization]] [[variables]] within their specified ranges and see if your design objectives have any chance of ever being met.&lt;br /&gt;
# Choose the [[optimization]] algorithm type and set its relevant parameters.&lt;br /&gt;
# If you have more than one design objective, define weights for the goals.&lt;br /&gt;
# Run the [[optimization]] process and wait until it is completed.&lt;br /&gt;
# Examine the optimal values of the participating [[variables]] and the updated values of their associated parameters.&lt;br /&gt;
# Run an analysis using the optimal variable values and validate the [[optimization]] results.&lt;br /&gt;
&lt;br /&gt;
A design objective is a logical expression that consists of two mathematical expressions separated by one of the logical operators: ==, &amp;lt;, &amp;lt;=, &amp;gt; or &amp;gt;=. These are called the left-hand-side (LHS) and right-hand-side (RHS) mathematical expressions and both must have computable numerical values. They may contain any combination of numbers, constants, variables, standard or custom output parameters as well as EM.Cube's legitimate functions. Objectives that involve the logical operator &amp;quot;'''&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;'''&amp;quot; are regarded a &amp;quot;'''Goals'''&amp;quot;. The RHS expression of a goal is usually chosen to be a number, which is often known as the &amp;quot;'''Target Value'''&amp;quot;. In the logical expression of a goal, one can bring the two RHS and LHS expressions to one side establish an equality of the form &amp;quot;(LHS - RHS) == 0&amp;quot;. Numerically speaking, this is equivalent to minimizing the quantity | LHS - RHS |. During an [[optimization]] process, all the project goals are evaluated numerically and they are used collectively to build an error (objective) function whose value is tried to be minimized. Objectives that involve &amp;quot;non-Equal&amp;quot; logical operators are regarded a &amp;quot;'''Constraints'''&amp;quot;. Unlike goals which lead to minimizable numerical values, constraints are rather conditions that should be met while the error function is being minimized.&lt;br /&gt;
&lt;br /&gt;
To define an objective, open the '''Objectives Dialog''' either by clicking the '''Objectives''' [[Image:objective_icon.png]] button of the '''Simulate Toolbar''', or by selecting '''Menu &amp;gt; Simulate &amp;gt; Objectives...''' from the Menu Bar, or using the keyboard shortcut '''Ctrl+J'''. The objectives list is initially empty. To add a new objective, click the '''Add''' button to open up the '''Add Objective Dialog'''. At the bottom of this dialog, you can see a list of all the available EM.Cube output parameters including both standard and custom output parameters. This list may vary depending on the types of sources and observables that you have already defined in your project. You can enter any mathematical expressions in the two boxes labeled '''Expression 1''' and '''Expression 2'''. The Available Output Parameter List simply helps you remember the syntax of these parameters. You should also select one of the available options in the dropdown list labeled '''Logical Operator'''. The default operator is '''&amp;quot;== (Equal To)&amp;quot;'''. As soon as you finish the definition of an objective, its full logical expression is added to the Objective List. You can always modify the project objectives after they have been created. Select a row in the Objective List and click the '''Edit '''button of the dialog and change the expressions or the logical operator. You can also remove an objective from the list using the '''Delete '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM151.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: EM.Cube's Objectives dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM150.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Defining a new objective using a list of available output parameters.&lt;br /&gt;
&lt;br /&gt;
Just like sweep [[variables]], [[optimization]] [[variables]] are chosen from the list of available independent [[variables]] already defined in your project. Dependent [[variables]] do not participate directly in an [[optimization]] process, although their values continuously change in accordance with their associated independent [[variables]]. In fact, dependent [[variables]] let you envision and formulate very complicated constrained [[optimization]] scenarios.&lt;br /&gt;
&lt;br /&gt;
To define [[optimization]] [[variables]] and perform an [[optimization]], open the '''Simulation ''''''Run Dialog''', and select the '''[[Optimization]] '''option from the dropdown list labeled '''Simulation Mode'''. When you choose the [[optimization]] option, the '''Settings''' button next to the simulation mode dropdown list becomes enabled. Clicking this button opens the '''[[Optimization]] ''''''Settings''' dialog. This is a large dialog with several distinct sections. In the section titled &amp;quot;'''[[Optimization]] Algorithm'''&amp;quot;, you can choose one of EM.Cube's three currently available optimizers: '''Powell's Method''', '''Basic Genetic Algorithm '''and '''Fast Pareto Genetic Algorithm'''. For all three optimizers you have to set the '''Maximum Number of Iterations''', which has a default value of 5. For the two genetic algorithms, basic GA and Pareto, you also need to set the '''Population Size '''as a multiple of 5. The default population size is 50.&lt;br /&gt;
&lt;br /&gt;
In the [[Variables]] section of the dialog, you designate the [[optimization]] [[variables]]. This is very similar to how you assign sweep [[variables]] in a parametric sweep as discussed earlier. The '''[[Optimization]] [[Variables]] List '''is initially empty. On the left side of the dialog you see the &amp;quot;'''Independent [[Variables]] Table'''&amp;quot;, which lists all the available independent [[variables]] of your project. Select an independent variable from the table and use the right arrow ('''--&amp;gt;''') button of the dialog to move it to the [[Optimization]] Variable List. Before moving the variable to the new location, the &amp;quot;Define [[Optimization]] Variable Dialog&amp;quot; opens up, where you have to set the '''Minimum '''and '''Maximum '''values of your new [[optimization]] variable. Once you finish the definition of an [[optimization]] variable, its name and Min/Max values are added to the [[Optimization]] [[Variables]] List. Note that you can change your mind and remove an [[optimization]] variable from the list. To do so, select its name or row from the list and use the left arrow (&amp;lt;--) button to move it back to the Independent [[Variables]] Table. You can also change the Min/Max values of an [[optimization]] variable after it has been defined. Select the variable and click the '''Edit '''button of the dialog to change those value. If you check the box labeled &amp;quot;'''Update [[Variables]] with Optimal Values'''&amp;quot; (as it is always checked by default), EM.Cube will automatically replace the definitions (and current values) of all the participating [[optimization]] [[variables]] in the '''[[Variables]] Dialog''' with their computed optimal values and will update all the associated parameters in the project workspace. This, of course, will happen only if the [[optimization]] process successfully converges. Sometimes, the [[optimization]] process may get trapped in a local minimum. You may encounter this problem primarily when using the Powell method. You will notice that the values of the [[optimization]] [[variables]] soon get &amp;quot;saturated&amp;quot; and remain constant afterwards. EM.Cube lets you exit such local traps if you check the box labeled &amp;quot;'''Exit Local Min Trap'''&amp;quot;. There is a box underneath, labeled '''Tolerance''', that becomes enabled and has a default value of 0.01. This means that exit a local minimum trap when the value of the [[optimization]] variable stays within 1% error after successive [[optimization]] runs. In that case, the [[optimization]] process ends forcibly before having achieved convergence.&lt;br /&gt;
&lt;br /&gt;
Finally, in the section titled &amp;quot;'''Error Function'''&amp;quot; of the [[Optimization]] Dialog you build the mathematical form of your objective function. Keep in mind that EM.Cube's [[optimization]] is a numerical process. Therefore, you can rarely minimize your error function to zero literally. You need to set a &amp;quot;'''Maximum Error'''&amp;quot; value for the objective function, which terminates the process as &amp;quot;converged&amp;quot; when it is reached. The default value of Maximum Error is 0.01. In two tables labeled '''Goals '''and '''Constraints''', you see a list of all the project objectives that have been split between the two tables according to their types. Many [[optimization]] problems involve a single, straightforward goal. Others may involve multiple goals subject to multiple constraints. In those case, you have assign weights to your goals and constraints. If all of your goals and constraints have the same level of importance, then you assign equal weights to them. You can do this easily by clicking the '''Distribute '''button of the dialog. Or you may assign individual weights manually. However, you have to make sure that all the weight adds up to unity. The objective function of the [[optimization]] problem is constructed from the goals and constraints using the specified weights. This can be done in two different ways: as '''Linearly Weighted Goals '''or as '''Mean Square Weighted Goals.''' You set these options from the dropdown list labeled '''Weight Type'''. Once you are satisfied with the choice and definition of your [[optimization]] [[variables]], [[optimization]] algorithms and goals weights, close the [[Optimization]] dialog to return to the Simulation Run dialog, where you can start the planar MoM [[optimization]] process by clicking the '''Run '''button.&lt;br /&gt;
&lt;br /&gt;
[[Image:PMOM152.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: EM.Cube's [[Optimization]] dialog.&lt;br /&gt;
&lt;br /&gt;
==Modeling 3D Periodic Structures Using FDTD==&lt;br /&gt;
&lt;br /&gt;
===Setting Up A Periodic Unit Cell===&lt;br /&gt;
&lt;br /&gt;
Using EM.Cube's [[FDTD Module]], you can simulate complex 3D periodic structures. A periodic structure is one that repeats itself infinitely along one, two or three directions. In this release of EM.Cube's [[FDTD Module]], the periodicity is limited to the X-Y plane. In other words, the periodic structure repeats itself along the X- and Y-axes, but not along the Z-axis. By default, your physical structure is not periodic, and you have to instruct EM.Cube to turn it into a periodic structure through [[FDTD Module]]'s Periodicity Dialog. By designating a structure as periodic, you enforce periodic boundary conditions (PBC) on the side walls of its computational domain. Your structure in the project workspace then turns into a periodic unit cell. The periodic side walls are displayed with dashed blues lines.&lt;br /&gt;
&lt;br /&gt;
To define a periodic structure, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Select '''Menu &amp;gt; Simulate &amp;gt; Computational Domain &amp;gt; Periodicity Settings...''' or right click on the '''Periodicity''' item in the '''Computational Domain''' section of the Navigation Tree and select '''Periodicity Settings...''' from the contextual menu. This open up the Periodicity Settings Dialog.&lt;br /&gt;
* Check the box labeled '''Periodic Structure''' and click the '''Apply''' button of this dialog. The default domain box initially shrinks to the edges of the physical structure in the project workspace. The default periods along the X and Y axes appear in the dialog, which are equal to the dimensions of the structure's bounding box.&lt;br /&gt;
* Enter new values for '''X Spacing''' and '''Y Spacing '''in project units and close the dialog.&lt;br /&gt;
* Periodic boundary conditions (PBC) are established on the ±X and ±Y faces of the domain box. You still have to designate the boundary conditions on the ±Z faces of the computational domain. These are CPML by default. But you can change them to PEC or PMC.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD134.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s Periodicity Settings dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Structure As An Infinite Phased Array===&lt;br /&gt;
&lt;br /&gt;
In EM.Cube's [[FDTD Module]], a periodic structure can be excited using various source types. Exciting the unit cell structure using a lumped source, a waveguide source, an ideal source or a distributed source, you can model an infinite periodic antenna array. For most practical antenna types, you will excite your periodic structure with a lumped source or waveguide source. In this case, you can define a port for the lumped source or waveguide source and calculate the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; parameter or input impedance of the periodic antenna array. You can also compute the near-field and far-field data.&lt;br /&gt;
&lt;br /&gt;
EM.Cube's periodic FDTD simulator uses periodic boundary conditions (PBC) to model an infinite periodic array. All the periodic replicas of the unit cell structure are excited. In this case, you can impose a phase progression across the infinite array to steer its beam. You can do this from the property dialog of the lumped source or waveguide source. At the bottom of the '''Lumped Source Dialog''' or '''Waveguide Source Dialog''', there is a section titled '''Periodic Beam Scan Angles'''. This section is grayed out when the project structure is not periodic. You can enter desired beam scan angle values for both '''Theta''' and '''Phi''' in degrees. At the end of the periodic FDTD simulation, the radiation pattern of the unit cell is calculated and stored in a radiation data file with a '''.RAD''' file extension. The 3D radiation patterns that you normally visualize in EM.Cube, in this case, correspond to the single unit cell, not the infinite array. Therefore, they do not show the beam scanning even if you have entered nonzero values for the &amp;amp;theta; and/or &amp;amp;phi; scan angles. For this purpose, you have to define a finite-sized array factor. You do this in the &amp;quot;Impose Array Factor&amp;quot; section of the '''Radiation Pattern Dialog'''. In the case of a periodic structure, when you define a new far field item in the Navigation Tree, the values of element spacing along the X and Y directions are automatically set equal to the values of the periodic lattice spacing along those directions. Set the number of elements along the X and Y directions to any desired values. EM.Cube will then compute the radiation pattern of the specified finite-sized periodic array, and the beam scanning will appear in the radiation pattern plots, if any.&lt;br /&gt;
&lt;br /&gt;
{{Note|For large &amp;amp;theta; scan angles, the periodic FDTD time matching loop may take far more time steps to converge.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD137.png]] [[Image:FDTD138.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting periodic scan angles in the lumped source dialog, and (Right) Setting the array factor in radiation pattern dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD135.png|400px]] [[Image:FDTD136.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: Radiation pattern of a 8×8 finite-sized periodic dipole array with scan angles: (Left) &amp;amp;theta; = &amp;amp;phi; = 0°, and (Right) &amp;amp;theta;= 45° and &amp;amp;phi; = 0°.&lt;br /&gt;
&lt;br /&gt;
===Analyzing Antenna Arrays===&lt;br /&gt;
&lt;br /&gt;
Real antenna arrays have finite extents, that is, finite numbers of elements along the X and Y directions. Earlier, you saw how to excite an array of line objects using an array of lumped sources or an array of rectangular waveguides (hollow boxes) using an array of waveguide sources. Setting up array structures of this kind using EM.Cube's '''Array Tool '''and exciting the individual elements using individual lumped or waveguide sources results in an accurate full-wave analysis of your antenna array. This type of simulation takes into account all the inter-element coupling effects as well as the finite edge and corner effects of the finite-sized array. At the end of the FDTD simulation of your antenna array, you can plot the radiation patterns and other far field characteristics of the array just like any other FDTD structure. However, depending on the total size of your array, a full-wave simulation like this may easily lead to a very large computational problem. As the number of elements grow very large, the array starts to look like an infinite periodic structure. In that case, it is possible to consider and analyze a periodic unit cell of the array structure and use an &amp;quot;Array Factor&amp;quot; representing the finite-extent topology of the array grid to calculate the radiation pattern of your antenna array. This approach works well for most large arrays. However, it ignores the finite edge and corner effects, which may be important for certain array architectures. In that case we recommend that you use EM.Cube's [[Planar Module]]. Also, note that using an array factor for far field calculations, you cannot assign non-uniform amplitude or phase distributions to the array elements. For this purpose, you have to define an array object.&lt;br /&gt;
&lt;br /&gt;
In the previous section, you saw how to excite a periodic unit cell using a lumped source or a waveguide source. You can specify the beam scan angles in the source dialogs. The finite array factor is defined in the radiation pattern dialog. At the end of the periodic FDTD simulation, you can visualize the 3D radiation patterns in the project workspace and plot the 2D Cartesian and polar pattern graphs in EM.Grid. EM.Cube also calculates the '''Directive Gain (DG)''' as a function of the &amp;amp;theta; and &amp;amp;phi; angles. This is defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;D(\theta,\phi) = \dfrac{4\pi [S(\theta,\phi)]}{P_{rad}} = &lt;br /&gt;
\dfrac{4\pi \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2} {\int\limits_0^{2\pi} \int\limits_0^{\pi} \big| \mathbf{E}^{ff}(\theta,\phi) \big|^2 \sin\theta \, d\theta \, d\phi}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:FDTD145.png]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The directivity D&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the maximum value of the directive gain. EM.Cube generates four Cartesian graphs of directive gain in the three principal XY, YZ, ZX planes as well as in the user defined f-plane cut. The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some parameters of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null Parameters''' (i.e. first null level and first null beam width). You can have EM.Cube calculate all such parameters if you check the relevant boxes in the &amp;quot;Additional Radiation Characteristics&amp;quot; section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. You can plot graphs of such data files at the end of a sweep simulation in''' '''EM.Grid. You can also plot the directive gain as a function of the sweep variable at the end of an FDTD sweep simulation. In that case, the directive gain is computed at a fixed pair of &amp;amp;theta; and &amp;amp;phi; angles. These angles are specified in degrees as '''User Defined Azimuth &amp;amp; Elevation''' in the &amp;quot;Output Settings&amp;quot; section of the Radiation Pattern dialog. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith. The results are saved to an ASCII data file called &amp;quot;DGU.DAT&amp;quot;. Note that DGU is also one of EM.Cube's standard output parameters and can be used to define custom output or design objectives.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD146(1).png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Defining additional radiation characteristics in [[FDTD Module]]'s Radiation Pattern dialog.&lt;br /&gt;
&lt;br /&gt;
===Exciting A Periodic Surface With A Plane Wave===&lt;br /&gt;
&lt;br /&gt;
Using a plane wave source to excite a periodic structure in EM.Cube's [[FDTD Module]], you can model frequency selective surfaces, electromagnetic band-gap (EBG) structures, metamaterials, etc. Exciting periodic structures with plane wave sources requires careful attention. EM.Cube's FDTD simulation engine uses the direct spectral domain FDTD or constant transverse wavenumber method for analyzing periodic structures. In this technique, instead of a plane wave box, one defines a plane wave surface parallel to the X-Y plane. If the plane wave source illuminates the periodic unit cell from the top (90&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 180&amp;amp;deg;), the excitation surface is placed above the structure's bounding box. If the plane wave source illuminates the periodic unit cell from the bottom up (0&amp;amp;deg; &amp;lt; &amp;amp;theta; &amp;lt; 90&amp;amp;deg;), the excitation surface is placed below the structure's bounding box. In either case, the plane wave must intercept the excitation surface before hitting the unit cell's physical structure. It is highly recommended that you accept EM.Cube's default settings for the plane wave box of periodic structures. Nevertheless, you can change the location of the excitation surface if you wish. To do so, you have to open the '''Plane Wave Dialog'''. In the Excitation Box section of the dialog, select the '''Size: Custom''' option. Only the '''Z Coordinate''' of '''Corner 1''' is available for editing. The rest of the coordinates are enforced by the periodic domain. You can enter the incidence angles '''Theta''' and '''Phi''' in degrees. For periodic structures, only the '''TM&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' and '''TE&amp;lt;sub&amp;gt;z&amp;lt;/sub&amp;gt;''' polarization options are available.&lt;br /&gt;
&lt;br /&gt;
One of the pitfalls of the direct spectral FDTD method is the possibility of horizontal resonances, which may lead to indefinite oscillation or even divergence of field values during the time marching loop. This happens in the case of oblique plane wave incidence when &amp;amp;theta; &amp;gt; 0&amp;amp;deg;. EM.Cube's FDTD engine automatically detects such cases and avoids those resonances by shifting the modulation frequency of the modulated Gaussian pulse waveform away from the resonant frequency. However, in some cases, the size of oscillations may still remain large after a large number of time steps. Occasionally, a late-time diverging behavior may appear. To avoid situations like these, it is highly recommended that you place a time-domain field probe above your structure and monitor the temporal field behavior during the time marching loop as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 600px&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:FDTD140(1).png]]&lt;br /&gt;
| style=&amp;quot;vertical-align: bottom&amp;quot; |&lt;br /&gt;
[[Image:FDTD139.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Figure 1: (Left) Setting a custom plane wave source plane for a periodic unit cell structure, and (Right) the visualization of the periodic plane wave surface along with a horizontal field probe placed above the structure.&lt;br /&gt;
&lt;br /&gt;
===Reflection &amp;amp; Transmission Characteristics===&lt;br /&gt;
&lt;br /&gt;
At the end of the FDTD simulation of a periodic structure with plane wave excitation, the reflection and transmission coefficients of the structure are calculated and saved into two complex data files with '''.CPX''' file extensions. These coefficients behave like the S&amp;lt;sub&amp;gt;11&amp;lt;/sub&amp;gt; and S&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt; parameters of a two-port network. You can think of the upper half-space as Port 1 and the lower half-space as Port 2 of this network. The reflection and transmission (R/T) coefficients can be plotted on 2D graphs in '''EM.Grid '''similar to the scattering parameters. You can plot them from the Navigation Tree. To do so, right click on the '''Periodic Characteristics''' item in the '''Observables''' section of the Navigation Tree and select '''Plot Reflection Coefficients''' or '''Plot Transmission Coefficients'''. The complex data files are also listed in EM.Cube's data manager. To open data manager, click the '''Data Manager''' [[Image:data_manager_icon.png]] button of the '''Simulate Toolbar''' or select '''Simulate &amp;gt; Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by selecting its row in the table and then click the '''Plot''' button to plot the graph in EM.Grid.&lt;br /&gt;
&lt;br /&gt;
{{Note|It is very important to keep in mind that only in the case of normal incidence does EM.Cube compute the reflection and transmission coefficients over the entire specified bandwidth of the project. At oblique incidences when &amp;amp;theta; &amp;gt; 0, the computed R/T coefficients after the discrete Fourier transformation are valid only at the center frequency of the project for the given value of the incident &amp;amp;theta;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; angle. In other words, the computed R/T coefficients at all the other frequencies away from the center frequency correspond to different values of the incident &amp;amp;theta; angle. As a result, EM.Cube only saves the reflection and transmission coefficients at the center frequency into the output data files &amp;quot;reflection_coefficient.CPX&amp;quot; and &amp;quot;transmission_coefficient.CPX&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD141.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD142.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: Magnitude and phase of the complex reflection and transmission coefficients of a periodic surface plotted vs. frequency.&lt;br /&gt;
&lt;br /&gt;
===Periodic FDTD Simulation Types===&lt;br /&gt;
&lt;br /&gt;
Besides analyzing a periodic structure in a single-run simulation, EM.Cube's [[FDTD Module]] offers a number of sweep simulations for periodic structures. These include '''Frequency Sweep''', '''Angular Sweep''', '''R/T Macromodel Sweep '''and '''Dispersion Sweep'''. These options are available from the '''Simulation Mode''' dropdown list of the [[FDTD Module]]'s '''Run Dialog'''. Of these, frequency sweep and angular sweep are similar to the non-periodic case as discussed earlier. Keep in mind that in this release of EM.Cube's [[FDTD Module]], for oblique plane wave incidences, you need to run a frequency sweep to get wideband reflection/transmission coefficient data. Similarly, you need to run an angular sweep to plot R/T coefficients vs. the incident angle.&lt;br /&gt;
&lt;br /&gt;
The '''R/T Macromodel Sweep''' option of the Simulation Mode dropdown list is only available for periodic structures. It is used to generate a lookup table model for the reflection and transmission coefficients of a periodic surface for both TM and TE polarizations. The results are written into a file named &amp;quot;PW_UserDefinedMacroData.mat&amp;quot;. Through the Macromodel Settings dialog you can set the start and end value and number of samples for both the Theta (&amp;amp;theta;) and Phi (&amp;amp;phi;) angles of the incident plane wave. The R/T macormodels can be used by EM.Cube's [[Propagation Module]] to calculate the reflection and transmission coefficients of incident rays at the facets of obstructing blocks with &amp;quot;non-standard&amp;quot; periodic surfaces.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD143.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 1: [[FDTD Module]]'s R/T Macromodel Settings dialog.&lt;br /&gt;
&lt;br /&gt;
The '''Dispersion Sweep '''option of the Simulation Mode dropdown list performs a sweep of constant k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; wavenumber values. This is a specialized sweep for the constant transverse wavenumber method that EM.Cube's [[FDTD Module]] uses to model periodic structures illuminated by a plane wave source. The real advantage of a dispersion sweep is that through a one-dimensional sweep of k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;, you can find the reflection and transmission coefficients for all combinations of frequency f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; and incident angle &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; such that (2&amp;amp;pi;/c) . f&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt;. sin &amp;amp;theta;&amp;lt;sub&amp;gt;j&amp;lt;/sub&amp;gt; = k&amp;lt;sub&amp;gt;li&amp;lt;/sub&amp;gt;. This provides a complete picture of the dispersion behavior of your periodic structure. The sweep data can be graphed as a wavenumber-frequency intensity plot (also known as beta-k diagram) that projects the eigenvalues of the periodic structure. The horizontal axis represents the constant transverse wavenumber k&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (or beta). The vertical axis represents frequency. Sometimes, the free space wave number k&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = (2&amp;amp;pi;/c).f is used as the vertical axis, hence, the term beta-k diagram. However, EM.Cube plots frequency vs. wavenumber. Both the horizontal and vertical axes start from 0 and extend to f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; and k&amp;lt;sub&amp;gt;l,max&amp;lt;/sub&amp;gt;, respectively, where f&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt; = f&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + &amp;amp;Delta;f/2, and &amp;amp;Delta;f is the specified bandwidth of the project. For this sweep option you have to specify the number of wavenumber samples. Note that the dispersion sweep is run for a fixed given value of the plane wave incident angle f as specified in [[FDTD Module]]'s Plane Wave Dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD144.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 2: [[FDTD Module]]'s Dispersion Sweep Settings dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:FDTD148.png]]&lt;br /&gt;
&lt;br /&gt;
Figure 3: A typical dispersion diagram of a periodic structure.&lt;/div&gt;</summary>
		<author><name>Dfeng</name></author>	</entry>

	</feed>